من Elasticsearch
يوفر هذا الدليل عملية شاملة وخطوة بخطوة لترحيل البيانات من Elasticsearch إلى Milvus 2.x. باتباع هذا الدليل، ستتمكن من نقل بياناتك بكفاءة، والاستفادة من ميزات Milvus 2.x المتقدمة والأداء المحسّن.
المتطلبات الأساسية
- إصدارات البرنامج:
- المصدر Elasticsearch: 7.x أو 8.x
- الهدف ميلفوس: 2.x
- للحصول على تفاصيل التثبيت، راجع تثبيت Elasticsearch وتثبيت Milvus.
- الأدوات المطلوبة:
- أداةMilvus-migration. للحصول على تفاصيل التثبيت، راجع تثبيت أداة الترحيل.
- أنواع البيانات المدعومة للترحيل: الحقول التي سيتم ترحيلها من فهرس Elasticsearch المصدر هي من الأنواع التالية - dense_vector، والكلمات الرئيسية، والنص، والطويل، والصحيح، والمزدوج، والعائم، والمنطقي، والكائن. أنواع البيانات غير المدرجة هنا غير مدعومة حاليًا للترحيل. ارجع إلى مرجع تخطيط الحقول للحصول على معلومات مفصلة حول تخطيطات البيانات بين مجموعات Milvus وفهارس Elasticsearch.
- متطلبات فهرس Elasticsearch:
- يجب أن يحتوي فهرس Elasticsearch المصدر على حقل متجه من النوع
dense_vector
. لا يمكن بدء الترحيل بدون حقل متجه.
- يجب أن يحتوي فهرس Elasticsearch المصدر على حقل متجه من النوع
تكوين ملف الترحيل
احفظ مثال ملف تهيئة الترحيل بصيغة migration.yaml
وقم بتعديل التكوينات بناءً على ظروفك الفعلية. لك مطلق الحرية في وضع ملف التكوين في أي دليل محلي.
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.
يصف الجدول التالي المعلمات في ملف التكوين النموذجي. للحصول على قائمة كاملة من التكوينات، ارجع إلى Milvus Migration: Elasticsearch إلى Milvus 2.x.
dumper
المعلمة الوصف dumper.worker.workMode
الوضع التشغيلي لمهمة الترحيل. اضبط على elasticsearch
عند الترحيل من فهارس Elasticsearch.dumper.worker.reader.bufferSize
حجم المخزن المؤقت للقراءة من Elasticsearch في كل دفعة. الوحدة: كيلوبايت. meta
المعلمة الوصف meta.mode
يحدد مصدر التكوينات الوصفية. حالياً، يتم دعم config
فقط.meta.index
يحدد فهرس Elasticsearch لترحيل البيانات منه. meta.fields
الحقول داخل فهرس Elasticsearch المراد ترحيلها. meta.fields.name
اسم حقل Elasticsearch. meta.fields.maxLen
الحد الأقصى لطول الحقل. هذه المعلمة مطلوبة فقط عندما يكون meta.fields.type
هوkeyword
أوtext
.meta.fields.pk
تحديد ما إذا كان الحقل يعمل كمفتاح أساسي. meta.fields.type
نوع بيانات حقل Elasticsearch. في الوقت الحالي، يتم دعم أنواع البيانات التالية في Elasticsearch: dasticsearch: متجه_كثيف، كلمة رئيسية، نص، طويل، عدد صحيح، عدد صحيح، عدد مزدوج، عدد عائم، عدد منطقي، كائن. meta.fields.dims
بُعد الحقل المتجه. هذه المعلمة مطلوبة فقط عندما يكون meta.fields.type
هوdense_vector
.meta.milvus
التكوينات الخاصة بإنشاء المجموعة في Milvus 2.x. meta.milvus.collection
اسم مجموعة Milvus. افتراضي إلى اسم فهرس Elasticsearch إذا لم يتم تحديده. meta.milvus.closeDynamicField
يحدد ما إذا كان سيتم تعطيل الحقل الديناميكي في المجموعة. افتراضي إلى false
. لمزيد من المعلومات حول الحقول الديناميكية، راجع تمكين الحقل الديناميكي.meta.milvus.shardNum
عدد الأجزاء المراد إنشاؤها في المجموعة. لمزيد من المعلومات حول الأجزاء، راجع المصطلحات. meta.milvus.consistencyLevel
مستوى الاتساق للمجموعة في Milvus. لمزيد من المعلومات، راجع الاتساق. source
المعلمة الوصف source.es
تكوينات الاتصال لخادم Elasticsearch المصدر. source.es.urls
عنوان خادم Elasticsearch المصدر. source.es.username
اسم المستخدم لخادم Elasticsearch. source.es.password
كلمة المرور لخادم Elasticsearch. target
المعلمة الوصف target.mode
موقع تخزين الملفات التي تم تفريغها. القيم الصالحة:
-local
: تخزين الملفات التي تم تفريغها على الأقراص المحلية.
-remote
: تخزين الملفات التي تم تفريغها على وحدة تخزين الكائنات.target.remote.outputDir
مسار دليل الإخراج في دلو التخزين السحابي. target.remote.cloud
موفر خدمة التخزين السحابي. مثال على القيم: aws
،gcp
،azure
.target.remote.region
منطقة التخزين السحابي. يمكن أن تكون أي قيمة إذا كنت تستخدم MinIO المحلي. target.remote.bucket
اسم الدلو لتخزين البيانات. يجب أن تكون القيمة هي نفس قيمة التكوين في Milvus 2.x. لمزيد من المعلومات، راجع تكوينات النظام. target.remote.useIAM
ما إذا كنت تريد استخدام دور IAM للاتصال. target.remote.checkBucket
ما إذا كان سيتم التحقق من وجود الدلو المحدد في تخزين الكائنات. target.milvus2x
تكوينات الاتصال لخادم Milvus 2.x الهدف. target.milvus2x.endpoint
عنوان خادم Milvus الهدف. target.milvus2x.username
اسم المستخدم لخادم Milvus 2.x. هذه المعلمة مطلوبة إذا تم تمكين مصادقة المستخدم لخادم Milvus الخاص بك. لمزيد من المعلومات، راجع تمكين المصادقة. target.milvus2x.password
كلمة المرور لخادم Milvus 2.x. هذه المعلمة مطلوبة إذا تم تمكين مصادقة المستخدم لخادم Milvus الخاص بك. لمزيد من المعلومات، راجع تمكين المصادقة.
بدء مهمة الترحيل
ابدأ مهمة الترحيل باستخدام الأمر التالي. استبدل {YourConfigFilePath}
بالدليل المحلي حيث يوجد ملف التكوين migration.yaml
.
./milvus-migration start --config=/{YourConfigFilePath}/migration.yaml
فيما يلي مثال على إخراج سجل الترحيل الناجح:
[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!"]
تحقق من النتيجة
بمجرد تنفيذ مهمة الترحيل، يمكنك إجراء مكالمات واجهة برمجة التطبيقات أو استخدام Attu لعرض عدد الكيانات التي تم ترحيلها. لمزيد من المعلومات، راجع Attu و get_collection_stats().
مرجع تعيين الحقل
راجع الجدول أدناه لفهم كيفية تعيين أنواع الحقول في فهارس Elasticsearch إلى أنواع الحقول في مجموعات Milvus.
لمزيد من المعلومات حول أنواع البيانات المدعومة في Milvus، راجع أنواع البيانات المدعومة.
نوع حقل Elasticsearch | نوع حقل ملفوس | الوصف |
---|---|---|
متجه_كثيف | المتجه العائم | تظل أبعاد المتجه دون تغيير أثناء الترحيل. |
كلمة رئيسية | فارشار | تعيين الحد الأقصى للطول (من 1 إلى 65,535 65,535). يمكن أن تؤدي السلاسل التي تتجاوز الحد الأقصى إلى حدوث أخطاء في الترحيل. |
نص | فارشار | تعيين الحد الأقصى للطول (من 1 إلى 65,535 65,535). يمكن أن تؤدي السلاسل التي تتجاوز الحد إلى حدوث أخطاء في الترحيل. |
طويل | Int64 | - |
عدد صحيح | Int32 | - |
مزدوج | مضاعف | - |
عائم | عائم | - |
منطقية | بولي | - |
كائن | JSON | - |