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
- Versões de software:
- Milvus de origem: 0.9.x a 1.x
- Milvus de destino: 2.x
- Ferramentas necessárias:
- Ferramentade migração do Milvus. Para obter detalhes sobre a instalação, consulte Instalar a ferramenta de migração.
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.
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
Copie a pasta
tables
da sua instalação Milvus e, em seguida, mova ambas as pastasmeta.json
etables
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
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âmetro Descrição dumper.worker.limit
A simultaneidade de threads do dumper. dumper.worker.workMode
O modo operacional da tarefa de migração. Definido para milvus1x
quando migrar do Milvus 1.x.dumper.worker.reader.bufferSize
Tamanho do buffer a ler do Milvus 1.x em cada lote. Unidade: KB. dumper.worker.writer.bufferSize
Tamanho do buffer para escrever no Milvus 2.x em cada lote. Unidade: KB. loader
Parâmetro Descrição do parâmetro loader.worker.limit
A concorrência das threads do carregador. meta
Parâmetro Descrição meta.mode
Especifica de onde é lido o meta ficheiro meta.json. Valores válidos: local
,remote
,mysql
,sqlite
.meta.localFile
Caminho do diretório local onde reside o ficheiro meta.json
. Esta configuração é utilizada apenas quandometa.mode
está definido comolocal
. Para outras meta configurações, consulte README_1X.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.tablesDir
O caminho do diretório onde estão localizados os ficheiros de origem. Por exemplo, /db/tables/
.target
Parâmetro Descrição target.mode
Local 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.outputDir
Caminho do diretório de saída no balde de armazenamento na nuvem. target.remote.ak
Chave de acesso para o armazenamento Milvus 2.x. target.remote.sk
Chave secreta para o armazenamento Milvus 2.x. target.remote.cloud
Fornecedor de serviços de armazenamento na nuvem. Valores de exemplo: aws
,gcp
,azure
.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 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.useIAM
Se deve ser utilizada uma função IAM para a ligação. target.remote.checkBucket
Se deve verificar se o intervalo especificado existe no armazenamento de objetos. 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 seu 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 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.
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çã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().