milvus-logo
LFAI
Casa
  • Migrazione di Milvus

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

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.

  1. 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
    
  2. Copiare la cartella tables dell'installazione Milvus, quindi spostare sia la cartella meta.json che la cartella tables in una cartella vuota.

    Una volta eseguito questo passaggio, la struttura della cartella vuota dovrebbe apparire come segue:

    migration_data
    ├── meta.json
    └── tables
    
  3. 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

    ParametroDescrizione
    dumper.worker.limitLa concurrency dei thread del dumper.
    dumper.worker.workModeLa modalità operativa del lavoro di migrazione. Impostato su milvus1x quando si migra da Milvus 1.x.
    dumper.worker.reader.bufferSizeDimensione del buffer da leggere da Milvus 1.x in ogni batch. Unità: KB.
    dumper.worker.writer.bufferSizeDimensione del buffer da scrivere su Milvus 2.x in ogni batch. Unità: KB.
  • loader

    ParametroDescrizione
    loader.worker.limitLa concurrency dei thread del caricatore.
  • meta

    ParametroDescrizione
    meta.modeSpecifica da dove viene letto il file meta.json. Valori validi: local, remote, mysql, sqlite.
    meta.localFilePercorso della directory locale in cui risiede il file meta.json. Questa configurazione è usata solo quando meta.mode è impostato su local. Per le altre configurazioni dei meta, fare riferimento a README_1X.
  • source

    ParametroDescrizione
    source.modeSpecifica 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.tablesDirIl percorso della directory in cui si trovano i file di origine. Ad esempio, /db/tables/.
  • target

    ParametroDescrizione
    target.modePercorso 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.outputDirPercorso della directory di output nel bucket del cloud storage.
    target.remote.akChiave di accesso per lo storage Milvus 2.x.
    target.remote.skChiave segreta per lo storage Milvus 2.x.
    target.remote.cloudFornitore del servizio di cloud storage. Valori di esempio: aws, gcp, azure.
    target.remote.regionRegione di archiviazione cloud. Può essere un valore qualsiasi se si usa MinIO locale.
    target.remote.bucketNome 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.useIAMSe utilizzare un ruolo IAM per la connessione.
    target.remote.checkBucketSe verificare se il bucket specificato esiste nell'archivio oggetti.
    target.milvus2x.endpointIndirizzo del server Milvus di destinazione.
    target.milvus2x.usernameNome 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.passwordPassword 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

  1. Avviare l'attività di migrazione con il seguente comando. Sostituire {YourConfigFilePath} con la directory locale in cui risiede il file di configurazione migration.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.

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

Tradotto daDeepL

Try Managed Milvus for Free

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

Get Started
Feedback

Questa pagina è stata utile?