Copia de seguridad y restauración de datos mediante API
Milvus Backup proporciona funciones de copia de seguridad y restauración de datos para garantizar la seguridad de sus datos de Milvus.
Obtener Milvus Backup
Puede descargar el binario compilado o compilarlo a partir del código fuente.
Para descargar el binario compilado, vaya a la página de versiones, donde encontrará todas las versiones oficiales. Recuerde, utilice siempre los binarios de la versión marcada como Última.
Para compilar desde el código fuente, haz lo siguiente:
git clone git@github.com:zilliztech/milvus-backup.git
go get
go build
Prepare el archivo de configuración
Descarga el archivo de configuración de ejemplo y adáptalo a tus necesidades.
A continuación, cree una carpeta junto al binario de Milvus Backup descargado o compilado, nombre la carpeta configs
, y coloque el archivo de configuración dentro de la carpeta configs
.
Su estructura de carpetas debe ser similar a la siguiente:
workspace ├── milvus-backup └── configs └── backup.yaml
Dado que Milvus Backup no puede realizar copias de seguridad de sus datos en una ruta local, asegúrese de que la configuración de Minio es correcta al adaptar el archivo de configuración.
El nombre del cubo Minio predeterminado varía según la forma en que instale Milvus. Cuando realice cambios en la configuración de Minio, consulte la siguiente tabla.
campo | Docker Compose | Helm / Operador Milvus |
---|---|---|
bucketName | a-bucket | milvus-bucket |
rootPath | archivos | archivo |
Inicie el servidor API
A continuación, puede iniciar el servidor API de la siguiente manera:
./milvus-backup server
El servidor API escucha en el puerto 8080 por defecto. Puede cambiarlo ejecutándolo con la bandera -p
. Para iniciar el servidor API escuchando en el puerto 443, haz lo siguiente:
./milvus-backup server -p 443
Puedes acceder a la interfaz de usuario Swagger utilizando http://localhost:
Preparar los datos
Si ejecuta una instancia local vacía de Milvus escuchando en el puerto por defecto 19530, utilice los scripts Python de ejemplo para generar algunos datos en su instancia. Siéntase libre de realizar los cambios necesarios en los scripts para adaptarlos a sus necesidades.
Obtenga los scripts. A continuación, ejecute los scripts para generar los datos. Asegúrese de que PyMilvus, el SDK Python oficial de Milvus, ha sido instalado.
python example/prepare_data.py
Este paso es opcional. Si omite este paso, asegúrese de que ya tiene algunos datos en su instancia de Milvus.
Copia de seguridad de los datos
Tenga en cuenta que ejecutar Milvus Backup contra una instancia Milvus normalmente no afectará al funcionamiento de la instancia. Su instancia de Milvus es completamente funcional durante la copia de seguridad o la restauración.
Ejecute el siguiente comando para crear una copia de seguridad. Cambie collection_names
y backup_name
si es necesario.
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 vez ejecutado el comando, puede listar las copias de seguridad en el bucket especificado en la configuración de Minio de la siguiente manera:
curl --location --request GET 'http://localhost:8080/api/v1/list' \
--header 'Content-Type: application/json'
Y descargar los archivos de copia de seguridad de la siguiente manera:
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'
Mientras ejecuta el comando anterior, cambie backup_id
y backup_name
por los que devuelve la API de lista.
Ahora, puede guardar los archivos de copia de seguridad en un lugar seguro para restaurarlos en el futuro, o subirlos a Zilliz Cloud para crear una base de datos vectorial gestionada con sus datos. Para más detalles, consulte Migrar de Milvus a Zilliz Cloud.
Restaurar datos
Puede llamar al comando API de restauración con una opción collection_suffix
para crear una nueva colección restaurando los datos de la copia de seguridad. Cambie collection_names
y backup_name
si es necesario.
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"
}'
La opción collection_suffix
le permite establecer un sufijo para la nueva colección que se va a crear. El comando anterior creará una nueva colección llamada hello_milvus_recover en su instancia de Milvus.
Si prefiere restaurar la colección respaldada sin cambiar su nombre, elimine la colección antes de restaurarla a partir de la copia de seguridad. Ahora puede limpiar los datos generados en Prepare data ejecutando el siguiente comando.
python example/clean_data.py
A continuación, ejecute el siguiente comando para restaurar los datos desde la copia de seguridad.
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"
}'
El proceso de restauración puede llevar mucho tiempo dependiendo del tamaño de los datos a restaurar. Por ello, todas las tareas de restauración se ejecutan de forma asíncrona. Puede comprobar el estado de una tarea de restauración ejecutándola:
curl --location --request GET 'http://localhost:8080/api/v1/get_restore?id=<test_restore_id>' \
--header 'Content-Type: application/json'
Recuerde cambiar test_restore_id
por el restaurado por la API de restauración.
Verificación de los datos restaurados
Una vez completada la restauración, puede verificar los datos restaurados indexando la colección restaurada como se indica a continuación:
python example/verify_data.py
Tenga en cuenta que el script anterior asume que ha ejecutado el comando restore
con el indicador -s
y que el sufijo está establecido en -recover
. No dude en realizar los cambios necesarios en el script para adaptarlo a sus necesidades.