التخزين V3Compatible with Milvus 3.0.x

نظرة عامة

غالبًا ما تتطور مجموعات بيانات الذكاء الاصطناعي بعد إنشاء المجموعة. مع تغير النماذج وسير العمل، قد تحتاج الفرق إلى إضافة نص، أو إنشاء حقول متجهة جديدة للكيانات الموجودة، أو استخدام البيانات المخزنة خارج Milvus. يتطلب دعم سير العمل هذا نموذج تخزين يمكنه التطور مع مجموعة البيانات.

يوفر التخزين V3 هذا النموذج في Milvus 3.0. ويستخدم تخطيط تخزين مُصنف حسب الإصدار لدمج البيانات المضافة أو المعاد كتابتها بمرور الوقت، بينما تستمر التطبيقات في الوصول إلى المجموعات من خلال نفس واجهات برمجة تطبيقات Milvus.

يتم تعطيل التخزين V3 افتراضيًا. بعد تفعيل « common.storage.useLoonFFI »، تستخدم عمليات الكتابة الجديدة ومخرجات الضغط التخزين V3. تظل البيانات الموجودة في تخطيطها الحالي حتى تتم إعادة كتابة البيانات المؤهلة بواسطة عملية الضغط في الخلفية. يمكن لـ Milvus قراءة كلا التخطيطين خلال هذه المرحلة الانتقالية. قم بتمكين التخزين V3 لاستخدام الميزات التي تعتمد عليه، وليس كتحسين عام للأداء.

تنسيقات البيانات في التخزين V3

يستخدم التخزين V3 قوائم البيانات لوصف بيانات المجموعة بشكل مستقل عن تنسيق البيانات الأساسي. وهذا يتيح لطبقة التخزين نفسها العمل مع كل من البيانات التي يديرها Milvus والبيانات التي تظل في نظام خارجي.

تنسيقات ملفات المجموعات المُدارة

بالنسبة للمجموعات المُدارة، يختار « dataNode.storage.format » تنسيق الملف لبيانات «Storage V3» الجديدة. يدعم هذا الإعداد القيم التالية:

التنسيقالوصف
parquetتنسيق الملفات العمودي الافتراضي والمعتمد على نطاق واسع، والذي يتميز بتوافق واسع مع النظام البيئي وأدوات ناضجة. ينظم Parquet البيانات في مجموعات صفوف ويدعم الترميز والضغط لكل عمود، مما يسمح لـ Milvus بقراءة الأعمدة المطلوبة فقط ومعالجة عمليات المسح التسلسلي الكبيرة بكفاءة.
vortexتنسيق ملف عمودي اختياري من الجيل التالي مبني على ترميزات قابلة للتوسيع والتركيب وإحصائيات غنية. في Milvus، يدعم Vortex إسقاط الأعمدة وقراءات النطاق وقراءات الوصول العشوائي. يمكن لهذه القدرات تقليل عمليات قراءة البيانات غير الضرورية لأحمال العمل المناسبة.

يؤثر تغيير dataNode.storage.format على عمليات الكتابة الجديدة في Storage V3. تحتفظ الملفات الموجودة بتنسيقها الحالي حتى يعيد الضغط كتابة المقاطع المقابلة. يجب أن تحتفظ معظم عمليات النشر بتنسيق parquet الافتراضي ما لم تُظهر معايير الأداء التمثيلية أن vortex يناسب بياناتها وأنماط الوصول بشكل أفضل.

المجموعات الخارجية وتنسيقات المصادر المدعومة

تسمح المجموعات الخارجية لـ Milvus باستخدام البيانات المخزنة في ملفات أو جداول خارجية. يدعم التخزين V3 تنسيقات المصادر الخارجية التالية:

التنسيقالفئةالمصدر المتوقعدعم Storage V3
parquetتنسيق الملفدليل أو بادئة تخزين كائنات تحتوي على ملفات Parquet.يكتشف الملفات، ويقرأ بياناتها الوصفية ومجموعات الصفوف، ويسجلها في بيان Storage V3.
vortexتنسيق الملفدليل أو بادئة تخزين كائنات تحتوي على ملفات Vortex.يكتشف الملفات ويستخدم تخطيط Vortex وإحصاءاته من أجل الإسقاط وقراءات النطاق وقراءات الوصول العشوائي.
lance-tableتنسيق الجدولدليل مجموعة بيانات Lance.يقرأ بيانات تعريف مجموعة البيانات ويقوم بتعيين أجزائها في بيان Storage V3.
iceberg-tableتنسيق الجدولملف JSON لبيانات تعريف Iceberg ومعرف اللقطة.يحلل اللقطة المحددة، ويخطط ملفات بياناتها، ويحافظ على بيانات التعريف الخاصة بحذف المواقع. لا يتم دعم عمليات الحذف بالتساوي ويجب تحويلها إلى عمليات حذف المواقع قبل تحديث المجموعة الخارجية.

المصادر الخارجية مخصصة للقراءة فقط. يقوم Storage V3 بإنشاء وتحديث ملف البيانات الخاص به دون تعديل أو نسخ البيانات المصدرية. يمكن لـ Milvus بعد ذلك إنشاء فهارس وإجراء عمليات بحث واستعلامات على البيانات من خلال مجموعة خارجية.

التخزين السحابي والمصادقة عبر الحسابات

يصف الجدول التالي فقط كيفية وصول المجموعة الخارجية إلى البيانات المصدر المخزنة في حساب سحابي آخر. ولا يصف التخزين الكائني المستخدم للبيانات التي تديرها Milvus.

