Desde Milvus 1.x
Esta guía proporciona un proceso completo, paso a paso, para migrar datos de Milvus 1.x (incluyendo 0.9.x y superior) a Milvus 2.x. Siguiendo esta guía, podrá transferir eficientemente sus datos, aprovechando las características avanzadas y el rendimiento mejorado de Milvus 2.x.
Requisitos previos
- Versiones de software:
- Milvus de origen: 0.9.x a 1.x
- Milvus de destino: 2.x
- Herramientas necesarias:
- Herramienta demigración Milvus. Para más detalles sobre la instalación, consulte Instalar la herramienta de migración.
Exportar metadatos de la instalación Milvus de origen
Para preparar los datos de migración para Milvus 0.9.x a 1.x, detenga el Milvus de origen o al menos deje de realizar cualquier operación DML en él.
Exporte los metadatos de la instalación Milvus de origen a
meta.json
.- Para aquellas instalaciones que utilicen MySQL como backend, ejecute
./milvus-migration export -m "user:password@tcp(adderss)/milvus?charset=utf8mb4&parseTime=True&loc=Local" -o outputDir
- Para aquellas instalaciones que utilicen SQLite como backend, ejecute
./milvus-migration export -s /milvus/db/meta.sqlite -o outputDir
Copie la carpeta
tables
de su instalación de Milvus y, a continuación, mueva tanto la carpetameta.json
como la carpetatables
a una carpeta vacía.Una vez realizado este paso, la estructura de la carpeta vacía debería tener este aspecto:
migration_data ├── meta.json └── tables
Suba la carpeta preparada en el paso anterior a un bucket de almacenamiento en bloque S3 o utilice directamente esta carpeta local en el siguiente apartado.
Configurar el archivo de migración
Guarde el archivo de configuración de migración de ejemplo como migration.yaml
y modifique la configuración en función de sus condiciones reales. Puede colocar el archivo de configuración en cualquier directorio local.
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
La siguiente tabla describe los parámetros del archivo de configuración de ejemplo. Para obtener una lista completa de configuraciones, consulte Migración de Milvus: Milvus1.x a Milvus 2.x.
dumper
Parámetro Descripción dumper.worker.limit
La concurrencia de subprocesos de volcado. dumper.worker.workMode
El modo operativo del trabajo de migración. Se establece en milvus1x
cuando se migra desde Milvus 1.x.dumper.worker.reader.bufferSize
Tamaño del búfer a leer de Milvus 1.x en cada lote. Unidad: KB. dumper.worker.writer.bufferSize
Tamaño del búfer para escribir en Milvus 2.x en cada lote. Unidad: KB. loader
Parámetro Descripción loader.worker.limit
La concurrencia de hilos del cargador. meta
Parámetro Descripción meta.mode
Especifica de dónde se lee el archivo meta meta.json. Valores válidos: local
,remote
,mysql
,sqlite
.meta.localFile
Ruta del directorio local donde reside el archivo meta.json
. Esta configuración sólo se utiliza cuandometa.mode
está configurado comolocal
. Para otras configuraciones meta, consulte README_1X.source
Parámetro Descripción source.mode
Especifica desde dónde se leen los archivos fuente. Valores válidos:
-local
: lee archivos de un disco local.
-remote
: lee archivos de un almacenamiento remoto.source.local.tablesDir
La ruta del directorio donde se encuentran los archivos fuente. Por ejemplo, /db/tables/
.target
Parámetro Descripción target.mode
Ubicación de almacenamiento para los archivos volcados. Valores válidos:
-local
: Almacena los archivos volcados en discos locales.
-remote
: Almacena los archivos volcados en almacenamiento de objetos.target.remote.outputDir
Ruta del directorio de salida en el cubo de almacenamiento en la nube. target.remote.ak
Clave de acceso para el almacenamiento Milvus 2.x. target.remote.sk
Clave secreta para el almacenamiento Milvus 2.x. target.remote.cloud
Proveedor del servicio de almacenamiento en la nube. Valores de ejemplo: aws
,gcp
,azure
.target.remote.region
Región de almacenamiento en la nube. Puede ser cualquier valor si utiliza MinIO local. target.remote.bucket
Nombre del cubo para almacenar datos. El valor debe ser el mismo que el configurado en Milvus 2.x. Para más información, consulte Configuraciones del sistema. target.remote.useIAM
Si se debe utilizar un rol IAM para la conexión. target.remote.checkBucket
Si se debe comprobar si el cubo especificado existe en el almacenamiento de objetos. target.milvus2x.endpoint
Dirección del servidor Milvus de destino. target.milvus2x.username
Nombre de usuario para el servidor Milvus 2.x. Este parámetro es necesario si la autenticación de usuario está habilitada para su servidor Milvus. Para obtener más información, consulte Activación de la autenticación. target.milvus2x.password
Contraseña para el servidor Milvus 2.x. Este parámetro es necesario si la autenticación de usuario está activada para su servidor Milvus. Para más información, consulte Activar autenticación.
Inicie la tarea de migración
Inicie la tarea de migración con el siguiente comando. Sustituya
{YourConfigFilePath}
por el directorio local en el que se encuentra el archivo de configuraciónmigration.yaml
../milvus-migration dump --config=/{YourConfigFilePath}/migration.yaml
El comando anterior convierte los datos de origen en Milvus 1.x en archivos NumPy y, a continuación, utiliza la operación bulkInsert para escribir los datos en el bucket de destino.
Una vez generados los archivos NumPy, importe estos archivos a Milvus 2.x con el siguiente comando. Sustituya
{YourConfigFilePath}
por el directorio local donde reside el archivo de configuraciónmigration.yaml
../milvus-migration load --config=/{YourConfigFilePath}/migration.yaml
Verificar el resultado
Una vez ejecutada la tarea de migración, puede realizar llamadas a la API o utilizar Attu para ver el número de entidades migradas. Para obtener más información, consulte Attu y get_collection_stats().