milvus-logo
LFAI
Home
  • Migração de Milvus

Do Milvus 1.x

Este guia fornece um processo abrangente, passo a passo, para a migração de dados do Milvus 1.x (incluindo 0.9.x e superior) para o Milvus 2.x. Seguindo este guia, você será capaz de transferir seus dados de forma eficiente, aproveitando os recursos avançados do Milvus 2.x e melhor desempenho.

Pré-requisitos

Exportar metadados da instalação de origem do Milvus

Para preparar os dados de migração para o Milvus 0.9.x até 1.x, pare o Milvus de origem ou, pelo menos, pare de efetuar quaisquer operações DML no mesmo.

  1. Exportar os metadados da instalação de origem do Milvus para meta.json.

    • Para as instalações que utilizam o MySQL como backend, execute
    ./milvus-migration export -m "user:password@tcp(adderss)/milvus?charset=utf8mb4&parseTime=True&loc=Local" -o outputDir
    
    • Para as instalações que utilizam o SQLite como backend, execute
    ./milvus-migration export -s /milvus/db/meta.sqlite -o outputDir
    
  2. Copie a pasta tables da sua instalação Milvus e, em seguida, mova ambas as pastas meta.json e tables para uma pasta vazia.

    Uma vez concluída esta etapa, a estrutura da pasta vazia deve ter o seguinte aspeto:

    migration_data
    ├── meta.json
    └── tables
    
  3. Carregue a pasta preparada no passo anterior para um bucket de armazenamento em bloco S3 ou utilize diretamente esta pasta local na secção seguinte.

Configurar o arquivo de migração

Salve o arquivo de configuração de migração de exemplo como migration.yaml e modifique as configurações com base nas suas condições reais. Pode colocar o ficheiro de configuração em qualquer diretório local.

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

A tabela a seguir descreve os parâmetros no arquivo de configuração de exemplo. Para obter uma lista completa das configurações, consulte Milvus Migration: Milvus1.x para Milvus 2.x.

  • dumper

    ParâmetroDescrição
    dumper.worker.limitA simultaneidade de threads do dumper.
    dumper.worker.workModeO modo operacional da tarefa de migração. Definido para milvus1x quando migrar do Milvus 1.x.
    dumper.worker.reader.bufferSizeTamanho do buffer a ler do Milvus 1.x em cada lote. Unidade: KB.
    dumper.worker.writer.bufferSizeTamanho do buffer para escrever no Milvus 2.x em cada lote. Unidade: KB.
  • loader

    ParâmetroDescrição do parâmetro
    loader.worker.limitA concorrência das threads do carregador.
  • meta

    ParâmetroDescrição
    meta.modeEspecifica de onde é lido o meta ficheiro meta.json. Valores válidos: local, remote, mysql, sqlite.
    meta.localFileCaminho do diretório local onde reside o ficheiro meta.json. Esta configuração é utilizada apenas quando meta.mode está definido como local. Para outras meta configurações, consulte README_1X.
  • source

    ParâmetroDescrição
    source.modeEspecifica de onde são lidos os ficheiros de origem. Valores válidos:
    - local: lê ficheiros a partir de um disco local.
    - remote: lê ficheiros a partir de armazenamento remoto.
    source.local.tablesDirO caminho do diretório onde estão localizados os ficheiros de origem. Por exemplo, /db/tables/.
  • target

    ParâmetroDescrição
    target.modeLocal de armazenamento dos ficheiros descarregados. Valores válidos:
    - local: Armazena os arquivos despejados em discos locais.
    - remote: Armazena os arquivos despejados no armazenamento de objetos.
    target.remote.outputDirCaminho do diretório de saída no balde de armazenamento na nuvem.
    target.remote.akChave de acesso para o armazenamento Milvus 2.x.
    target.remote.skChave secreta para o armazenamento Milvus 2.x.
    target.remote.cloudFornecedor de serviços de armazenamento na nuvem. Valores de exemplo: aws, gcp, azure.
    target.remote.regionRegião de armazenamento na nuvem. Pode ser qualquer valor se utilizar o MinIO local.
    target.remote.bucketNome do bucket para armazenar dados. O valor deve ser o mesmo que o configurado no Milvus 2.x. Para mais informações, consulte Configurações do sistema.
    target.remote.useIAMSe deve ser utilizada uma função IAM para a ligação.
    target.remote.checkBucketSe deve verificar se o intervalo especificado existe no armazenamento de objetos.
    target.milvus2x.endpointEndereço do servidor Milvus de destino.
    target.milvus2x.usernameNome de utilizador para o servidor Milvus 2.x. Este parâmetro é necessário se a autenticação do utilizador estiver activada para o seu servidor Milvus. Para mais informações, consulte Ativar a autenticação.
    target.milvus2x.passwordPassword para o servidor Milvus 2.x. Este parâmetro é necessário se a autenticação do utilizador estiver activada para o seu servidor Milvus. Para obter mais informações, consulte Ativar a autenticação.

Iniciar a tarefa de migração

  1. Inicie a tarefa de migração com o seguinte comando. Substitua {YourConfigFilePath} pelo diretório local onde reside o ficheiro de configuração migration.yaml.

    ./milvus-migration  dump  --config=/{YourConfigFilePath}/migration.yaml
    

    O comando acima converte os dados de origem no Milvus 1.x em arquivos NumPy e, em seguida, usa a operação bulkInsert para gravar os dados no bucket de destino.

  2. Uma vez gerados os ficheiros NumPy, importe-os para o Milvus 2.x com o seguinte comando. Substitua {YourConfigFilePath} pelo diretório local onde reside o ficheiro de configuração migration.yaml.

    ./milvus-migration  load  --config=/{YourConfigFilePath}/migration.yaml
    

Verificar o resultado

Assim que a tarefa de migração for executada, pode fazer chamadas à API ou utilizar o Attu para ver o número de entidades migradas. Para obter mais informações, consulte Attu e get_collection_stats().

Traduzido porDeepLogo

Try Managed Milvus for Free

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

Get Started
Feedback

Esta página foi útil?