Azure Digital Twins query plugin for Azure Data Explorer

توضح هذه المقالة حول المكون الإضافي لاستعلام Azure Digital Twin ل Azure Data Explorer، وكيفية استخدام بيانات Azure Data Explorer IoT مع Azure Digital Twins، وكيفية تعيين البيانات عبر Azure Data Explorer وAzure Digital Twins، والمزيد.

يتيح لك المكون الإضافي Azure Digital Twins ل Azure Data Explorer تشغيل استعلامات Azure Data Explorer التي تصل إلى البيانات وتجمعها عبر الرسم البياني ل Azure Digital Twins وقواعد بيانات السلسلة الزمنية Azure Data Explorer . استخدم المكون الإضافي لوضع بيانات السلاسل الزمنية المتباينة في سياقها من خلال التفكير عبر التوائم الرقمية وعلاقاتها للحصول على رؤى حول سلوك البيئات النموذجية.

على سبيل المثال ، باستخدام هذا المكون الإضافي ، يمكنك كتابة استعلام Kusto التي:

  1. يحدد التوائم الرقمية ذات الأهمية عبر المكون الإضافي لاستعلام Azure Digital Twins،
  2. ينضم إلى هذين التوائم مقابل السلسلة الزمنية المعنية في Azure Data Explorer، ثم ثم
  3. يقوم بإجراء تحليلات سلسلة زمنية متقدمة على هؤلاء التوائم.

يمكن أن يساعدك الجمع بين البيانات من رسم بياني مزدوج في Azure Digital Twins وبيانات السلاسل الزمنية في Azure Data Explorer على فهم السلوك التشغيلي لأجزاء مختلفة من الحل الخاص بك.

استخدام المكون الإضافي

يمكنك استدعاء المكون الإضافي في استعلام Kusto باستخدام الأمر التالي. هناك نوعان من العناصر النائبة، و <Azure-Digital-Twins-query>، وهما سلسلتان تمثلان نقطة نهاية مثيل Azure Digital Twins واستعلام Azure Digital Twins، <Azure-Digital-Twins-endpoint> على التوالي.

evaluate azure_digital_twins_query_request(<Azure-Digital-Twins-endpoint>, <Azure-Digital-Twins-query>) 

يعمل المكون الإضافي عن طريق استدعاء واجهة برمجة تطبيقات استعلام Azure Digital Twins، وتكون بنية لغة الاستعلام هي نفسها عند استخدام واجهة برمجة التطبيقات، مع استثناءين:

  • حرف البدل في SELECT العبارة * غير مدعوم. بدلا من ذلك، يجب أن تستخدم استعلامات Azure Digital Twin التي يتم تنفيذها باستخدام المكون الإضافي أسماء مستعارة في العبارة SELECT .

    على سبيل المثال، ضع في اعتبارك استعلام Azure Digital Twins أدناه الذي يتم تنفيذه باستخدام واجهة برمجة التطبيقات:

    SELECT * FROM DIGITALTWINS
    

    لتنفيذ هذا الاستعلام عند استخدام المكون الإضافي ، يجب إعادة كتابته على النحو التالي:

    SELECT T FROM DIGITALTWINS T
    
  • قد لا تبدأ أسماء الأعمدة التي يتم إرجاعها بواسطة المكون الإضافي ب $. سيساعد استخدام الأسماء المستعارة في العبارة SELECT أيضا على تجنب هذا السيناريو.

    على سبيل المثال، ضع في اعتبارك استعلام Azure Digital Twins أدناه الذي يتم تنفيذه باستخدام واجهة برمجة التطبيقات:

    SELECT T.$dtId, T.Temperature FROM DIGITALTWINS T
    

    لتنفيذ هذا الاستعلام عند استخدام المكون الإضافي ، يجب إعادة كتابته على النحو التالي:

    SELECT T.$dtId as tid, T.Temperature FROM DIGITALTWINS T
    

هام

يجب منح مستخدم المكون الإضافي دور قارئ بيانات Azure Digital Twins أو دور مالك بيانات Azure Digital Twins، حيث يتم استخدام الرمز المميز Azure AD الخاص بالمستخدم للمصادقة. يمكن العثور على معلومات حول كيفية تعيين هذا الدور في الأمان لحلول Azure Digital Twins.

لمزيد من المعلومات حول استخدام المكون الإضافي، راجع وثائق Kusto الخاصة بالمكون الإضافي azure_digital_twins_query_request.

للاطلاع على أمثلة الاستعلامات وإكمال الإرشادات التفصيلية باستخدام نموذج البيانات، راجع المكون الإضافي لاستعلام Azure Digital Twins ل Azure Data Explorer: نماذج الاستعلامات والإرشادات التفصيلية في GitHub.

Ingesting Azure Digital Twins data into Azure Data Explorer

