مشاركة عبر


المكون الإضافي لاستعلام Azure Digital Twins ل Azure Data Explorer

تتناول هذه المقالة المكون الإضافي لاستعلام Azure Digital Twins ل Azure Data Explorer.

يتيح لك المكون الإضافي 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 على فهم السلوك التشغيلي لأجزاء مختلفة من الحل الخاص بك.

استيعاب بيانات Azure Digital Twins في Azure Data Explorer

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

استيعاب مع محفوظات البيانات

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

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

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

تعيين البيانات عبر 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 لتحديد التوائم ذات الاهتمام ثم ضمها مقابل بيانات السلسلة الزمنية في الجدول الهدف.

مثال لمخطط بسيط

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

TimeStamp SourceTimeStamp TwinId ModelId Name Value RelationshipTarget RelationshipID
2021-02-01 17:24 2021-02-01 17:11 ConfRoomTempSensor dtmi:com:example:TemperatureSensor;1 درجة الحرارة 301.0

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

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

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

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

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

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

بمجرد أن تكون بيانات Azure Digital Twins في Azure Data Explorer، يمكنك استخدام المكون الإضافي للاستعلام عنه.

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

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

هام

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

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

  • * حرف البدل في 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
    

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

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

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