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

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

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

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

VChannel PChannel and StreamingNode قناة VChannel PCChannel وعقدة البث PCNode

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

Channels 1 القنوات 1

ثم يتم إرسال البيانات المكتوبة لجزء واحد(قناة vchannel) إلى عقدة التدفق المقابلة لـ pchannel.

write flow تدفق الكتابة

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

وفي الوقت نفسه، تقوم StreamingNode أيضًا بتقطيع إدخالات WAL الملتزم بها بشكل غير متزامن إلى مقاطع منفصلة. هناك نوعان من المقاطع:

  • المقطع المتزايد: أي بيانات لم يتم إدخالها مسبقًا في مخزن الكائنات.
  • المقطعالمختوم: جميع البيانات التي تم حفظها في مخزن الكائن، وتكون بيانات المقطع المختوم غير قابلة للتغيير.

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

بناء الفهرس

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

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

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

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

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

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

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

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

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

تنقسم المجموعة في ميلفوس إلى قطاعات متعددة؛ تقوم عقدة التدفق بتحميل قطاعات متزايدة وتحتفظ بالبيانات في الوقت الفعلي، بينما تقوم عقد الاستعلام بتحميل قطاعات مغلقة.

عند وصول طلب استعلام/بحث، يقوم الوكيل ببث الطلب إلى جميع عقد الدفق المسؤولة عن الأجزاء ذات الصلة للبحث المتزامن.

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

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

أخيرًا، يجمع الوكيل جميع نتائج الأجزاء ويدمجها في النتيجة النهائية ويعيدها إلى العميل.

Handoff التسليم

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

ما التالي

جرب Managed Milvus مجاناً

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

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

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