🚀 جرب Zilliz Cloud، الـ Milvus المدارة بالكامل، مجاناً — تجربة أداء أسرع بـ 10 أضعاف! جرب الآن>>

milvus-logo
LFAI
الصفحة الرئيسية

من Elasticsearch

يوفر هذا الدليل عملية شاملة وخطوة بخطوة لترحيل البيانات من Elasticsearch إلى Milvus 2.x. باتباع هذا الدليل، ستتمكن من نقل بياناتك بكفاءة، والاستفادة من ميزات Milvus 2.x المتقدمة والأداء المحسّن.

المتطلبات الأساسية

تكوين ملف الترحيل

احفظ مثال ملف تهيئة الترحيل بصيغة 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-

جرب Managed Milvus مجاناً

Zilliz Cloud خالي من المتاعب، ويعمل بواسطة Milvus ويعمل بسرعة 10 أضعاف.

ابدأ
التعليقات

هل كانت هذه الصفحة مفيدة؟