Обзор миграции Milvus
Учитывая разнообразные потребности пользователей, Milvus расширил свои инструменты миграции, чтобы не только облегчить обновление с более ранних версий Milvus 1.x, но и обеспечить бесшовную интеграцию данных из других систем, таких как Elasticsearch и Faiss. Проект Milvus-migration призван преодолеть разрыв между этими разнообразными средами данных и последними достижениями в технологии Milvus, обеспечивая беспрепятственное использование улучшенных функций и производительности.
Поддерживаемые миграции
Инструмент Milvus-migration поддерживает различные пути миграции для удовлетворения различных потребностей пользователей:
- Elasticsearch на Milvus 2.x: Позволяет пользователям переносить данные из сред Elasticsearch, чтобы воспользоваться преимуществами оптимизированного векторного поиска Milvus.
- Faiss - Milvus 2.x: Предоставление экспериментальной поддержки для переноса данных из Faiss, популярной библиотеки для эффективного поиска по сходству.
- Milvus 1.x - Milvus 2.x: Обеспечение плавного перехода данных из предыдущих версий на новейший фреймворк.
- Milvus 2.3.x - Milvus 2.3.x или выше: Одноразовый переход для пользователей, которые уже перешли на 2.3.x.
Особенности
Milvus-migration обладает надежными функциями, позволяющими справиться с различными сценариями миграции:
- Несколько методов взаимодействия: Вы можете выполнять миграцию через интерфейс командной строки или через Restful API, гибко настраивая способ выполнения миграции.
- Поддержка различных форматов файлов и облачных хранилищ: Инструмент Milvus-migration может работать с данными, хранящимися как в локальных файлах, так и в облачных хранилищах, таких как S3, OSS и GCP, что обеспечивает широкую совместимость.
- Работа с типами данных: Milvus-migration способен работать как с векторными данными, так и со скалярными полями, что делает его универсальным выбором для решения различных задач миграции данных.
Архитектура
Архитектура Milvus-migration стратегически продумана таким образом, чтобы обеспечить эффективные процессы потоковой передачи, разбора и записи данных, что позволяет осуществлять надежную миграцию данных из различных источников.
Архитектура Milvus-migration
На предыдущем рисунке:
- Источник данных: Milvus-migration поддерживает различные источники данных, включая Elasticsearch через API прокрутки, локальные или облачные файлы данных, а также базы данных Milvus 1.x. Доступ к ним и их чтение осуществляются в упрощенном порядке, чтобы запустить процесс миграции.
- Потоковый конвейер:
- Процесс разбора: Данные из источников анализируются в соответствии с их форматом. Например, для источника данных из Elasticsearch используется парсер формата Elasticsearch, а для других форматов - соответствующие парсеры. Этот шаг очень важен для преобразования сырых данных в структурированный формат, который может быть подвергнут дальнейшей обработке.
- Процесс преобразования: После парсинга данные подвергаются преобразованию, в ходе которого поля фильтруются, типы данных преобразуются, а имена таблиц корректируются в соответствии с целевой схемой Milvus 2.x. Это гарантирует, что данные соответствуют ожидаемой структуре и типам в Milvus.
- Запись и загрузка данных:
- Запись данных: Обработанные данные записываются в промежуточные файлы JSON или NumPy, готовые к загрузке в Milvus 2.x.
- Загрузка данных: Данные окончательно загружаются в Milvus 2.x с помощью операции BulkInsert, которая эффективно записывает большие объемы данных в системы хранения Milvus, облачные или файловые хранилища.
Планы на будущее
Команда разработчиков стремится усовершенствовать Milvus-migration, добавив в него такие функции, как:
- Поддержка большего количества источников данных: Планируется расширить поддержку дополнительных баз данных и файловых систем, таких как Pinecone, Chroma, Qdrant. Если вам нужна поддержка конкретного источника данных, пожалуйста, отправьте запрос через эту ссылку на GitHub.
- Упрощение команд: Усилия по упрощению процесса выполнения команд для более легкого выполнения.
- Парсер / преобразованиеSPI: В архитектуру предполагается включить инструменты интерфейса поставщика услуг (SPI) для парсинга и конвертации. Эти инструменты позволяют создавать пользовательские реализации, которые пользователи могут подключать к процессу миграции для обработки определенных форматов данных или правил преобразования.
- Возобновление контрольных точек: Позволяет возобновлять миграцию с последней контрольной точки для повышения надежности и эффективности в случае перерывов в работе. Точки сохранения создаются для обеспечения целостности данных и хранятся в базах данных, таких как SQLite или MySQL, для отслеживания хода процесса миграции.