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

Do Faiss

Este guia fornece um processo abrangente e passo a passo para a migração de dados do Faiss para o Milvus 2.x. Seguindo este guia, poderá transferir os seus dados de forma eficiente, tirando partido das funcionalidades avançadas do Milvus 2.x e de um melhor desempenho.

Pré-requisitos

Configurar a migração

Guarde o ficheiro 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: # 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

A tabela seguinte descreve os parâmetros no ficheiro de configuração de exemplo. Para obter uma lista completa das configurações, consulte Milvus Migration: Faiss 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 como faiss quando migrar a partir de índices Faiss.
    dumper.worker.reader.bufferSizeTamanho do buffer para ler de Faiss em cada lote. Unidade: KB.
    dumper.worker.writer.bufferSizeTamanho do buffer para escrever em Milvus em cada lote. Unidade: KB.
  • loader

    ParâmetroDescrição do parâmetro
    loader.worker.limitA simultaneidade das threads do carregador.
  • 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.faissFileO caminho do diretório onde estão localizados os ficheiros de origem. Por exemplo, /db/faiss.index.
  • target

    ParâmetroDescrição
    target.create.collection.nameNome da coleção Milvus.
    target.create.collection.shardsNumsNúmero de shards a serem criados na coleção. Para mais informações sobre os fragmentos, consulte Terminologia.
    target.create.collection.dimDimensão do campo vetorial.
    target.create.collection.metricTypeTipo de métrica utilizada para medir as semelhanças entre os vectores. Para obter mais informações, consulte Terminologia.
    target.modeLocal de armazenamento dos ficheiros despejados. 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 bucket de armazenamento em nuvem.
    target.remote.cloudFornecedor de serviços de armazenamento na nuvem. Valores de exemplo: aws, gcp, azure.
    target.remote.endpointPonto final do armazenamento Milvus 2.x.
    target.remote.regionRegião de armazenamento na nuvem. Pode ser qualquer valor se utilizar o MinIO local.
    target.remote.bucketNome do bucket para armazenamento de dados. O valor deve ser o mesmo que o da configuração no Milvus 2.x. Para mais informações, consulte Configurações do sistema.
    target.remote.akChave de acesso para o armazenamento do Milvus 2.x.
    target.remote.skChave secreta para o armazenamento do Milvus 2.x.
    target.remote.useIAMSe deve ser utilizada uma função IAM para a ligação.
    target.remote.useSSLSe deve ser ativado o SSL durante a ligação ao Milvus 2.x. Para mais informações, consulte Encryption in Transit (Encriptação em trânsito).
    target.remote.checkBucketSe deve verificar se o intervalo especificado existe no armazenamento de objectos.
    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 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 do índice Faiss 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 estes ficheiros 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 Zilliz Cloud for Free

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

Get Started
Feedback

Esta página foi útil?