التخزين السحابيالتنسيقات الخارجية المدعومةالمصادقة عبر الحسابات للمجموعات الخارجية
Amazon S3جميع التنسيقات الأربعة المذكورة أعلاه.حدد معرّف دور IAM (ARN) المملوك للعميل. يستخدم Storage V3 خدمة AWS STS AssumeRole للحصول على بيانات اعتماد مؤقتة وتجديدها حسب الحاجة. يمكنك أيضًا تقديم معرّف خارجي عندما تتطلب سياسة الثقة الخاصة بالدور ذلك.
Google Cloud Storage (GCS)جميع التنسيقات الأربعة المذكورة أعلاه.حدد حساب الخدمة المستهدف. يقوم Storage V3 بانتحال صفة حساب الخدمة هذا، ويستخدم رموز وصول OAuth قصيرة الأجل الخاصة به للوصول إلى الحاوية المصدر، ويقوم بتحديث الرموز قبل انتهاء صلاحيتها.
تخزين الكتل في Azureparquet، و vortex ، و lance-table. لا يتم دعم iceberg-table.يطلب Milvus بيانات اعتماد SAS قصيرة الأجل من خلال خدمة gRPC الخاصة بـ milvus-tools. يستخدم Storage V3 بيانات اعتماد SAS للوصول إلى الحاوية المصدر، ويتم تجديد بيانات الاعتماد قبل انتهاء صلاحيتها.
Azure Data Lake Storage Gen2 (ADLS Gen2)جميع التنسيقات الأربعة المذكورة أعلاه.يطلب Milvus بيانات اعتماد SAS قصيرة الأجل من خلال خدمة gRPC الخاصة milvus-tools. يستخدم Storage V3 بيانات اعتماد SAS للوصول إلى الحاوية المصدر، ويتم تجديد بيانات الاعتماد قبل انتهاء صلاحيتها.
خدمة تخزين الكائنات من Alibaba Cloud (OSS)جميع التنسيقات الأربعة المذكورة أعلاه.حدد ARN لدور RAM المملوك للعميل. يتولى Storage V3 الدور باستخدام هوية حمل العمل الخاصة بوقت التشغيل أو دور RAM الخاص بـ ECS، ثم يستخدم بيانات اعتماد مؤقتة للوصول إلى الحاوية المصدر.

للحصول على إرشادات تكوين المجموعة الخارجية واستخدامها، راجع إنشاء مجموعة خارجية.

الميزات التي تتطلب Storage V3

الميزةالوصفالتكوين المطلوب
تنسيق ملف Vortexكتابة بيانات المجموعة المُدارة الجديدة بتنسيق ملف Vortex.
TEXT الحقلقم بتخزين النصوص المصدرية الطويلة، مثل المقاطع أو المستندات أو التذاكر أو السجلات، دون تعيين طول أقصى ثابت في مخطط المجموعة.common.storage.useLoonFFI=true
الحقول المتجهة التي تم إنشاؤها بواسطة الدالةأضف دالة BM25 أو MinHash إلى مجموعة موجودة حتى يقوم Milvus بإنشاء حقل متجه جديد من حقل " VARCHAR " الموجود. يقوم Milvus بملء القيم التي تم إنشاؤها للكيانات الموجودة بشكل غير متزامن من خلال عملية الضغط في الخلفية.
المجموعات الخارجيةاستعلام البيانات المخزنة خارج Milvus دون نسخها إلى مجموعة مُدارة. قم بتحديث المجموعة الخارجية عند تغيير البيانات المصدرية. لعرض حقول مصدرية إضافية، راجع «تعديل مخطط المجموعة الخارجية».common.storage.useLoonFFI=true

قبل تمكين Storage V3

بمجرد أن يقوم Milvus بكتابة البيانات في Storage V3، لا يُدعم الرجوع إلى إصدار Milvus لا يمكنه قراءة Storage V3. ولا يؤدي تعطيل Storage V3 لاحقًا إلى تحويل جميع بيانات Storage V3 الموجودة على الفور أو استعادة التوافق مع الإصدار الأقدم.

قبل تمكين Storage V3، ضع في اعتبارك سلوك البيانات التالي:

  • نظرًا لأن ميزة « dataCoord.compaction.storageVersion.enabled » (التضغط التلقائي) ممكّنة افتراضيًا، يمكن للبيانات الحالية المؤهلة الانتقال إلى «Storage V3» تدريجيًا من خلال عملية التضغط في الخلفية.
  • يؤدي تعطيل Storage V3 إلى تغيير إصدار التخزين المستهدف لعمليات الكتابة المستقبلية ومخرجات الضغط المؤهلة. ولا يؤدي ذلك إلى تحويل جميع بيانات Storage V3 الحالية بشكل متزامن أو جعل الرجوع إلى إصدار أقدم آمنًا.

تمكين التخزين V3

اضبط " common.storage.useLoonFFI " على " true " في تكوين Milvus الخاص بك:

common:
  storage:
    useLoonFFI: true

يعامل Milvus هذا الإعداد على أنه قابل للتحديث. قم بتطبيق التغيير من خلال سير عمل تحديث التكوين الذي يدعمه النشر الخاص بك. لا يضمن تحرير ملف التكوين الثابت وحده أن النشر قيد التشغيل قد تلقى القيمة الجديدة.

إذا كنت تخطط لإضافة دالة (Function) وحقل متجه تم إنشاؤه إلى مجموعة موجودة، فقم أيضًا بتمكين إعدادَي الضغط المطلوبين لملء الفجوات في البيانات الموجودة:

dataCoord:
  compaction:
    bumpSchemaVersion:
      enabled: true
    storageVersion:
      enabled: true

يتم إنشاء مخرجات الدالة للكيانات الموجودة بشكل غير متزامن من خلال الضغط في الخلفية. ولا يشير نجاح تحديث المخطط إلى اكتمال عملية ملء الفجوات لكل كيان موجود.