🚀 Coba Zilliz Cloud, Milvus yang sepenuhnya terkelola, secara gratis—rasakan performa 10x lebih cepat! Coba Sekarang>>

milvus-logo
LFAI
Beranda

Dari Elasticsearch

Panduan ini menyediakan proses langkah demi langkah yang komprehensif untuk memigrasikan data dari Elasticsearch ke Milvus 2.x. Dengan mengikuti panduan ini, Anda akan dapat mentransfer data secara efisien, memanfaatkan fitur-fitur canggih Milvus 2.x, dan meningkatkan kinerja.

Prasyarat

  • Versi perangkat lunak:
    • Sumber Elasticsearch: 7.x atau 8.x
    • Target Milvus: 2.x
    • Untuk detail instalasi, lihat Menginstalasi Elasticsearch dan Menginstalasi Milvus.
  • Alat yang dibutuhkan:
  • Tipe data yang didukung untuk migrasi: Bidang-bidang yang akan dimigrasikan dari sumber indeks Elasticsearch adalah dari jenis berikut - dense_vector, kata kunci, teks, long, integer, double, float, boolean, objek. Tipe data yang tidak tercantum di sini saat ini tidak didukung untuk migrasi. Lihat Referensi pemetaan bidang untuk informasi rinci mengenai pemetaan data antara koleksi Milvus dan indeks Elasticsearch.
  • Persyaratan indeks Elasticsearch:
    • Indeks Elasticsearch sumber harus berisi ruas vektor dengan tipe dense_vector. Migrasi tidak dapat dimulai tanpa bidang vektor.

Mengkonfigurasi berkas migrasi

Simpan berkas konfigurasi migrasi contoh sebagai migration.yaml dan modifikasi konfigurasi berdasarkan kondisi Anda yang sebenarnya. Anda bebas meletakkan berkas konfigurasi di direktori lokal mana pun.

dumper: # configs for the migration job.
  worker:
    workMode: "elasticsearch" # operational mode of the migration job.
    reader:
      bufferSize: 2500 # buffer size to read from Elasticsearch in each batch. A value ranging from 2000 to 4000 is recommended.
meta: # meta configs for the source Elasticsearch index and target Milvus 2.x collection.
  mode: "config" # specifies the source for meta configs. currently, onlly `config` is supported.
  version: "8.9.1"
  index: "qatest_index" # identifies the Elasticsearch index to migrate data from.
  fields: # fields within the Elasticsearch index to be migrated.
  - name: "my_vector" # name of the Elasticsearch field.
    type: "dense_vector" # data type of the Elasticsearch field.
    dims: 128 # dimension of the vector field. required only when `type` is `dense_vector`.
  - name: "id"
    pk: true # specifies if the field serves as a primary key.
    type: "long"
  - name: "num"
    type: "integer"
  - name: "double1"
    type: "double"
  - name: "text1"
    maxLen: 1000 # max. length of data fields. required only for `keyword` and `text` data types.
    type: "text"
  - name: "bl1"
    type: "boolean"
  - name: "float1"
    type: "float"
  milvus: # configs specific to creating the collection in Milvus 2.x
    collection: "Collection_01" # name of the Milvus collection. defaults to the Elasticsearch index name if not specified.
    closeDynamicField: false # specifies whether to disable the dynamic field in the collection. defaults to `false`.
    shardNum: 2 # number of shards to be created in the collection.
    consistencyLevel: Strong # consistency level for Milvus collection.
source: # connection configs for the source Elasticsearch server
  es:
    urls:
    - "http://10.15.1.***:9200" # address of the source Elasticsearch server.
    username: "" # username for the Elasticsearch server.
    password: "" # password for the Elasticsearch server.
target:
  mode: "remote" # storage location for dumped files. valid values: `remote` and `local`.
  remote: # configs for remote storage
    outputDir: "migration/milvus/test" # output directory path in the cloud storage bucket.
    cloud: "aws" # cloud storage service provider. Examples: `aws`, `gcp`, `azure`, etc.
    region: "us-west-2" # region of the cloud storage; can be any value if using local Minio.
    bucket: "zilliz-aws-us-****-*-********" # bucket name for storing data; must align with configs in milvus.yaml for Milvus 2.x.
    useIAM: true # whether to use an IAM Role for connection.
    checkBucket: false # checks if the specified bucket exists in the storage.
  milvus2x: # connection configs for the target Milvus 2.x server
    endpoint: "http://10.102.*.**:19530" # address of the target Milvus server.
    username: "****" # username for the Milvus 2.x server.
    password: "******" # password for the Milvus 2.x server.

