milvus-logo
LFAI
Home
  • Migración Milvus

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 sus datos eficientemente, aprovechando las características avanzadas y el rendimiento mejorado de Milvus 2.x.

Requisitos previos

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.

  1. 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
    
  2. Copie la carpeta tables de su instalación de Milvus y, a continuación, mueva tanto la carpeta meta.json como tables 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
    
  3. 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ámetroDescripción
    dumper.worker.limitLa concurrencia de subprocesos de volcado.
    dumper.worker.workModeEl modo operativo del trabajo de migración. Establecido en milvus1x al migrar desde Milvus 1.x.
    dumper.worker.reader.bufferSizeTamaño del búfer a leer de Milvus 1.x en cada lote. Unidad: KB.
    dumper.worker.writer.bufferSizeTamaño del búfer para escribir en Milvus 2.x en cada lote. Unidad: KB.
  • loader

    ParámetroDescripción
    loader.worker.limitLa concurrencia de hilos del cargador.
  • meta

    ParámetroDescripción
    meta.modeEspecifica de dónde se lee el archivo meta meta.json. Valores válidos: local, remote, mysql, sqlite.
    meta.localFileRuta del directorio local donde reside el archivo meta.json. Esta configuración sólo se utiliza cuando meta.mode está configurado como local. Para otras configuraciones meta, consulte README_1X.
  • source

    ParámetroDescripción
    source.modeEspecifica 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.tablesDirLa ruta del directorio donde se encuentran los archivos fuente. Por ejemplo, /db/tables/.
  • target

    ParámetroDescripción
    target.modeUbicació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.outputDirRuta del directorio de salida en el cubo de almacenamiento en la nube.
    target.remote.akClave de acceso para el almacenamiento Milvus 2.x.
    target.remote.skClave secreta para el almacenamiento Milvus 2.x.
    target.remote.cloudProveedor del servicio de almacenamiento en la nube. Valores de ejemplo: aws, gcp, azure.
    target.remote.regionRegión de almacenamiento en la nube. Puede ser cualquier valor si utiliza MinIO local.
    target.remote.bucketNombre 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.useIAMSi se debe utilizar un rol IAM para la conexión.
    target.remote.checkBucketSi se debe comprobar si el cubo especificado existe en el almacenamiento de objetos.
    target.milvus2x.endpointDirección del servidor Milvus de destino.
    target.milvus2x.usernameNombre 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.passwordContraseñ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

  1. 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ón migration.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.

  2. 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ón migration.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().

Traducido porDeepLogo

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started
Feedback

¿Fue útil esta página?