milvus-logo
LFAI
Home
  • Ferramentas

Fazer backup e restaurar dados usando APIs

O Milvus Backup fornece funcionalidades de cópia de segurança e restauro de dados para garantir a segurança dos seus dados Milvus.

Obter o Milvus Backup

Pode descarregar o binário compilado ou construir a partir da fonte.

Para descarregar o binário compilado, vá à página de lançamento, onde pode encontrar todos os lançamentos oficiais. Lembre-se, utilize sempre os binários da versão marcada como Latest.

Para compilar a partir da fonte, faça o seguinte:

git clone git@github.com:zilliztech/milvus-backup.git
go get
go build

Preparar ficheiro de configuração

Descarregue o ficheiro de configuração de exemplo e adapte-o às suas necessidades.

Em seguida, crie uma pasta juntamente com o binário Milvus Backup descarregado ou compilado, dê-lhe o nome de configs e coloque o ficheiro de configuração dentro da pasta configs.

A sua estrutura de pastas deve ser semelhante à seguinte:

workspace ├── milvus-backup └── configs └── backup.yaml

Como o Milvus Backup não pode fazer backup de seus dados para um caminho local, certifique-se de que as configurações do Minio estejam corretas ao adaptar o arquivo de configuração.

O nome do bucket padrão do Minio varia de acordo com a maneira como você instala o Milvus. Ao efetuar alterações às definições do Minio, consulte a tabela seguinte.

campoDocker ComposeOperador do Helm / Milvus
bucketNamea-bucketmilvus-bucket
rootPathficheirosficheiro

Iniciar o servidor API

De seguida, pode iniciar o servidor API da seguinte forma:

./milvus-backup server

O servidor API escuta na porta 8080 por defeito. Pode alterá-la, executando-a com a bandeira -p. Para iniciar o servidor da API que escuta na porta 443, faça o seguinte:

./milvus-backup server -p 443

Você pode acessar a interface do usuário do Swagger usando http://localhost:/api/v1/docs/index.html.

Preparar dados

Se executar uma instância local vazia do Milvus à escuta na porta predefinida 19530, utilize os scripts Python de exemplo para gerar alguns dados na sua instância. Sinta-se à vontade para fazer as alterações necessárias nos scripts para atender às suas necessidades.

Obtenha os scripts. Em seguida, execute os scripts para gerar os dados. Certifique-se de que o PyMilvus, o SDK Python oficial do Milvus, foi instalado.

python example/prepare_data.py

Este passo é opcional. Se o saltar, certifique-se de que já tem alguns dados na sua instância Milvus.

Fazer o backup dos dados

Note que a execução do Milvus Backup numa instância do Milvus não afectará normalmente a execução da instância. A sua instância Milvus está totalmente funcional durante a cópia de segurança ou o restauro.

Execute o seguinte comando para criar uma cópia de segurança. Altere collection_names e backup_name se necessário.

curl --location --request POST 'http://localhost:8080/api/v1/create' \
--header 'Content-Type: application/json' \
--data-raw '{
  "async": true,
  "backup_name": "my_backup",
  "collection_names": [
    "hello_milvus"
  ]
}'

Depois de o comando ser executado, pode listar as cópias de segurança no bucket especificado nas definições do Minio da seguinte forma:

curl --location --request GET 'http://localhost:8080/api/v1/list' \
--header 'Content-Type: application/json'

E baixar os arquivos de backup da seguinte forma:

curl --location --request GET 'http://localhost:8080/api/v1/get_backup?backup_id=<test_backup_id>&backup_name=my_backup' \
--header 'Content-Type: application/json'

Ao executar o comando acima, altere backup_id e backup_name para o que foi retornado pela API de listagem.

Agora, pode guardar os ficheiros de cópia de segurança num local seguro para restauro no futuro, ou carregá-los para o Zilliz Cloud para criar uma base de dados de vectores gerida com os seus dados. Para mais detalhes, consulte Migrar do Milvus para o Zilliz Cloud.

Restaurar dados

Pode chamar o comando API restore com uma opção collection_suffix para criar uma nova coleção restaurando os dados da cópia de segurança. Altere collection_names e backup_name se necessário.

curl --location --request POST 'http://localhost:8080/api/v1/restore' \
--header 'Content-Type: application/json' \
--data-raw '{
    "async": true,
    "collection_names": [
    "hello_milvus"
  ],
    "collection_suffix": "_recover",
    "backup_name":"my_backup"
}'

A opção collection_suffix permite-lhe definir um sufixo para a nova coleção a ser criada. O comando acima irá criar uma nova coleção chamada hello_milvus_recover na sua instância Milvus.

Se preferir restaurar a coleção com cópia de segurança sem alterar o seu nome, elimine a coleção antes de a restaurar a partir da cópia de segurança. Pode agora limpar os dados gerados em Preparar dados, executando o seguinte comando.

python example/clean_data.py

Em seguida, execute o seguinte comando para restaurar os dados da cópia de segurança.

curl --location --request POST 'http://localhost:8080/api/v1/restore' \
--header 'Content-Type: application/json' \
--data-raw '{
    "async": true,
    "collection_names": [
    "hello_milvus"
  ],
    "collection_suffix": "",
    "backup_name":"my_backup"
}'

O processo de restauro pode ser demorado, dependendo do tamanho dos dados a serem restaurados. Por conseguinte, todas as tarefas de restauro estão a ser executadas de forma assíncrona. Pode verificar o estado de uma tarefa de restauro executando:

curl --location --request GET 'http://localhost:8080/api/v1/get_restore?id=<test_restore_id>' \
--header 'Content-Type: application/json'

Lembre-se de alterar test_restore_id para o restaurado pela API de restauração.

Verificar os dados restaurados

Quando a restauração for concluída, você poderá verificar os dados restaurados indexando a coleção restaurada da seguinte forma:

python example/verify_data.py

Observe que o script acima assume que você executou o comando restore com o sinalizador -s e que o sufixo está definido como -recover. Sinta-se à vontade para fazer as alterações necessárias no script para atender às suas necessidades.

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?