Tabel berikut ini menjelaskan parameter dalam berkas konfigurasi contoh. Untuk daftar lengkap konfigurasi, lihat Migrasi Milvus: Elasticsearch ke Milvus 2.x.

  • dumper

    ParameterDeskripsi
    dumper.worker.workModeMode operasional pekerjaan migrasi. Diatur ke elasticsearch ketika melakukan migrasi dari indeks Elasticsearch.
    dumper.worker.reader.bufferSizeUkuran buffer untuk dibaca dari Elasticsearch di setiap batch. Unit: KB.
  • meta

    ParameterDeskripsi
    meta.modeMenentukan sumber untuk meta konfigurasi. Saat ini, hanya config yang didukung.
    meta.indexMengidentifikasi indeks Elasticsearch yang akan dimigrasikan datanya.
    meta.fieldsBidang dalam indeks Elasticsearch yang akan dimigrasi.
    meta.fields.nameNama bidang Elasticsearch.
    meta.fields.maxLenPanjang maksimum bidang. Parameter ini hanya diperlukan jika meta.fields.type adalah keyword atau text.
    meta.fields.pkMenentukan apakah bidang berfungsi sebagai kunci utama.
    meta.fields.typeTipe data bidang Elasticsearch. Saat ini, tipe data berikut di Elasticsearch didukung: dense_vector, kata kunci, teks, long, integer, double, float, boolean, objek.
    meta.fields.dimsDimensi bidang vektor. Parameter ini hanya diperlukan jika meta.fields.type adalah dense_vector.
    meta.milvusKonfigurasi khusus untuk membuat koleksi di Milvus 2.x.
    meta.milvus.collectionNama koleksi Milvus. Defaultnya adalah nama indeks Elasticsearch jika tidak ditentukan.
    meta.milvus.closeDynamicFieldMenentukan apakah akan menonaktifkan bidang dinamis dalam koleksi. Defaultnya adalah false. Untuk informasi lebih lanjut tentang bidang dinamis, lihat Mengaktifkan Bidang Dinamis.
    meta.milvus.shardNumJumlah pecahan yang akan dibuat dalam koleksi. Untuk informasi lebih lanjut tentang pecahan, lihat Terminologi.
    meta.milvus.consistencyLevelTingkat konsistensi untuk koleksi di Milvus. Untuk informasi lebih lanjut, lihat Konsistensi.
  • source

    ParameterDeskripsi
    source.esKonfigurasi koneksi untuk server Elasticsearch sumber.
    source.es.urlsAlamat server Elasticsearch sumber.
    source.es.usernameNama pengguna untuk server Elasticsearch.
    source.es.passwordKata sandi untuk server Elasticsearch.
  • target

    ParameterDeskripsi
    target.modeLokasi 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.outputDirJalur direktori keluaran di ember penyimpanan cloud.
    target.remote.cloudPenyedia layanan penyimpanan cloud. Nilai contoh: aws, gcp, azure.
    target.remote.regionWilayah penyimpanan cloud. Bisa berupa nilai apa pun jika Anda menggunakan MinIO lokal.
    target.remote.bucketNama bucket untuk menyimpan data. Nilainya harus sama dengan konfigurasi di Milvus 2.x. Untuk informasi lebih lanjut, lihat Konfigurasi Sistem.
    target.remote.useIAMApakah akan menggunakan Peran IAM untuk koneksi.
    target.remote.checkBucketApakah akan memeriksa apakah bucket yang ditentukan ada dalam penyimpanan objek.
    target.milvus2xKonfigurasi koneksi untuk server Milvus 2.x target.
    target.milvus2x.endpointAlamat server Milvus target.
    target.milvus2x.usernameNama 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.passwordKata 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 konfigurasi migration.yaml berada.

./milvus-migration start --config=/{YourConfigFilePath}/migration.yaml

Berikut ini adalah contoh keluaran log migrasi yang berhasil:

[task/load_base_task.go:94] ["[LoadTasker] Dec Task Processing-------------->"] [Count=0] [fileName=testfiles/output/zwh/migration/test_mul_field4/data_1_1.json] [taskId=442665677354739304]
[task/load_base_task.go:76] ["[LoadTasker] Progress Task --------------->"] [fileName=testfiles/output/zwh/migration/test_mul_field4/data_1_1.json] [taskId=442665677354739304]
[dbclient/cus_field_milvus2x.go:86] ["[Milvus2x] begin to ShowCollectionRows"]
[loader/cus_milvus2x_loader.go:66] ["[Loader] Static: "] [collection=test_mul_field4_rename1] [beforeCount=50000] [afterCount=100000] [increase=50000]
[loader/cus_milvus2x_loader.go:66] ["[Loader] Static Total"] ["Total Collections"=1] [beforeTotalCount=50000] [afterTotalCount=100000] [totalIncrease=50000]
[migration/es_starter.go:25] ["[Starter] migration ES to Milvus finish!!!"] [Cost=80.009174459]
[starter/starter.go:106] ["[Starter] Migration Success!"] [Cost=80.00928425]
[cleaner/remote_cleaner.go:27] ["[Remote Cleaner] Begin to clean files"] [bucket=a-bucket] [rootPath=testfiles/output/zwh/migration]
[cmd/start.go:32] ["[Cleaner] clean file success!"]

Verifikasi hasilnya

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().

Referensi pemetaan bidang

Tinjau tabel di bawah ini untuk memahami bagaimana tipe field di indeks Elasticsearch dipetakan ke tipe field di koleksi Milvus.

Untuk informasi lebih lanjut mengenai tipe data yang didukung di Milvus, lihat Tipe data yang didukung.

Jenis Bidang ElasticsearchJenis Bidang MilvusDeskripsi
dense_vectorVektor mengambangDimensi vektor tetap tidak berubah selama migrasi.
kata kunciVarCharTetapkan Panjang Maksimal (1 hingga 65.535). String yang melebihi batas dapat memicu kesalahan migrasi.
teksVarCharTetapkan Panjang Maks (1 hingga 65.535). String yang melebihi batas dapat memicu kesalahan migrasi.
panjangInt64-
bilangan bulatInt32-
doubleDouble-
mengambangMengapung-
booleanBool-
objekJSON-

Coba Milvus yang Dikelola secara Gratis

Zilliz Cloud bebas masalah, didukung oleh Milvus dan 10x lebih cepat.

Mulai
Umpan balik

Apakah halaman ini bermanfaat?