فهرسة مجموعات البيانات الكبيرة في البحث المعرفي في Azure

يدعم البحث المعرفي Azure نهجين أساسيين لاستيراد البيانات إلى فهرس بحث: دفع بياناتك إلى الفهرس برمجياً، أو الإشارة إلى مفهرس بحث معرفي Azure في مصدر بيانات معتمد لسحب البيانات.

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

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

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

للحصول على نموذج تعليمي ونموذج تعليمات برمجية ل C # ، راجع البرنامج التعليمي: تحسين سرعات الفهرسة.

فهرسة مجموعات البيانات الكبيرة باستخدام واجهة برمجة التطبيقات "الدفع"

عند دفع كميات كبيرة من البيانات إلى فهرس باستخدام واجهة برمجة تطبيقات إضافة مستندات REST أو طريقة IndexDocuments (Azure SDK for .NET)، فإن تجميع المستندات وإدارة مؤشرات الترابط هما تقنيتان تعملان على تحسين سرعة الفهرسة.

مجموعة مستندات متعددة لكل طلب

واحدة من أبسط الآليات لفهرسة مجموعة بيانات أكبر هي تقديم مستندات أو سجلات متعددة في طلب واحد. طالما أن الحمولة الصافية بأكملها أقل من 16 ميغابايت، يمكن للطلب التعامل مع ما يصل إلى 1000 مستند في عملية تحميل مجمعة. تنطبق هذه الحدود سواء كنت تستخدم واجهة برمجة تطبيقات REST لإضافة مستندات أو أسلوب IndexDocuments في .NET SDK. بالنسبة لأي من واجهة برمجة التطبيقات ، يمكنك حزم مستندات 1000 في نص كل طلب.

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

  • مخطط الفهرس الخاص بك
  • حجم بياناتك

نظرا لأن حجم الدفعة الأمثل يعتمد على الفهرس والبيانات الخاصة بك، فإن أفضل طريقة هي اختبار أحجام الدفعات المختلفة لتحديد أي منها ينتج عنه أسرع سرعات فهرسة للسيناريو الخاص بك. البرنامج التعليمي: تحسين الفهرسة باستخدام واجهة برمجة تطبيقات الدفع يوفر عينة من التعليمات البرمجية لاختبار أحجام الدفعات باستخدام .NET SDK.

إضافة سلاسل رسائل واستراتيجية إعادة المحاولة

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

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

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

    • 503 الخدمة غير متوفرة - يعني هذا الخطأ أن النظام تحت تحميل كثيف ولا يمكن معالجة طلبك في هذا الوقت.

    • 207 متعددة الحالة - يعني هذا الخطأ نجاح بعض المستندات، ولكن فشل واحد على الأقل.

  3. للتعامل مع حالات الفشل ، يجب إعادة محاولة الطلبات باستخدام استراتيجية إعادة محاولة التراجع الأسية.

يقوم Azure .NET SDK تلقائيا بإعادة محاولة 503s والطلبات الفاشلة الأخرى، ولكنك ستحتاج إلى تنفيذ المنطق الخاص بك لإعادة محاولة 207s. يمكن أيضاً استخدام أدوات مفتوحة المصدر مثل بولي لتنفيذ استراتيجية إعادة المحاولة.

فهرسة مجموعات البيانات الكبيرة باستخدام المفهرسين وواجهات برمجة التطبيقات "السحب"

تتمتع المفهرسات بقدرات مضمنة مفيدة بشكل خاص لاستيعاب مجموعات البيانات الأكبر:

  • تسمح لك جداول المفهرس بتقسيم الفهرسة على فترات منتظمة حتى تتمكن من توزيعها بمرور الوقت.

  • يمكن استئناف الفهرسة المجدولة عند آخر نقطة توقف معروفة. إذا لم يتم مسح مصدر بيانات ضوئيا بالكامل خلال نافذة مدتها 24 ساعة، فسيستأنف المفهرس الفهرسة في اليوم الثاني في أي مكان توقف فيه.

  • يتيح تقسيم البيانات إلى مصادر بيانات فردية أصغر معالجة متوازية. يمكنك تقسيم بيانات المصدر إلى مكونات أصغر، مثل إلى حاويات متعددة في Azure Blob Storage، وإنشاء مصدر بيانات لكل قسم، ثم تشغيل مفهرسات متعددة بالتوازي.

التحقق من حجم دفعة المفهرس

كما هو الحال مع واجهة برمجة تطبيقات الدفع، تسمح لك المفهرسات بتكوين عدد العناصر لكل دفعة. بالنسبة إلى المفهرسين استنادا إلى واجهة برمجة تطبيقات Create Indexer REST، يمكنك تعيين الوسيطة batchSize لتخصيص هذا الإعداد لمطابقة خصائص بياناتك بشكل أفضل.

أحجام الدفعات الافتراضية خاصة بمصدر البيانات. يحتوي Azure SQL Database و Azure Cosmos DB على حجم دفعة افتراضي يبلغ 1000. في المقابل، تحدد فهرسة Azure Blob حجم الدفعة عند 10 مستندات تقديرا لمتوسط حجم المستند الأكبر.

جدولة المفهرسات للعمليات طويلة الأمد

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

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

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

تشغيل المفهرسات بالتوازي

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

تأكد من أن لديك سعة كافية. يمكن لوحدة بحث واحدة في خدمتك تشغيل مفهرس واحد في أي وقت. لا يكون إنشاء مفهرسات متعددة مفيدا إلا إذا كان بإمكانها التشغيل بالتوازي.

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

  1. سجل الدخول إلى مدخل Azure وتحقق من عدد وحدات البحث التي تستخدمها خدمة البحث. حدد الإعدادات>مقياس لعرض الرقم في أعلى الصفحة. عدد المفهرسات التي سيتم تشغيلها بالتوازي يساوي تقريبا عدد وحدات البحث.

  2. تقسيم بيانات المصدر بين حاويات متعددة أو مجلدات ظاهرية متعددة داخل نفس الحاوية.

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

  4. حدد نفس فهرس البحث المستهدف في كل مفهرس.

  5. جدولة المفهرسات.

  6. راجع حالة المفهرس ومحفوظات التنفيذ للتأكيد.

هناك بعض المخاطر المرتبطة بالفهرسة الموازية. أولا ، تذكر أن الفهرسة لا تعمل في الخلفية ، مما يزيد من احتمال خنق الاستعلامات أو إسقاطها.

ثانيا، لا يقوم Azure Cognitive Search بتأمين الفهرس للحصول على التحديثات. تتم إدارة عمليات الكتابة المتزامنة، مما يستدعي إعادة المحاولة إذا لم تنجح كتابة معينة في المحاولة الأولى، ولكن قد تلاحظ زيادة في حالات فشل الفهرسة.

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

راجع أيضًا