Da Milvus 1.x
Questa guida fornisce un processo completo, passo dopo passo, per la migrazione dei dati da Milvus 1.x (incluso 0.9.x e precedenti) a Milvus 2.x. Seguendo questa guida, sarete in grado di trasferire in modo efficiente i vostri dati, sfruttando le funzionalità avanzate e le prestazioni migliorate di Milvus 2.x.
Prerequisiti
- Versioni software:
- Milvus di origine: da 0.9.x a 1.x
- Milvus di destinazione: 2.x
- Strumenti necessari:
- Strumento dimigrazione Milvus. Per i dettagli sull'installazione, fate riferimento a Installare lo strumento di migrazione.
Esportare i metadati dell'installazione Milvus di partenza
Per preparare i dati di migrazione per Milvus 0.9.x fino a 1.x, interrompere il Milvus di origine o almeno interrompere l'esecuzione di operazioni DML in esso.
Esportare i metadati dell'installazione Milvus di origine in
meta.json
.- Per le installazioni che utilizzano MySQL come backend, eseguire
./milvus-migration export -m "user:password@tcp(adderss)/milvus?charset=utf8mb4&parseTime=True&loc=Local" -o outputDir
- Per le installazioni che usano SQLite come backend, eseguire
./milvus-migration export -s /milvus/db/meta.sqlite -o outputDir
Copiare la cartella
tables
dell'installazione Milvus, quindi spostare sia la cartellameta.json
che la cartellatables
in una cartella vuota.Una volta eseguito questo passaggio, la struttura della cartella vuota dovrebbe apparire come segue:
migration_data ├── meta.json └── tables
Caricare la cartella preparata nel passaggio precedente su un bucket di archiviazione a blocchi S3 o utilizzare direttamente questa cartella locale nella sezione successiva.
Configurare il file di 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:
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 tabella seguente descrive i parametri del file di configurazione di esempio. Per un elenco completo delle configurazioni, consultare Milvus Migration: Milvus1.x 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. Impostato su milvus1x
quando si migra da Milvus 1.x.dumper.worker.reader.bufferSize
Dimensione del buffer da leggere da Milvus 1.x in ogni batch. Unità: KB. dumper.worker.writer.bufferSize
Dimensione del buffer da scrivere su Milvus 2.x in ogni batch. Unità: KB. loader
Parametro Descrizione loader.worker.limit
La concurrency dei thread del caricatore. meta
Parametro Descrizione meta.mode
Specifica da dove viene letto il file meta.json. Valori validi: local
,remote
,mysql
,sqlite
.meta.localFile
Percorso della directory locale in cui risiede il file meta.json
. Questa configurazione è usata solo quandometa.mode
è impostato sulocal
. Per le altre configurazioni dei meta, fare riferimento a README_1X.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.tablesDir
Il percorso della directory in cui si trovano i file di origine. Ad esempio, /db/tables/
.target
Parametro Descrizione target.mode
Percorso di memorizzazione dei file scaricati. Valori validi:
-local
: memorizzazione dei file di dump su dischi locali.
-remote
: memorizzazione dei file di dump su object storage.target.remote.outputDir
Percorso della directory di output nel bucket del cloud storage. target.remote.ak
Chiave di accesso per lo storage Milvus 2.x. target.remote.sk
Chiave segreta per lo storage Milvus 2.x. target.remote.cloud
Fornitore del servizio di cloud storage. Valori di esempio: aws
,gcp
,azure
.target.remote.region
Regione di archiviazione 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 in Milvus 2.x. Per ulteriori informazioni, consultare Configurazioni di sistema. target.remote.useIAM
Se utilizzare un ruolo IAM per la connessione. 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 per il 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 in cui risiede il file di configurazionemigration.yaml
../milvus-migration dump --config=/{YourConfigFilePath}/migration.yaml
Il comando precedente converte i dati di origine di Milvus 1.x in file NumPy, 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().