التخزين 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 قصيرة الأجل الخاصة به للوصول إلى الحاوية المصدر، ويقوم بتحديث الرموز قبل انتهاء صلاحيتها. |
| تخزين الكتل في Azure | parquet، و 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
يتم إنشاء مخرجات الدالة للكيانات الموجودة بشكل غير متزامن من خلال الضغط في الخلفية. ولا يشير نجاح تحديث المخطط إلى اكتمال عملية ملء الفجوات لكل كيان موجود.
الوثائق ذات الصلة
- حقل النص
- تعديل مخطط المجموعة
- إنشاء مجموعة خارجية
- نظرة عامة على خيارات نشر Milvus
- ترقية Milvus المستقل باستخدام مخطط Helm
- ترقية مجموعة Milvus باستخدام مخطط Helm
- التكوينات المتعلقة بـ common
- التكوينات المتعلقة بـ dataCoord
- لماذا أنشأنا Loon: محرك تخزين لبيانات الذكاء الاصطناعي التي لا تتوقف عن التغير — خلفية هندسية حول دوافع التصميم وراء Storage V3.