بيانات الفهرس من Azure Table Storage
في هذه المقالة، تعرف على كيفية تكوين مفهرس يستورد المحتوى من Azure Table Storage ويجعله قابلا للبحث في Azure Cognitive Search. المدخلات إلى المفهرس هي كياناتك، في جدول واحد. الإخراج هو فهرس بحث يحتوي على محتوى قابل للبحث وبيانات وصفية مخزنة في حقول فردية.
تكمل هذه المقالة إنشاء مفهرس يحتوي على معلومات خاصة بالفهرسة من Azure Table Storage. يستخدم واجهات برمجة تطبيقات REST لإظهار سير عمل مكون من ثلاثة أجزاء مشترك بين جميع المفهرسين: إنشاء مصدر بيانات وإنشاء فهرس وإنشاء مفهرس. يحدث استخراج البيانات عند إرسال طلب إنشاء مفهرس.
المتطلبات الأساسية
الجداول التي تحتوي على نص. إذا كان لديك بيانات ثنائية، يمكنك تضمين إثراء الذكاء الاصطناعي لتحليل الصور.
أذونات القراءة للوصول إلى تخزين Azure. تتضمن سلسلة اتصال "الوصول الكامل" مفتاحا يتيح الوصول إلى المحتوى، ولكن إذا كنت تستخدم أدوار Azure، فتأكد من أن الهوية المدارة لخدمة البحث لديها أذونات البيانات والقارئ .
عميل REST، مثل Postman أو Visual Studio Code مع ملحق Azure Cognitive Search لإرسال مكالمات REST التي تنشئ مصدر البيانات والفهرس والمفهرس.
تعريف مصدر البيانات
يحدد تعريف مصدر البيانات البيانات المراد فهرستها وبيانات اعتمادها وسياساتها لتحديد التغييرات في البيانات. يتم تعريف مصدر البيانات كمورد مستقل بحيث يمكن استخدامه من قبل مفهرسين متعددين.
إنشاء مصدر بيانات أو تحديثه لتعيين تعريفه:
{ "name" : "hotel-tables", "type" : "azuretable", "credentials" : { "connectionString" : "DefaultEndpointsProtocol=https;AccountName=<account name>;AccountKey=<account key>;" }, "container" : { "name" : "tblHotels", "query" : "PartitionKey eq '123'" } }اضبط "النوع" على
"azuretable"(مطلوب).قم بتعيين "بيانات الاعتماد" إلى سلسلة اتصال Azure Storage. يصف القسم التالي التنسيقات المدعومة.
اضبط "الحاوية" على اسم الجدول.
اختياريا، قم بتعيين "استعلام" على عامل تصفية على PartitionKey. هذه هي أفضل الممارسات التي تحسن الأداء. إذا تم تحديد "استعلام" بأي طريقة أخرى، فسيقوم المفهرس بتنفيذ فحص كامل للجدول، مما يؤدي إلى ضعف الأداء إذا كانت الجداول كبيرة.
يمكن أن يتضمن تعريف مصدر البيانات أيضا نهج الحذف الناعم، إذا كنت تريد أن يقوم المفهرس بحذف مستند بحث عند وضع علامة على المستند المصدر للحذف.
بيانات الاعتماد المدعومة وسلاسل الاتصال
يمكن للمفهرسين الاتصال بجدول باستخدام الاتصالات التالية.
| سلسلة اتصال حساب تخزين الوصول الكامل |
|---|
{ "connectionString" : "DefaultEndpointsProtocol=https;AccountName=<your storage account>;AccountKey=<your account key>;" } |
| يمكنك الحصول على سلسلة الاتصال من صفحة حساب التخزين في مدخل Azure عن طريق تحديد مفاتيح Access في جزء التنقل الأيمن. تأكد من تحديد سلسلة اتصال كاملة وليس مجرد مفتاح. |
| سلسلة اتصال الهوية المدارة |
|---|
{ "connectionString" : "ResourceId=/subscriptions/<your subscription ID>/resourceGroups/<your resource group name>/providers/Microsoft.Storage/storageAccounts/<your storage account name>/;" } |
| لا تتطلب سلسلة الاتصال هذه مفتاح حساب، ولكن يجب أن تكون قد قمت مسبقا بتكوين خدمة بحث للاتصال باستخدام هوية مدارة. |
| سلسلة اتصال توقيع الوصول المشترك لحساب التخزين** (SAS) |
|---|
{ "connectionString" : "BlobEndpoint=https://<your account>.blob.core.windows.net/;SharedAccessSignature=?sv=2016-05-31&sig=<the signature>&spr=https&se=<the validity end time>&srt=co&ss=b&sp=rl;" } |
| يجب أن يكون لدى SAS القائمة وأذونات القراءة على الجداول والكيانات. |
| توقيع الوصول المشترك للحاوية |
|---|
{ "connectionString" : "ContainerSharedAccessUri=https://<your storage account>.blob.core.windows.net/<container name>?sv=2016-05-31&sr=c&sig=<the signature>&se=<the validity end time>&sp=rl;" } |
| يجب أن يكون لدى SAS القائمة وأذونات القراءة على الحاوية. لمزيد من المعلومات، راجع استخدام توقيعات الوصول المشترك. |
ملاحظة
إذا كنت تستخدم بيانات اعتماد SAS، فستحتاج إلى تحديث بيانات اعتماد مصدر البيانات بشكل دوري بتوقيعات متجددة لمنع انتهاء صلاحيتها. إذا انتهت صلاحية بيانات اعتماد SAS، فسوف يفشل المفهرس مع ظهور رسالة خطأ مشابهة ل "بيانات الاعتماد المتوفرة في سلسلة الاتصال غير صالحة أو انتهت صلاحيتها".
قسم لتحسين الأداء
بشكل افتراضي، يستخدم Azure Cognitive Search عامل تصفية الاستعلام الداخلي التالي لتعقب الكيانات المصدر التي تم تحديثها منذ آخر تشغيل: Timestamp >= HighWaterMarkValue. نظرا لأن جداول Azure لا تحتوي على فهرس ثانوي في Timestamp الحقل، يتطلب هذا النوع من الاستعلام فحصا كاملا للجدول وبالتالي يكون بطيئا بالنسبة للجداول الكبيرة.
لتجنب الفحص الكامل، يمكنك استخدام أقسام الجدول لتضييق نطاق كل مهمة مفهرس.
إذا كان من الممكن تقسيم بياناتك بشكل طبيعي إلى عدة نطاقات أقسام، فقم بإنشاء مصدر بيانات ومفهرس مطابق لكل نطاق قسم. يتعين على كل مفهرس الآن معالجة نطاق قسم معين فقط ، مما يؤدي إلى أداء أفضل للاستعلام. إذا كانت البيانات التي تحتاج إلى فهرسة تحتوي على عدد صغير من الأقسام الثابتة ، فالأفضل من ذلك: يقوم كل مفهرس بفحص القسم فقط.
على سبيل المثال، لإنشاء مصدر بيانات لمعالجة نطاق أقسام باستخدام مفاتيح من
000إلى100، استخدم استعلاما كالتالي:"container" : { "name" : "my-table", "query" : "PartitionKey ge '000' and PartitionKey lt '100' " }إذا تم تقسيم بياناتك حسب الوقت (على سبيل المثال، إذا قمت بإنشاء قسم جديد كل يوم أو أسبوع)، فاتبع النهج التالي:
في تعريف مصدر البيانات، حدد استعلاما مشابها للمثال التالي:
(PartitionKey ge <TimeStamp>) and (other filters).راقب تقدم المفهرس باستخدام واجهة برمجة تطبيقات الحصول على حالة المفهرس، وقم بتحديث
<TimeStamp>حالة الاستعلام بشكل دوري استنادا إلى أحدث قيمة ناجحة للعلامة المائية العالية.باستخدام هذا النهج، إذا كنت بحاجة إلى تشغيل إعادة فهرسة كاملة، فأنت بحاجة إلى إعادة تعيين استعلام مصدر البيانات بالإضافة إلى إعادة تعيين المفهرس.
إضافة حقول بحث إلى فهرس
في فهرس البحث، أضف حقولا لقبول المحتوى وبيانات التعريف الخاصة بكيانات الجدول.
إنشاء فهرس أو تحديثه لتحديد حقول البحث التي ستخزن المحتوى من الكيانات:
POST https://[service name].search.windows.net/indexes?api-version=2020-06-30 { "name" : "my-search-index", "fields": [ { "name": "ID", "type": "Edm.String", "key": true, "searchable": false }, { "name": "SomeColumnInMyTable", "type": "Edm.String", "searchable": true } ] }قم بإنشاء حقل مفتاح مستند ("المفتاح": true)، ولكن اسمح للمفهرس بتعبئته تلقائيا. لا تقم بتعريف تعيين حقل إلى حقل سلسلة فريد بديل في الجدول.
يقوم مفهرس الجدول بتعبئة حقل المفتاح بمفاتيح الأقسام والصفوف المتسلسلة من الجدول. على سبيل المثال ، إذا كان PartitionKey الخاص بالصف و
PK1RowKey ، فإنRK1قيمة المفتاح هيPK1RK1. إذا كان مفتاح القسم فارغا، استخدام مفتاح الصف فقط.إنشاء حقول إضافية تتوافق مع حقول الكيان. على سبيل المثال، إذا كان الكيان يشبه المثال التالي، فيجب أن يحتوي فهرس البحث على حقول لاسم الفندق والوصف والفئة.
يؤدي استخدام نفس الأسماء وأنواع البيانات المتوافقة إلى تقليل الحاجة إلى تعيينات الحقول.
تكوين مفهرس الجدول وتشغيله
بمجرد إنشاء الفهرس ومصدر البيانات، تصبح جاهزا لإنشاء المفهرس. يحدد تكوين المفهرس المدخلات والمعلمات والخصائص التي تتحكم في سلوكيات وقت التشغيل.
إنشاء مفهرس أو تحديثه عن طريق إعطائه اسما والرجوع إلى مصدر البيانات والفهرس المستهدف:
POST https://[service name].search.windows.net/indexers?api-version=2020-06-30 { "name" : "table-indexer", "dataSourceName" : "my-table-datasource", "targetIndexName" : "my-search-index", "parameters": { "batchSize": null, "maxFailedItems": null, "maxFailedItemsPerBatch": null, "base64EncodeKeys": null, "configuration:" { } }, "schedule" : { }, "fieldMappings" : [ ] }حدد تعيينات الحقول إذا كانت هناك اختلافات في اسم الحقل أو نوعه، أو إذا كنت بحاجة إلى إصدارات متعددة من حقل مصدر في فهرس البحث.
راجع إنشاء مفهرس لمزيد من المعلومات حول الخصائص الأخرى.
يتم تشغيل المفهرس تلقائيا عند إنشائه. يمكنك منع ذلك عن طريق تعيين "معطل" إلى true. للتحكم في تنفيذ المفهرس، قم بتشغيل مفهرس عند الطلب أو وضعه على جدول زمني.
التحقق من حالة المفهرس
لمراقبة حالة المفهرس ومحفوظات التنفيذ، أرسل طلب الحصول على حالة المفهرس :
GET https://myservice.search.windows.net/indexers/myindexer/status?api-version=2020-06-30
Content-Type: application/json
api-key: [admin key]
تتضمن الاستجابة الحالة وعدد العناصر التي تمت معالجتها. يجب أن تبدو مشابهة للمثال التالي:
{
"status":"running",
"lastResult": {
"status":"success",
"errorMessage":null,
"startTime":"2022-02-21T00:23:24.957Z",
"endTime":"2022-02-21T00:36:47.752Z",
"errors":[],
"itemsProcessed":1599501,
"itemsFailed":0,
"initialTrackingState":null,
"finalTrackingState":null
},
"executionHistory":
[
{
"status":"success",
"errorMessage":null,
"startTime":"2022-02-21T00:23:24.957Z",
"endTime":"2022-02-21T00:36:47.752Z",
"errors":[],
"itemsProcessed":1599501,
"itemsFailed":0,
"initialTrackingState":null,
"finalTrackingState":null
},
... earlier history items
]
}
يحتوي سجل التنفيذ على ما يصل إلى 50 من أحدث عمليات التنفيذ المكتملة، والتي يتم فرزها بترتيب زمني عكسي بحيث يأتي أحدث تنفيذ أولا.
الخطوات التالية
يمكنك الآن تشغيل المفهرس أو مراقبة الحالة أو جدولة تنفيذ المفهرس. تنطبق المقالات التالية على المفهرسين الذين يسحبون المحتوى من Azure Storage: