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
- Versiones de software:
- Faiss de origen
- Milvus de destino: 2.x
- Para más detalles sobre la instalación, consulte Instalar Faiss e Instalar Milvus.
- Herramientas necesarias:
- Herramienta demigración de Milvus. Para más detalles sobre la instalación, consulte Instalar la herramienta de migración.
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á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 faiss cuando se migra desde índices Faiss. dumper.worker.reader.bufferSize
Tamaño del buffer a leer de Faiss en cada lote. Unidad: KB. dumper.worker.writer.bufferSize
Tamaño del búfer para escribir en Milvus en cada lote. Unidad: KB. loader
Parámetro Descripción loader.worker.limit
La concurrencia de hilos del cargador. source
Parámetro Descripción source.mode
Especifica 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.faissFile
La ruta del directorio donde se encuentran los archivos fuente. Por ejemplo, /db/faiss.index
.target
Parámetro Descripción target.create.collection.name
Nombre de la colección Milvus. target.create.collection.shardsNums
Número de fragmentos que se crearán en la colección. Para más información sobre los fragmentos, consulte Terminología. target.create.collection.dim
Dimensión del campo vectorial. target.create.collection.metricType
Tipo de métrica utilizada para medir las similitudes entre vectores. Para más información, consulte Terminología. target.mode
Ubicació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.outputDir
Ruta del directorio de salida en el bucket de almacenamiento en la nube. target.remote.cloud
Proveedor del servicio de almacenamiento en la nube. Valores de ejemplo: aws
,gcp
,azure
.target.remote.endpoint
Punto final de almacenamiento de Milvus 2.x. 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.ak
Clave de acceso para el almacenamiento de Milvus 2.x. target.remote.sk
Clave secreta para el almacenamiento de Milvus 2.x. target.remote.useIAM
Si se debe utilizar un rol IAM para la conexión. target.remote.useSSL
Si habilitar SSL al conectarse a Milvus 2.x. Para más información, consulte Cifrado en tránsito. target.remote.checkBucket
Si se debe comprobar si el bucket 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 índice de Faiss 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().