Da Faiss
Questa guida fornisce un processo completo, passo dopo passo, per la migrazione dei dati da Faiss a Milvus 2.x. Seguendo questa guida, sarete in grado di trasferire in modo efficiente i vostri dati, sfruttando le funzionalità avanzate di Milvus 2.x e le prestazioni migliorate.
Prerequisiti
- Versioni del software:
- Fonte Faiss
- Milvus di destinazione: 2.x
- Per i dettagli sull'installazione, vedere Installazione di Faiss e Installazione di Milvus.
- Strumenti necessari:
- Strumento dimigrazione Milvus. Per i dettagli sull'installazione, vedere Installazione dello strumento di migrazione.
Configurare la migrazione
Salvare il file di configurazione della migrazione di esempio come migration.yaml
e modificare le configurazioni in base alle condizioni reali. Il file di configurazione può essere collocato in qualsiasi directory locale.
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 tabella seguente descrive i parametri del file di configurazione di esempio. Per un elenco completo delle configurazioni, consultare Milvus Migration: Faiss a Milvus 2.x.
dumper
Parametro Descrizione dumper.worker.limit
La concurrency dei thread del dumper. dumper.worker.workMode
La modalità operativa del lavoro di migrazione. Impostare su faiss quando si migra da indici Faiss. dumper.worker.reader.bufferSize
Dimensione del buffer da leggere da Faiss in ogni batch. Unità: KB. dumper.worker.writer.bufferSize
Dimensione del buffer da scrivere su Milvus in ogni batch. Unità: KB. loader
Parametro Descrizione loader.worker.limit
La concurrency dei thread del caricatore. source
Parametro Descrizione source.mode
Specifica da dove vengono letti i file sorgente. Valori validi:
-local
: legge i file da un disco locale.
-remote
: legge i file da un archivio remoto.source.local.faissFile
Il percorso della directory in cui si trovano i file di origine. Ad esempio, /db/faiss.index
.target
Parametro Descrizione target.create.collection.name
Nome della collezione Milvus. target.create.collection.shardsNums
Numero di frammenti da creare nella raccolta. Per ulteriori informazioni sui frammenti, consultare la sezione Terminologia. target.create.collection.dim
Dimensione del campo vettoriale. target.create.collection.metricType
Tipo di metrica utilizzata per misurare le somiglianze tra i vettori. Per ulteriori informazioni, consultare Terminologia. target.mode
Posizione di memorizzazione dei file scaricati. Valori validi:
-local
: archiviazione dei file di dump su dischi locali.
-remote
: archiviazione dei file di dump su object storage.target.remote.outputDir
Percorso della directory di output nel bucket di cloud storage. target.remote.cloud
Fornitore del servizio di cloud storage. Valori di esempio: aws
,gcp
,azure
.target.remote.endpoint
Punto finale dello storage Milvus 2.x. target.remote.region
Regione di archiviazione nel cloud. Può essere un valore qualsiasi se si usa MinIO locale. target.remote.bucket
Nome del bucket per la memorizzazione dei dati. Il valore deve essere lo stesso della configurazione di Milvus 2.x. Per ulteriori informazioni, consultare la sezione Configurazioni di sistema. target.remote.ak
Chiave di accesso per l'archiviazione di Milvus 2.x. target.remote.sk
Chiave segreta per il deposito Milvus 2.x. target.remote.useIAM
Se utilizzare un ruolo IAM per la connessione. target.remote.useSSL
Abilitare o meno l'SSL quando ci si connette a Milvus 2.x. Per ulteriori informazioni, consultare Crittografia in transito. target.remote.checkBucket
Se verificare se il bucket specificato esiste nell'archivio oggetti. target.milvus2x.endpoint
Indirizzo del server Milvus di destinazione. target.milvus2x.username
Nome utente del server Milvus 2.x. Questo parametro è necessario se l'autenticazione utente è abilitata per il server Milvus. Per ulteriori informazioni, consultare Abilita l'autenticazione. target.milvus2x.password
Password per il server Milvus 2.x. Questo parametro è necessario se l'autenticazione dell'utente è abilitata per il vostro server Milvus. Per ulteriori informazioni, consultare Abilita autenticazione.
Avviare l'attività di migrazione
Avviare l'attività di migrazione con il seguente comando. Sostituire
{YourConfigFilePath}
con la directory locale dove risiede il file di configurazionemigration.yaml
../milvus-migration dump --config=/{YourConfigFilePath}/migration.yaml
Il comando precedente converte i dati dell'indice Faiss in file NumPy e quindi utilizza l'operazione bulkInsert per scrivere i dati nel bucket di destinazione.
Una volta generati i file NumPy, importarli in Milvus 2.x con il seguente comando. Sostituire
{YourConfigFilePath}
con la directory locale in cui risiede il file di configurazionemigration.yaml
../milvus-migration load --config=/{YourConfigFilePath}/migration.yaml
Verifica del risultato
Una volta eseguita l'attività di migrazione, è possibile effettuare chiamate API o utilizzare Attu per visualizzare il numero di entità migrate. Per ulteriori informazioni, consultare Attu e get_collection_stats().