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

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

معالجة البيانات

تقدم هذه المقالة وصفًا تفصيليًا لتنفيذ عملية إدخال البيانات وبناء الفهرس والاستعلام عن البيانات في ميلفوس.

إدراج البيانات

يمكنك تحديد عدد من الأجزاء لكل مجموعة في ملفوس، كل جزء يتوافق مع قناة افتراضية(vchannel). كما يوضح الشكل التالي، يعيّن ميلفوس لكل قناة افتراضية في وسيط السجل قناة فعلية(pchannel). يتم توجيه أي طلب إدراج/حذف وارد إلى أجزاء بناءً على قيمة تجزئة المفتاح الأساسي.

يتم نقل التحقق من صحة طلبات DML إلى الوكيل لأن ميلفوس ليس لديه معاملات معقدة. سيطلب الوكيل طابعًا زمنيًا لكل طلب إدراج/حذف من TSO (أوراكل الطابع الزمني)، وهي وحدة التوقيت التي تتشارك مع المنسق الجذر. يتم استخدام الطوابع الزمنية لتحديد تسلسل طلبات البيانات التي تتم معالجتها مع استبدال الطابع الزمني الأقدم بالأحدث. يقوم الوكيل باسترداد المعلومات على دفعات من منسق البيانات بما في ذلك قطاعات الكيانات والمفاتيح الأساسية لزيادة الإنتاجية الإجمالية وتجنب إثقال كاهل العقدة المركزية.

Channels 1 القنوات 1

تتم كتابة كل من عمليات DML (لغة معالجة البيانات) وعمليات DDL (لغة تعريف البيانات) في تسلسل السجل، ولكن يتم تعيين قناة واحدة فقط لعمليات DDL بسبب انخفاض تكرار حدوثها.

Channels 2 القنوات 2

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

Write log sequence تسلسل كتابة السجل

يغلف الرسم البياني أعلاه أربعة مكونات متضمنة في عملية كتابة تسلسل السجل: الوكيل، وسيط السجل، عقدة البيانات، وعقدة البيانات، وتخزين الكائنات. تنطوي العملية على أربع مهام: التحقق من صحة طلبات DML، ونشر-اشتراك تسلسل السجل، والتحويل من سجل التدفق إلى لقطات السجل، واستمرار لقطات السجل. يتم فصل المهام الأربع عن بعضها البعض للتأكد من أن كل مهمة يتم التعامل معها من قبل نوع العقدة المقابلة لها. يتم جعل العقد من نفس النوع متساوية ويمكن تحجيمها بشكل مرن ومستقل لاستيعاب أحمال البيانات المختلفة، والبيانات المتدفقة الضخمة والمتقلبة للغاية على وجه الخصوص.

بناء الفهرس

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

Index building بناء الفهرس

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

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

على عكس الفهرسة للبيانات القياسية، يجب أن يستفيد بناء فهرس المتجهات استفادة كاملة من تسريع SIMD (تعليمات واحدة، بيانات متعددة). لدى Milvus دعم فطري لمجموعات تعليمات SIMD، على سبيل المثال، SSE وAVX2 وAVX512. ونظراً لطبيعة "الزوبعة" وطبيعة بناء الفهرس المتجه التي تستهلك الكثير من الموارد، تصبح المرونة مهمة بشكل حاسم لميلفوس من الناحية الاقتصادية. ستعمل إصدارات Milvus المستقبلية على إجراء المزيد من الاستكشافات في الحوسبة غير المتجانسة والحوسبة بدون خادم لخفض التكاليف ذات الصلة.

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

استعلام البيانات

يشير الاستعلام عن البيانات إلى عملية البحث في مجموعة محددة عن عدد k من المتجهات الأقرب إلى متجه مستهدف أو عن جميع المتجهات ضمن نطاق مسافة محددة إلى المتجه. يتم إرجاع المتجهات مع المفتاح الأساسي والحقول المقابلة لها.

Data query استعلام البيانات

تنقسم المجموعة في ميلفوس إلى عدة قطاعات، وتقوم عقد الاستعلام بتحميل الفهارس حسب القطاع. عند وصول طلب بحث، يتم بثه إلى جميع عقد الاستعلام لإجراء بحث متزامن. ثم تقوم كل عقدة بعد ذلك بتشذيب المقاطع المحلية والبحث عن المتجهات التي تفي بالمعايير، ثم تقلل نتائج البحث وتعيدها.

تكون عقد الاستعلام مستقلة عن بعضها البعض في استعلام البيانات. كل عقدة مسؤولة عن مهمتين فقط: تحميل أو تحرير المقاطع باتباع التعليمات من منسق الاستعلام؛ وإجراء بحث داخل المقاطع المحلية. والوكيل مسؤول عن تقليل نتائج البحث من كل عقدة استعلام وإرجاع النتائج النهائية إلى العميل.

Handoff المناولة

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

ما التالي

جرب Managed Milvus مجاناً

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

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

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