Cadangkan dan Pulihkan Data Menggunakan API
Milvus Backup menyediakan fitur backup dan restore data untuk memastikan keamanan data Milvus Anda.
Mendapatkan Cadangan Milvus
Anda bisa mengunduh biner yang telah dikompilasi atau membangun dari sumbernya.
Untuk mengunduh biner yang telah dikompilasi, buka halaman rilis, di mana Anda dapat menemukan semua rilis resmi. Ingat, selalu gunakan biner dalam rilis yang ditandai sebagai Terbaru.
Untuk mengkompilasi dari sumbernya, lakukan hal berikut:
git clone git@github.com:zilliztech/milvus-backup.git
go get
go build
Siapkan berkas konfigurasi
Unduh contoh berkas konfigurasi dan sesuaikan dengan kebutuhan Anda.
Kemudian buat sebuah folder di samping berkas biner Milvus Backup yang telah diunduh atau dibuat, beri nama folder tersebut configs
, dan letakkan berkas konfigurasi di dalam folder configs
.
Struktur folder Anda seharusnya mirip dengan yang berikut ini:
workspace
├── milvus-backup
└── configs
└── backup.yaml
Karena Milvus Backup tidak dapat mencadangkan data Anda ke jalur lokal, pastikan pengaturan Minio sudah benar saat menyesuaikan file konfigurasi.
Nama bucket Minio default bervariasi sesuai dengan cara Anda menginstal Milvus. Ketika membuat perubahan pada pengaturan Minio, lihat tabel berikut.
bidang | Penulisan Docker | Helm / Operator Milvus |
---|---|---|
bucketName | a-bucket | milvus-bucket |
rootPath | berkas | berkas |
Memulai server API
Kemudian Anda dapat memulai server API sebagai berikut:
./milvus-backup server
Server API mendengarkan pada port 8080 secara default. Anda dapat mengubahnya dengan menjalankannya dengan bendera -p
. Untuk memulai server API yang mendengarkan pada port 443, lakukan hal berikut:
./milvus-backup server -p 443
Anda dapat mengakses Swagger UI menggunakan http://localhost:
Menyiapkan data
Jika Anda menjalankan instans Milvus lokal kosong yang mendengarkan pada port default 19530, gunakan contoh skrip Python untuk menghasilkan beberapa data dalam instans Anda. Jangan ragu untuk membuat perubahan yang diperlukan pada skrip agar sesuai dengan kebutuhan Anda.
Dapatkan skripnya. Kemudian jalankan skrip untuk menghasilkan data. Pastikan bahwa PyMilvus, SDK Python Milvus resmi, telah terinstal.
python example/prepare_data.py
Langkah ini bersifat opsional. Jika Anda melewatkan langkah ini, pastikan bahwa Anda sudah memiliki beberapa data dalam instance Milvus Anda.
Mencadangkan data
Perhatikan bahwa menjalankan Milvus Backup terhadap instans Milvus biasanya tidak akan memengaruhi jalannya instans. Instance Milvus Anda akan berfungsi penuh selama pencadangan atau pemulihan.
Jalankan perintah berikut untuk membuat cadangan. Ubah collection_names
dan backup_name
jika perlu.
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"
]
}'
Setelah perintah dijalankan, Anda dapat membuat daftar cadangan dalam bucket yang ditentukan dalam pengaturan Minio sebagai berikut:
curl --location --request GET 'http://localhost:8080/api/v1/list' \
--header 'Content-Type: application/json'
Dan unduh file cadangan sebagai berikut:
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'
Saat menjalankan perintah di atas, ubah backup_id
dan backup_name
ke yang dikembalikan oleh API daftar.
Sekarang, Anda dapat menyimpan file cadangan ke tempat yang aman untuk pemulihan di masa mendatang, atau mengunggahnya ke Zilliz Cloud untuk membuat database vektor terkelola dengan data Anda. Untuk detailnya, lihat Migrasi dari Milvus ke Zilliz Cloud.
Memulihkan data
Anda dapat memanggil perintah API restore dengan opsi collection_suffix
untuk membuat koleksi baru dengan memulihkan data dari cadangan. Ubah collection_names
dan backup_name
jika perlu.
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"
}'
Opsi collection_suffix
memungkinkan Anda untuk mengatur akhiran untuk koleksi baru yang akan dibuat. Perintah di atas akan membuat koleksi baru bernama hello_milvus_recover di dalam instans Milvus Anda.
Jika Anda lebih suka memulihkan koleksi yang dicadangkan tanpa mengubah namanya, hapus koleksi sebelum memulihkannya dari cadangan. Anda sekarang dapat membersihkan data yang dihasilkan di Siapkan data dengan menjalankan perintah berikut.
python example/clean_data.py
Kemudian jalankan perintah berikut untuk memulihkan data dari cadangan.
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"
}'
Proses pemulihan dapat memakan waktu, tergantung pada ukuran data yang akan dipulihkan. Oleh karena itu, semua tugas pemulihan berjalan secara asinkron. Anda dapat memeriksa status tugas pemulihan dengan menjalankannya:
curl --location --request GET 'http://localhost:8080/api/v1/get_restore?id=<test_restore_id>' \
--header 'Content-Type: application/json'
Ingatlah untuk mengubah test_restore_id
ke yang dipulihkan oleh API pemulihan.
Memverifikasi data yang dipulihkan
Setelah pemulihan selesai, Anda dapat memverifikasi data yang dipulihkan dengan mengindeks koleksi yang dipulihkan sebagai berikut:
python example/verify_data.py
Perhatikan bahwa skrip di atas mengasumsikan bahwa Anda telah menjalankan perintah restore
dengan bendera -s
dan akhiran disetel ke -recover
. Jangan ragu untuk membuat perubahan yang diperlukan pada skrip agar sesuai dengan kebutuhan Anda.