قبل الاستعلام باستخدام المكون الإضافي، ستحتاج إلى استيعاب بيانات Azure Digital Twins في Azure Data Explorer. هناك طريقتان رئيسيتان يمكنك من خلالهما القيام بذلك: من خلال ميزة سجل البيانات (المعاينة) ، أو من خلال الابتلاع المباشر. تصف المقاطع التالية هذه الخيارات بمزيد من التفصيل.

الانغماس في سجل البيانات

تتمثل أبسط طريقة لاستيعاب بيانات إنترنت الأشياء من Azure Digital Twins إلى Azure Data Explorer في استخدام ميزة محفوظات البيانات (المعاينة ). تتيح لك هذه الميزة إعداد اتصال بين مثيل Azure Digital Twins ومجموعة Azure Data Explorer، ويتم تأريخ تحديثات الخصائص التوأم تلقائيا إلى المجموعة. هذا خيار جيد إذا كنت تستخدم بيانات القياس عن بعد لجلب توائم الرقمية إلى الحياة. لمزيد من المعلومات حول هذه الميزة، راجع محفوظات البيانات (مع مستكشف بيانات Azure) (معاينة).

الابتلاع المباشر

يمكنك أيضا اختيار استيعاب بيانات إنترنت الأشياء مباشرة في مجموعة مستكشف بيانات Azure من IoT Hub أو من مصادر أخرى. بعد ذلك، سيتم استخدام الرسم البياني ل Azure Digital Twins لوضع بيانات السلاسل الزمنية في سياقها باستخدام استعلامات Azure Digital Twins/Azure Data Explorer المشتركة. يعد هذا الخيار خيارا جيدا لأحمال عمل الابتلاع المباشر. لمزيد من المعلومات حول هذه العملية، تابع بقية هذا القسم.

تعيين البيانات عبر Azure Data Explorer وAzure Digital Twins

إذا كنت تستوعب بيانات السلاسل الزمنية مباشرة في Azure Data Explorer، فقد تحتاج إلى تحويل بيانات السلاسل الزمنية الخام هذه إلى مخطط مناسب لاستعلامات Azure Digital Twins/Azure Data Explorer المشتركة.

يسمح لك نهج التحديث في Azure Data Explorer بتحويل البيانات وإلحاقها تلقائيا بجدول هدف كلما تم إدراج بيانات جديدة في جدول مصدر.

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

على سبيل المثال، لنفترض أنك أنشأت الجدول التالي للاحتفاظ ببيانات السلسلة الزمنية الخام المتدفقة إلى مثيل Azure Data Explorer.

.create-merge table rawData (Timestamp:datetime, someId:string, Value:string, ValueType:string)  

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

.create-merge table mappingTable (someId:string, twinId:string, otherMetadata:string) 

ثم قم بإنشاء جدول هدف للاحتفاظ ببيانات السلاسل الزمنية المخصبة.

.create-merge table timeseriesSilver (twinId:string, Timestamp:datetime, someId:string, otherMetadata:string, ValueNumeric:real, ValueString:string)  

بعد ذلك، قم بإنشاء دالة Update_rawData لإثراء البيانات الخام من خلال ضمها إلى جدول التعيين. سيؤدي القيام بذلك إلى إضافة معرف التوأم إلى الجدول المستهدف الناتج.

.create-or-alter function with (folder = "Update", skipvalidation = "true") Update_rawData() { 
rawData 
| join kind=leftouter mappingTable on someId 
| project 
    Timestamp, ValueNumeric = toreal(Value), ValueString = Value, ... 
} 

أخيرا ، قم بإنشاء نهج تحديث لاستدعاء الوظيفة وتحديث الجدول الهدف.

.alter table timeseriesSilver policy update 
@'[{"IsEnabled": true, "Source": "rawData", "Query": "Update_rawData()", "IsTransactional": false, "PropagateIngestionProperties": false}]' 

بمجرد إنشاء الجدول الهدف، يمكنك استخدام المكون الإضافي Azure Digital Twins لتحديد التوائم ذات الاهتمام ثم الانضمام إليهم مقابل بيانات السلاسل الزمنية في الجدول الهدف.

مثال على المخطط

في ما يلي مثال على مخطط يمكن استخدامه لتمثيل البيانات المشتركة.

timestamp twinId modelId name value relationshipTarget relationshipID
2021-02-01 17:24 كونفروم تيمباستسور dtmi:com:example:TemperatureSensor;1 درجة الحرارة 301.0

يتم تخزين خصائص التوأم الرقمي كأزواج من القيم الرئيسية (name, value). name ويتم value تخزينها كأنواع بيانات ديناميكية.

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

تمثيل الخصائص ذات الحقول المتعددة

قد ترغب في تخزين خاصية في مخططك باستخدام حقول متعددة. يتم تمثيل هذه الخصائص عن طريق تخزين كائن JSON كما هو الحال value في المخطط.

على سبيل المثال ، إذا كنت تريد تمثيل خاصية تحتوي على ثلاثة حقول لللفة والملعب والتثاؤب ، فسيبدو كائن القيمة كما يلي: {"roll": 20, "pitch": 15, "yaw": 45}.

الخطوات التالية