Backup e ripristino dei dati tramite API
Milvus Backup offre funzioni di backup e ripristino dei dati per garantire la sicurezza dei vostri dati Milvus.
Ottenere Milvus Backup
È possibile scaricare il binario compilato o creare dal sorgente.
Per scaricare il binario compilato, andare alla pagina dei rilasci, dove si trovano tutti i rilasci ufficiali. Ricordate di utilizzare sempre i binari della release contrassegnata come Ultima.
Per compilare dal sorgente, procedere come segue:
git clone git@github.com:zilliztech/milvus-backup.git
go get
go build
Preparare il file di configurazione
Scaricare il file di configurazione di esempio e adattarlo alle proprie esigenze.
Creare quindi una cartella accanto al binario di Milvus Backup scaricato o compilato, denominarla configs
e collocare il file di configurazione all'interno della cartella configs
.
La struttura della cartella dovrebbe essere simile alla seguente:
workspace ├── milvus-backup └── configs └── backup.yaml
Poiché Milvus Backup non può eseguire il backup dei dati in un percorso locale, è necessario assicurarsi che le impostazioni di Minio siano corrette quando si adatta il file di configurazione.
Il nome del bucket Minio predefinito varia a seconda del modo in cui si installa Milvus. Quando si apportano modifiche alle impostazioni di Minio, fare riferimento alla seguente tabella.
campo | Docker Compose | Helm / Milvus Operator |
---|---|---|
bucketName | a-bucket | milvus-bucket |
rootPath | file | file |
Avviare il server API
È possibile avviare il server API come segue:
./milvus-backup server
Per impostazione predefinita, il server API è in ascolto sulla porta 8080. È possibile cambiarla eseguendola con il flag -p
. Per avviare il server API in ascolto sulla porta 443, procedere come segue:
./milvus-backup server -p 443
È possibile accedere all'interfaccia utente Swagger utilizzando http://localhost:
Preparare i dati
Se si esegue un'istanza locale di Milvus vuota in ascolto sulla porta predefinita 19530, utilizzare gli script Python di esempio per generare alcuni dati nella propria istanza. Siate liberi di apportare le modifiche necessarie agli script per adattarli alle vostre esigenze.
Ottenere gli script. Eseguire gli script per generare i dati. Assicurarsi che PyMilvus, l'SDK Python ufficiale di Milvus, sia stato installato.
python example/prepare_data.py
Questo passo è facoltativo. Se si salta questo passaggio, assicurarsi di avere già dei dati nella propria istanza Milvus.
Backup dei dati
Si noti che l'esecuzione di Milvus Backup su un'istanza Milvus non influisce normalmente sul funzionamento dell'istanza. L'istanza Milvus è completamente funzionante durante il backup o il ripristino.
Eseguire il seguente comando per creare un backup. Modificare collection_names
e backup_name
se necessario.
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"
]
}'
Una volta eseguito il comando, è possibile elencare i backup nel bucket specificato nelle impostazioni di Minio come segue:
curl --location --request GET 'http://localhost:8080/api/v1/list' \
--header 'Content-Type: application/json'
E scaricare i file di backup come segue:
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'
Durante l'esecuzione del comando precedente, cambiare backup_id
e backup_name
con quelli restituiti dall'elenco API.
Ora è possibile salvare i file di backup in un luogo sicuro per ripristinarli in futuro, oppure caricarli su Zilliz Cloud per creare un database vettoriale gestito con i propri dati. Per ulteriori informazioni, consultare Migrazione da Milvus a Zilliz Cloud.
Ripristino dei dati
È possibile richiamare il comando API restore con l'opzione collection_suffix
per creare una nuova collezione ripristinando i dati dal backup. Modificare collection_names
e backup_name
se necessario.
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"
}'
L'opzione collection_suffix
consente di impostare un suffisso per la nuova raccolta da creare. Il comando precedente creerà una nuova raccolta chiamata hello_milvus_recover nella vostra istanza Milvus.
Se si preferisce ripristinare la raccolta di cui si è fatto il backup senza cambiarne il nome, si può eliminare la raccolta prima di ripristinarla dal backup. Ora è possibile pulire i dati generati in Prepare data eseguendo il comando seguente.
python example/clean_data.py
Quindi eseguire il comando seguente per ripristinare i dati dal backup.
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"
}'
Il processo di ripristino può richiedere molto tempo, a seconda delle dimensioni dei dati da ripristinare. Pertanto, tutte le attività di ripristino vengono eseguite in modo asincrono. È possibile verificare lo stato di un'attività di ripristino eseguendo:
curl --location --request GET 'http://localhost:8080/api/v1/get_restore?id=<test_restore_id>' \
--header 'Content-Type: application/json'
Ricordarsi di cambiare test_restore_id
con quello ripristinato dall'API di ripristino.
Verifica dei dati ripristinati
Una volta completato il ripristino, è possibile verificare i dati ripristinati indicizzando la raccolta ripristinata come segue:
python example/verify_data.py
Si noti che lo script precedente presuppone che sia stato eseguito il comando restore
con il flag -s
e che il suffisso sia impostato su -recover
. È possibile apportare le modifiche necessarie allo script per adattarlo alle proprie esigenze.