С Milvus 1.x
В этом руководстве представлен полный пошаговый процесс переноса данных с Milvus 1.x (включая 0.9.x и выше) на Milvus 2.x. Следуя этому руководству, вы сможете эффективно перенести свои данные, используя расширенные возможности Milvus 2.x и улучшенную производительность.
Необходимые условия
- Версии программного обеспечения:
- Исходный Milvus: 0.9.x - 1.x
- Целевой Milvus: 2.x
- Необходимые инструменты:
- ИнструментMilvus-migration. Подробности установки см. в разделе Установка инструмента миграции.
Экспорт метаданных исходной установки Milvus
Чтобы подготовить данные миграции для Milvus 0.9.x - 1.x, остановите исходный Milvus или, по крайней мере, прекратите выполнять в нем любые операции DML.
Экспортируйте метаданные исходной установки Milvus на
meta.json
.- Для инсталляций, использующих MySQL в качестве бэкенда, выполните команду
./milvus-migration export -m "user:password@tcp(adderss)/milvus?charset=utf8mb4&parseTime=True&loc=Local" -o outputDir
- Для установок, использующих SQLite в качестве бэкенда, выполните команду
./milvus-migration export -s /milvus/db/meta.sqlite -o outputDir
Скопируйте папку
tables
вашей установки Milvus, затем переместите папкиmeta.json
иtables
в пустую папку.После выполнения этого шага структура пустой папки должна выглядеть следующим образом:
migration_data ├── meta.json └── tables
Загрузите папку, подготовленную на предыдущем шаге, в ведро блочного хранилища S3 или напрямую используйте эту локальную папку в следующем разделе.
Настройка файла миграции
Сохраните пример файла конфигурации миграции как migration.yaml
и измените конфигурацию в соответствии с вашими реальными условиями. Вы можете поместить файл конфигурации в любой локальный каталог.
dumper:
worker:
limit: 2
workMode: milvus1x
reader:
bufferSize: 1024
writer:
bufferSize: 1024
loader:
worker:
limit: 16
meta:
mode: local
localFile: /outputDir/test/meta.json
source:
mode: local
local:
tablesDir: /db/tables/
target:
mode: remote
remote:
outputDir: "migration/test/xx"
ak: xxxx
sk: xxxx
cloud: aws
region: us-west-2
bucket: xxxxx
useIAM: true
checkBucket: false
milvus2x:
endpoint: "{yourMilvus2_xServerAddress}:{port}"
username: xxxx
password: xxxx
В следующей таблице описаны параметры в файле конфигурации примера. Полный список конфигураций см. в разделе Миграция Milvus: Milvus1.x - Milvus 2.x.
dumper
Параметр Описание dumper.worker.limit
Параметр параллельности потоков дампера. dumper.worker.workMode
Режим работы задания миграции. Установите значение milvus1x
при миграции с Milvus 1.x.dumper.worker.reader.bufferSize
Размер буфера для чтения из Milvus 1.x в каждом пакете. Единица измерения: КБ. dumper.worker.writer.bufferSize
Размер буфера для записи в Milvus 2.x в каждом пакете. Единицы измерения: КБ. loader
Параметр Описание loader.worker.limit
Параметр параллельности потоков загрузчика. meta
Параметр Описание meta.mode
Указывает, откуда считывается метафайл meta.json. Допустимые значения: local
,remote
,mysql
,sqlite
.meta.localFile
Путь к локальной директории, в которой находится файл meta.json
. Этот конфиг используется только в том случае, если дляmeta.mode
установлено значениеlocal
. О других конфигурациях метафайлов читайте в README_1X.source
Параметр Описание source.mode
Указывает, откуда считываются исходные файлы. Допустимые значения:
-local
: считывает файлы с локального диска.
-remote
: считывает файлы с удаленного хранилища.source.local.tablesDir
Путь к каталогу, в котором находятся исходные файлы. Например, /db/tables/
.target
Параметр Описание target.mode
Место хранения сброшенных файлов. Допустимые значения:
-local
: Хранить файлы дампа на локальных дисках.
-remote
: Хранить файлы дампа в объектном хранилище.target.remote.outputDir
Путь к выходному каталогу в облачном хранилище. target.remote.ak
Ключ доступа для хранилища Milvus 2.x. target.remote.sk
Секретный ключ для хранилища Milvus 2.x. target.remote.cloud
Поставщик услуг облачного хранилища. Примерные значения: aws
,gcp
,azure
.target.remote.region
Регион облачного хранилища. Может быть любым значением, если вы используете локальное MinIO. target.remote.bucket
Имя ведра для хранения данных. Значение должно совпадать с конфигом в Milvus 2.x. Дополнительные сведения см. в разделе Конфигурации системы. target.remote.useIAM
Использовать ли IAM-роль для подключения. target.remote.checkBucket
Проверять, существует ли указанный бакет в хранилище объектов. target.milvus2x.endpoint
Адрес целевого сервера Milvus. target.milvus2x.username
Имя пользователя для сервера Milvus 2.x. Этот параметр необходим, если на сервере Milvus включена аутентификация пользователей. Дополнительные сведения см. в разделе Включение аутентификации. target.milvus2x.password
Пароль для сервера Milvus 2.x. Этот параметр необходим, если для сервера Milvus включена аутентификация пользователей. Дополнительные сведения см. в разделе Включить аутентификацию.
Запуск задачи миграции
Запустите задачу миграции с помощью следующей команды. Замените
{YourConfigFilePath}
на локальный каталог, в котором находится файл конфигурацииmigration.yaml
../milvus-migration dump --config=/{YourConfigFilePath}/migration.yaml
Приведенная выше команда преобразует исходные данные в Milvus 1.x в файлы NumPy, а затем использует операцию bulkInsert для записи данных в целевой бакет.
После создания файлов NumPy импортируйте их в Milvus 2.x с помощью следующей команды. Замените
{YourConfigFilePath}
на локальный каталог, в котором находится файл конфигурацииmigration.yaml
../milvus-migration load --config=/{YourConfigFilePath}/migration.yaml
Проверьте результат
После выполнения задачи миграции вы можете выполнить вызовы API или использовать Attu для просмотра количества перенесенных сущностей. Дополнительные сведения см. в разделе Attu и get_collection_stats().