Dari Milvus 1.x
Panduan ini menyediakan proses langkah demi langkah yang komprehensif untuk memindahkan data dari Milvus 1.x (termasuk 0.9.x dan yang lebih baru) ke Milvus 2.x. Dengan mengikuti panduan ini, Anda akan dapat memindahkan data Anda secara efisien, dengan memanfaatkan fitur-fitur canggih Milvus 2.x dan meningkatkan kinerja.
Prasyarat
- Versi perangkat lunak:
- Milvus Sumber: 0.9.x hingga 1.x
- Target Milvus: 2.x
- Alat yang dibutuhkan:
- Alatmigrasi Milvus. Untuk detail instalasi, lihat Menginstal Alat Migrasi.
Mengekspor metadata dari instalasi Milvus sumber
Untuk menyiapkan data migrasi untuk Milvus 0.9.x hingga 1.x, hentikan Milvus sumber atau setidaknya hentikan operasi DML di dalamnya.
Ekspor metadata dari instalasi Milvus sumber ke
meta.json
.- Untuk instalasi yang menggunakan MySQL sebagai backend, jalankan
./milvus-migration export -m "user:password@tcp(adderss)/milvus?charset=utf8mb4&parseTime=True&loc=Local" -o outputDir
- Untuk instalasi yang menggunakan SQLite sebagai backend, jalankan
./milvus-migration export -s /milvus/db/meta.sqlite -o outputDir
Salin folder
tables
dari instalasi Milvus Anda, lalu pindahkan foldermeta.json
dantables
ke folder kosong.Setelah langkah ini selesai, struktur folder kosong akan terlihat seperti ini:
migration_data ├── meta.json └── tables
Unggah folder yang telah disiapkan pada langkah sebelumnya ke ember penyimpanan blok S3 atau langsung gunakan folder lokal ini pada bagian selanjutnya.
Konfigurasikan file migrasi
Simpan file konfigurasi migrasi contoh sebagai migration.yaml
dan modifikasi konfigurasi berdasarkan kondisi aktual Anda. Anda bebas meletakkan file konfigurasi di direktori lokal mana pun.
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
Tabel berikut ini menjelaskan parameter dalam berkas konfigurasi contoh. Untuk daftar lengkap konfigurasi, lihat Migrasi Milvus: Milvus1.x ke Milvus 2.x.
dumper
Parameter Deskripsi dumper.worker.limit
Konkurensi utas dumper. dumper.worker.workMode
Mode operasional pekerjaan migrasi. Diatur ke milvus1x
saat melakukan migrasi dari Milvus 1.x.dumper.worker.reader.bufferSize
Ukuran buffer untuk dibaca dari Milvus 1.x dalam setiap batch. Unit: KB. dumper.worker.writer.bufferSize
Ukuran buffer untuk menulis ke Milvus 2.x dalam setiap batch. Unit: KB. loader
Parameter Deskripsi loader.worker.limit
Konkurensi utas pemuat. meta
Parameter Deskripsi meta.mode
Menentukan dari mana file meta meta.json dibaca. Nilai yang valid: local
,remote
,mysql
,sqlite
.meta.localFile
Jalur direktori lokal tempat file meta.json
berada. Konfigurasi ini hanya digunakan jikameta.mode
disetel kelocal
. Untuk konfigurasi meta lainnya, lihat README_1X.source
Parameter Deskripsi source.mode
Menentukan dari mana file sumber dibaca. Nilai yang valid:
-local
: membaca file dari disk lokal.
-remote
: membaca file dari penyimpanan jarak jauh.source.local.tablesDir
Jalur direktori tempat file sumber berada. Misalnya, /db/tables/
.target
Parameter Deskripsi target.mode
Lokasi penyimpanan untuk file yang dibuang. Nilai yang valid:
-local
: Menyimpan file yang dibuang di disk lokal.
-remote
: Menyimpan file yang dibuang di penyimpanan objek.target.remote.outputDir
Jalur direktori keluaran di ember penyimpanan cloud. target.remote.ak
Kunci akses untuk penyimpanan Milvus 2.x. target.remote.sk
Kunci rahasia untuk penyimpanan Milvus 2.x. target.remote.cloud
Penyedia layanan penyimpanan awan. Contoh nilai: aws
,gcp
,azure
.target.remote.region
Wilayah penyimpanan cloud. Dapat berupa nilai apa pun jika Anda menggunakan MinIO lokal. target.remote.bucket
Nama bucket untuk menyimpan data. Nilainya harus sama dengan konfigurasi di Milvus 2.x. Untuk informasi lebih lanjut, lihat Konfigurasi Sistem. target.remote.useIAM
Apakah akan menggunakan Peran IAM untuk koneksi. target.remote.checkBucket
Apakah akan memeriksa apakah bucket yang ditentukan ada dalam penyimpanan objek. target.milvus2x.endpoint
Alamat server Milvus target. target.milvus2x.username
Nama pengguna untuk server Milvus 2.x. Parameter ini diperlukan jika autentikasi pengguna diaktifkan untuk server Milvus Anda. Untuk informasi lebih lanjut, lihat Mengaktifkan Autentikasi. target.milvus2x.password
Kata sandi untuk server Milvus 2.x. Parameter ini diperlukan jika autentikasi pengguna diaktifkan untuk server Milvus Anda. Untuk informasi lebih lanjut, lihat Mengaktifkan Autentikasi.
Memulai tugas migrasi
Mulai tugas migrasi dengan perintah berikut. Ganti
{YourConfigFilePath}
dengan direktori lokal tempat berkas konfigurasimigration.yaml
berada../milvus-migration dump --config=/{YourConfigFilePath}/migration.yaml
Perintah di atas akan mengubah data sumber pada Milvus 1.x menjadi berkas NumPy, dan kemudian menggunakan operasi bulkInsert untuk menulis data ke bucket target.
Setelah file NumPy dihasilkan, impor file-file ini ke dalam Milvus 2.x dengan perintah berikut. Ganti
{YourConfigFilePath}
dengan direktori lokal di mana berkas konfigurasimigration.yaml
berada../milvus-migration load --config=/{YourConfigFilePath}/migration.yaml
Verifikasi hasil
Setelah tugas migrasi dijalankan, Anda dapat melakukan panggilan API atau menggunakan Attu untuk melihat jumlah entitas yang dimigrasi. Untuk informasi lebih lanjut, lihat Attu dan get_collection_stats().