milvus-logo
LFAI
Home
  • Migración Milvus

Desde Faiss

Esta guía proporciona un proceso completo, paso a paso, para migrar datos de Faiss 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

Configurar la 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: # configs for the migration job.
  worker:
    limit: 2
    workMode: faiss    # operational mode of the migration job.
    reader:
      bufferSize: 1024
    writer:
      bufferSize: 1024
loader:
  worker:
    limit: 2
source: # configs for the source Faiss index.
  mode: local
  local:
    faissFile: ./testfiles/faiss/faiss_ivf_flat.index

target: # configs for the target Milvus collection.
  create:
    collection:
      name: test1w
      shardsNums: 2
      dim: 256
      metricType: L2

  mode: remote
  remote:
    outputDir: testfiles/output/
    cloud: aws
    endpoint: 0.0.0.0:9000
    region: ap-southeast-1
    bucket: a-bucket
    ak: minioadmin
    sk: minioadmin
    useIAM: false
    useSSL: false
    checkBucket: true
  milvus2x:
    endpoint: localhost:19530
    username: xxxxx
    password: xxxxx

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: Faiss to 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. Se establece en faiss cuando se migra desde índices Faiss.
    dumper.worker.reader.bufferSizeTamaño del buffer a leer de Faiss en cada lote. Unidad: KB.
    dumper.worker.writer.bufferSizeTamaño del búfer para escribir en Milvus en cada lote. Unidad: KB.
  • loader

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

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

    ParámetroDescripción
    target.create.collection.nameNombre de la colección Milvus.
    target.create.collection.shardsNumsNúmero de shards que se crearán en la colección. Para más información sobre los fragmentos, consulte Terminología.
    target.create.collection.dimDimensión del campo vectorial.
    target.create.collection.metricTypeTipo de métrica utilizada para medir las similitudes entre vectores. Para más información, consulte Terminología.
    target.modeUbicación de almacenamiento de 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 bucket de almacenamiento en la nube.
    target.remote.cloudProveedor del servicio de almacenamiento en la nube. Valores de ejemplo: aws, gcp, azure.
    target.remote.endpointPunto final de almacenamiento de Milvus 2.x.
    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.akClave de acceso para el almacenamiento de Milvus 2.x.
    target.remote.skClave secreta para el almacenamiento de Milvus 2.x.
    target.remote.useIAMSi se debe utilizar un rol IAM para la conexión.
    target.remote.useSSLSi habilitar SSL al conectarse a Milvus 2.x. Para más información, consulte Cifrado en tránsito.
    target.remote.checkBucketSi se debe comprobar si el bucket 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 índice de Faiss 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 porDeepL

Try Managed Milvus for Free

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

Get Started
Feedback

¿Fue útil esta página?