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
- Versões de software:
- Fonte Faiss
- Milvus de destino: 2.x
- Para obter detalhes sobre a instalação, consulte Instalação do Faiss e Instalação do Milvus.
- Ferramentas necessárias:
- Ferramentade migração do Milvus. Para obter detalhes sobre a instalação, consulte Instalar a ferramenta de migração.
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âmetro Descrição dumper.worker.limit
A simultaneidade de threads do dumper. dumper.worker.workMode
O modo operacional da tarefa de migração. Definido como faiss quando migrar a partir de índices Faiss. dumper.worker.reader.bufferSize
Tamanho do buffer para ler de Faiss em cada lote. Unidade: KB. dumper.worker.writer.bufferSize
Tamanho do buffer para escrever em Milvus em cada lote. Unidade: KB. loader
Parâmetro Descrição do parâmetro loader.worker.limit
A simultaneidade das threads do carregador. source
Parâmetro Descrição source.mode
Especifica 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.faissFile
O caminho do diretório onde estão localizados os ficheiros de origem. Por exemplo, /db/faiss.index
.target
Parâmetro Descrição target.create.collection.name
Nome da coleção Milvus. target.create.collection.shardsNums
Número de shards a serem criados na coleção. Para mais informações sobre os fragmentos, consulte Terminologia. target.create.collection.dim
Dimensão do campo vetorial. target.create.collection.metricType
Tipo de métrica utilizada para medir as semelhanças entre os vectores. Para obter mais informações, consulte Terminologia. target.mode
Local 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.outputDir
Caminho do diretório de saída no bucket de armazenamento em nuvem. target.remote.cloud
Fornecedor de serviços de armazenamento na nuvem. Valores de exemplo: aws
,gcp
,azure
.target.remote.endpoint
Ponto final do armazenamento Milvus 2.x. target.remote.region
Região de armazenamento na nuvem. Pode ser qualquer valor se utilizar o MinIO local. target.remote.bucket
Nome 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.ak
Chave de acesso para o armazenamento do Milvus 2.x. target.remote.sk
Chave secreta para o armazenamento do Milvus 2.x. target.remote.useIAM
Se deve ser utilizada uma função IAM para a ligação. target.remote.useSSL
Se 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.checkBucket
Se deve verificar se o intervalo especificado existe no armazenamento de objectos. target.milvus2x.endpoint
Endereço do servidor Milvus de destino. target.milvus2x.username
Nome 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.password
Password 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
Inicie a tarefa de migração com o seguinte comando. Substitua
{YourConfigFilePath}
pelo diretório local onde reside o ficheiro de configuraçãomigration.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.
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çãomigration.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().