تصدير بيانات IoT إلى الوجهات السحابية باستخدام تصدير البيانات (قديم)
تم الآن إهمال ميزة تصدير البيانات القديمة (الكلاسيكية) ويجب أن تخطط للترحيل إلى ميزة تصدير البيانات الجديدة. يفتقر تصدير البيانات القديمة إلى قدرات مهمة مثل توفر أنواع مختلفة من البيانات والتصفية وتحويل الرسائل. راجع الجدول التالي للمقارنة بين تصدير البيانات القديمة وتصدير البيانات الجديدة:
| الإمكانية | تصدير البيانات القديمة (كلاسيكي) | تصدير بيانات جديدة |
|---|---|---|
| أنواع البيانات المتوفرة | بيانات تتبع الاستخدام والأجهزة وقوالب الأجهزة | بيانات تتبع الاستخدام، تغييرات الخصائص، تغييرات اتصال الجهاز، تغييرات دورة حياة الجهاز، تغييرات دورة حياة قالب الجهاز |
| التصفية | بلا | يعتمد على نوع البيانات المصدرة. لبيانات تتبع الاستخدام، والتصفية حسب بيانات تتبع الاستخدام، وخصائص الرسالة، وقيم الخصائص |
| عمليات الإثراء | بلا | الإثراء بسلسلة مخصصة أو قيمة خاصية على الجهاز |
| التحويلات | بلا | تحويل رسالة التصدير إلى الشكل المطلوب |
| الوجهات | Azure Event Hubs، ناقل خدمة Azure قوائم الانتظار والموضوعات، تخزين Azure Blob | كما هو الحال بالنسبة لتصدير البيانات القديمة بالإضافة إلى Azure Data Explorer والإخطارات على الويب |
| حدود ملحوظة | خمس عمليات تصدير لكل تطبيق، وجهة واحدة لكل تصدير | 10 اتصالات وجهة تصدير لكل تطبيق |
اعتبارات الترحيل
لترحيل تصدير بيانات قديم (كلاسيكي) إلى تصدير بيانات جديدة، يجب عليك:
- استخدم اختبار تطبيق IoT Central وأنشئ تصدير بيانات جديدا بنفس نوع البيانات والوجهة. يمكنك اختياريا استخدام وظائف الإثراء وتحويل البيانات لجعل شكل رسالة التصدير مشابها لشكل الرسالة من تصدير البيانات القديمة.
- عندما تختبر تصدير البيانات الجديد وتكون جاهزا للانتقال إلى الإنتاج، تأكد من إزالة أي مهام سير عمل أو تبعيات على عمليات تصدير البيانات القديمة النشطة بأمان.
- أنشئ عمليات تصدير البيانات الجديدة في بيئات الإنتاج وتحقق من أن رسائل التصدير تفي بمتطلباتك. يمكنك بعد ذلك إضافة أي مهام سير عمل أو تبعيات إلى تصدير البيانات الجديدة.
- بعد ترحيل جميع عمليات تصدير البيانات القديمة بنجاح إلى عمليات تصدير بيانات جديدة، يمكنك حذف عمليات تصدير البيانات القديمة.
اعتبارات ترحيل نوع البيانات
يختلف تنسيق البيانات الافتراضي باختلاف أنواع البيانات بين تصدير البيانات القديمة وتصدير البيانات الجديدة. لمزيد من المعلومات، راجع تنسيقات البيانات لتصدير البيانات الجديدةوتنسيقات البيانات لتصدير البيانات القديمة. عند الترحيل إلى تصدير البيانات الجديد، يجب إزالة أي تبعيات على تنسيق البيانات لتصدير البيانات القديمة. ومع ذلك، إذا كان لديك تبعيات أو مهام سير عمل قوية مرتبطة بتصدير البيانات القديمة، فيمكن أن تساعد الاعتبارات التالية في معالجة أي تحديات للترحيل.
بيانات تتبع الاستخدام: إذا اخترت مطابقة تنسيق تصدير البيانات القديم لبيانات تتبع الاستخدام في تصدير البيانات الجديد، يمكنك استخدام وظيفة التحويل وإنشاء استعلام تحويل مشابه للمثال التالي:
.telemetry | map({ key: .name, value: .value }) | from_entries
الأجهزة: إذا كنت تستخدم حاليا عمليات تصدير البيانات القديمة مع نوع بيانات الأجهزة، فيمكنك استخدام كل من تغييرات الخصائص وأنواع بيانات أحداث دورة حياة الجهاز في التصدير الجديد لتصدير نفس البيانات. يمكنك تحقيق بنية بيانات قابلة للمقارنة باستخدام استعلام التحويل التالي على كلا النوعين من البيانات:
approved: .device.approved,
provisioned: .device.provisioned,
simulated: .device.simulated,
cloudProperties: .device.cloudProperties | map({ key: .name, value: .value }) | from_entries,
displayName: .device.name,
id: .device.id,
instanceOf: .device.templateId,
properties: .device.properties.reported | map({ key: .name, value: .value }) | from_entries
قوالب الجهاز: إذا كنت تستخدم حاليا عمليات تصدير البيانات القديمة مع نوع بيانات قوالب الجهاز، فيمكنك الحصول على نفس البيانات باستخدام قوالب الجهاز - الحصول على استدعاء واجهة برمجة التطبيقات.
اعتبارات ترحيل الوجهة
في تصدير البيانات الجديد، يمكنك إنشاء وجهة وإعادة استخدامها عبر عمليات تصدير بيانات مختلفة. عند الترحيل من عمليات تصدير البيانات القديمة، يجب عليك إنشاء وجهات في عمليات تصدير البيانات الجديدة التي تخزن المعلومات على وجهات تصدير البيانات القديمة الحالية.
ملاحظة
لا يدعم تصدير البيانات الجديد تصدير رسائل JSON غير الصالحة.
تصدير بيانات IoT إلى الوجهات السحابية (القديمة)
ملاحظة
توضح هذه المقالة ميزات تصدير البيانات القديمة في IoT Central
تمت جدولة عمليات تصدير البيانات القديمة (الكلاسيكية) ليتم إيقافها. ترحيل أي عمليات تصدير بيانات قديمة إلى عمليات تصدير جديدة
للحصول على معلومات حول أحدث ميزات تصدير البيانات، راجع تصدير بيانات IoT إلى الوجهات السحابية باستخدام Blob Storage.
توضح هذه المقالة كيفية استخدام ميزة تصدير البيانات في Azure IoT Central. تتيح لك هذه الميزة تصدير بياناتك باستمرار إلى Azure Event Hubs أو ناقل خدمة Azure أو مثيلات تخزين Azure Blob. يستخدم تصدير البيانات تنسيق JSON ويمكن أن يتضمن بيانات تتبع الاستخدام ومعلومات الجهاز ومعلومات قالب الجهاز. استخدم البيانات المصدرة من أجل:
- تحليلات وتحليلات المسار الدافئ. يتضمن هذا الخيار تشغيل قواعد مخصصة في Azure Stream Analytics، أو تشغيل مهام سير عمل مخصصة في Azure Logic Apps، أو تمريرها من خلال Azure Functions ليتم تحويلها.
- تحليلات المسار البارد مثل نماذج التدريب في Azure التعلم الآلي أو تحليل الاتجاه طويل الأجل في Microsoft Power BI.
ملاحظة
عند تشغيل تصدير البيانات، تحصل فقط على البيانات من تلك اللحظة فصاعدا. حاليا، لا يمكن استرداد البيانات لوقت تم فيه إيقاف تصدير البيانات. للاحتفاظ بمزيد من البيانات التاريخية، قم بتشغيل تصدير البيانات في وقت مبكر.
المتطلبات الأساسية
يجب أن تكون مسؤولا في تطبيق IoT Central، أو أن يكون لديك أذونات تصدير البيانات.
إعداد وجهة التصدير
يجب أن تكون وجهة التصدير موجودة قبل تكوين تصدير البيانات.
إنشاء مساحة اسم مراكز الأحداث
إذا لم يكن لديك مساحة اسم "مراكز الأحداث" موجودة للتصدير إليها، فاتبع الخطوات التالية:
إنشاء مساحة اسم جديدة لمراكز الأحداث في مدخل Microsoft Azure. يمكنك معرفة المزيد في مستندات Azure Event Hubs.
اختر اشتراكاً. يمكنك تصدير البيانات إلى اشتراكات أخرى غير موجودة في نفس الاشتراك مثل تطبيق IoT Central. يمكنك الاتصال باستخدام سلسلة اتصال في هذه الحالة.
إنشاء مركز أحداث في مساحة اسم Event Hubs. انتقل إلى مساحة الاسم، وحدد + Event Hub في الأعلى لإنشاء مثيل مركز أحداث.
إنشاء مساحة اسم ناقل خدمة Microsoft Azure
إذا لم يكن لديك مساحة اسم ناقل خدمة Microsoft Azure موجودة للتصدير إليها، فاتبع الخطوات التالية:
إنشاء مساحة اسم ناقل خدمة Microsoft Azure جديدة في مدخل Microsoft Azure. يمكنك معرفة المزيد في مستندات ناقل خدمة Azure.
اختر اشتراكاً. يمكنك تصدير البيانات إلى اشتراكات أخرى غير موجودة في نفس الاشتراك مثل تطبيق IoT Central. يمكنك الاتصال باستخدام سلسلة اتصال في هذه الحالة.
لإنشاء قائمة انتظار أو موضوع للتصدير إليه، انتقل إلى مساحة اسم ناقل خدمة Microsoft Azure، وحدد + Queue أو + Topic.
عند اختيار ناقل خدمة Microsoft Azure كوجهة تصدير، يجب ألا يتم تمكين جلسات العمل أو الكشف عن التكرارات في قوائم الانتظار والموضوعات. إذا تم تمكين أي من هذين الخيارين، فلن تصل بعض الرسائل إلى قائمة الانتظار أو الموضوع.
إنشاء حساب تخزين
إذا لم يكن لديك حساب تخزين Azure موجود للتصدير إليه، فاتبع الخطوات التالية:
إنشاء حساب تخزين جديد في مدخل Microsoft Azure. يمكنك معرفة المزيد حول إنشاء حسابات تخزين Azure Blob جديدة أو حسابات تخزين Azure Data Lake Storage v2. يمكن لتصدير البيانات كتابة البيانات إلى حسابات التخزين التي تدعم الكائنات الثنائية كبيرة الحجم للكتلة فقط. تعرض القائمة التالية أنواع حسابات التخزين المتوافقة المعروفة:
مستوى الأداء نوع الحساب قياسي الغرض العام V2 قياسي الإصدار 1 للأغراض العامة قياسي Blob Storage متميز حظر تخزين كائن ثنائي كبير الحجم إنشاء حاوية في حساب التخزين الخاص بك. انتقل إلى حساب التخزين الخاص بك. ضمن Blob Service، حدد Browse Blobs. حدد + Container في الأعلى لإنشاء حاوية جديدة.
إعداد تصدير البيانات
الآن بعد أن أصبح لديك وجهة لتصدير البيانات إليها، اتبع هذه الخطوات لإعداد تصدير البيانات.
سجل الدخول إلى تطبيق IoT Central.
في الجزء الأيمن، حدد تصدير البيانات.
تلميح
إذا لم تتمكن من رؤية تصدير البيانات في الجزء الأيمن، فلن يكون لديك أذونات لتكوين تصدير البيانات في تطبيقك. تحدث إلى مسؤول لإعداد تصدير البيانات.
حدد الزر + New . اختر أحد Azure Blob Storage أو Azure Event Hubsأو ناقل خدمة Azure Queue أو ناقل خدمة Azure Topic كوجهة لتصديرك. الحد الأقصى لعدد الصادرات لكل تطبيق هو خمسة.
أدخل اسما للتصدير. في مربع القائمة المنسدلة، حدد مساحة الاسم أو أدخل سلسلة اتصال.
- ترى فقط حسابات التخزين ومساحات أسماء مراكز الأحداث ومساحات أسماء ناقل خدمة Microsoft Azure في نفس الاشتراك مثل تطبيق IoT Central الخاص بك. إذا كنت تريد التصدير إلى وجهة خارج هذا الاشتراك، فاختر إدخال سلسلة اتصال وشاهد الخطوة 6.
- بالنسبة للتطبيقات التي تم إنشاؤها باستخدام خطة التسعير المجانية، فإن الطريقة الوحيدة لتكوين تصدير البيانات هي من خلال سلسلة اتصال. لا تحتوي التطبيقات على خطة التسعير المجانية على اشتراك Azure مقترن.

اختر مركز أحداث أو قائمة انتظار أو موضوع أو حاوية من مربع القائمة المنسدلة.
(اختياري) إذا اخترت إدخال سلسلة اتصال، يظهر مربع جديد للصق سلسلة الاتصال. للحصول على سلسلة الاتصال الخاصة بك:
- مراكز الأحداث أو ناقل خدمة Microsoft Azure، انتقل إلى مساحة الاسم في مدخل Microsoft Azure:
- لاستخدام سلسلة اتصال لمساحة الاسم بأكملها:
- ضمن الإعدادات، حدد نهج الوصول المشترك
- أنشئ مفتاحا جديدا أو اختر مفتاحا موجودا يحتوي على أذونات الإرسال .
- نسخ سلسلة الاتصال الأساسية أو الثانوية
- لاستخدام سلسلة الاتصال لمثيل مركز أحداث معين أو قائمة انتظار أو موضوع ناقل الخدمة، انتقل إلى مراكز أحداث الكيانات > أو قوائم انتظار الكيانات > أو مواضيع الكيانات>. اختر مثيلا معينا، واتبع الخطوات نفسها أعلاه للحصول على سلسلة اتصال.
- لاستخدام سلسلة اتصال لمساحة الاسم بأكملها:
- حساب التخزين، انتقل إلى حساب التخزين في مدخل Microsoft Azure:
- يتم دعم سلاسل الاتصال لحساب التخزين بأكمله فقط. سلاسل الاتصال التي تم تحديد نطاقها إلى حاوية واحدة غير مدعومة.
- ضمن الإعدادات، حدد مفاتيح الوصول
- نسخ سلسلة اتصال key1 أو سلسلة اتصال key2
- يتم دعم سلاسل الاتصال لحساب التخزين بأكمله فقط. سلاسل الاتصال التي تم تحديد نطاقها إلى حاوية واحدة غير مدعومة.
الصق في سلسلة الاتصال. اكتب اسم الحاوية الحساسة لحالة الأحرف أو المثيل.
- مراكز الأحداث أو ناقل خدمة Microsoft Azure، انتقل إلى مساحة الاسم في مدخل Microsoft Azure:
ضمن البيانات المراد تصديرها، اختر أنواع البيانات المراد تصديرها عن طريق تعيين النوع إلى تشغيل.
لتشغيل تصدير البيانات، تأكد من أن مفتاح التبديل ممكن قيد التشغيل. حدد حفظ.
بعد بضع دقائق، تظهر بياناتك في الوجهة التي اخترتها.
تصدير المحتويات والتنسيق
تحتوي بيانات تتبع الاستخدام المصدرة على كامل الرسالة التي أرسلتها أجهزتك إلى IoT Central، وليس فقط قيم بيانات تتبع الاستخدام نفسها. تحتوي بيانات الأجهزة المصدرة على تغييرات في خصائص وبيانات التعريف لجميع الأجهزة، وتحتوي قوالب الأجهزة المصدرة على تغييرات على جميع قوالب الأجهزة.
بالنسبة لمراكز الأحداث ونقل خدمة Microsoft Azure، يتم تصدير البيانات في الوقت الفعلي تقريبا. البيانات في الخاصية body وهي بتنسيق JSON. انظر أدناه للحصول على أمثلة.
بالنسبة لتخزين Blob، يتم تصدير البيانات مرة واحدة في الدقيقة، مع كل ملف يحتوي على دفعة من التغييرات منذ آخر ملف تم تصديره. يتم وضع البيانات المصدرة في ثلاثة مجلدات بتنسيق JSON. المسارات الافتراضية في حساب التخزين الخاص بك هي:
- بيانات تتبع الاستخدام: {container}/{app-id}/telemetry/{YYYY}/{MM}/{dd}/{hh}/{mm}/{filename}
- الأجهزة: {container}/{app-id}/devices/{YYYY}/{MM}/{dd}/{hh}/{mm}/{filename}
- قوالب الأجهزة: {container}/{app-id}/deviceTemplates/{YYYY}/{MM}/{dd}/{hh}/{mm}/{filename}
لاستعراض الملفات المصدرة في مدخل Microsoft Azure، انتقل إلى الملف وحدد علامة التبويب Edit blob .
بيانات تتبع الاستخدام
بالنسبة إلى Event Hubs وService Bus، يصدر IoT Central رسالة جديدة بسرعة بعد أن يتلقى الرسالة من جهاز. تحتوي كل رسالة تم تصديرها على الرسالة الكاملة التي أرسلها الجهاز في خاصية النص الأساسي بتنسيق JSON.
بالنسبة لتخزين Blob، يتم تجميع الرسائل وتصديرها مرة واحدة في الدقيقة. تستخدم الملفات المصدرة نفس تنسيق ملفات الرسائل التي تم تصديرها بواسطة توجيه رسالة IoT Hub إلى تخزين blob.
ملاحظة
بالنسبة لتخزين Blob، تأكد من أن أجهزتك ترسل رسائل تحتوي contentType: application/JSON على و contentEncoding:utf-8 (أو utf-16، utf-32). راجع وثائق مركز IoT للحصول على مثال.
يتم تمثيل الجهاز الذي أرسل بيانات تتبع الاستخدام بواسطة معرف الجهاز (راجع الأقسام التالية). للحصول على أسماء الأجهزة، قم بتصدير بيانات الجهاز وربط كل رسالة باستخدام connectionDeviceId الذي يطابق معرف الجهاز لرسالة الجهاز.
يوضح المثال التالي رسالة تم تلقيها من مركز أحداث أو قائمة انتظار أو موضوع ناقل خدمة Microsoft Azure:
{
"temp":81.129693132351775,
"humid":59.488071477541247,
"EventProcessedUtcTime":"2020-04-07T09:41:15.2877981Z",
"PartitionId":0,
"EventEnqueuedUtcTime":"2020-04-07T09:38:32.7380000Z"
}
لا تتضمن هذه الرسالة معرف الجهاز لجهاز الإرسال.
لاسترداد معرف الجهاز من بيانات الرسالة في استعلام Azure Stream Analytics، استخدم الدالة GetMetadataPropertyValue . على سبيل المثال، راجع الاستعلام في توسيع Azure IoT Central مع قواعد مخصصة باستخدام Stream Analytics وAzure Functions وSendGrid.
لاسترداد معرف الجهاز في مساحة عمل Azure Databricks أو Apache Spark، استخدم systemProperties. على سبيل المثال، راجع مساحة عمل Databricks في توسيع Azure IoT Central مع التحليلات المخصصة باستخدام Azure Databricks.
يوضح المثال التالي سجلا تم تصديره إلى تخزين كائن ثنائي كبير الحجم:
{
"EnqueuedTimeUtc":"2019-09-26T17:46:09.8870000Z",
"Properties":{
},
"SystemProperties":{
"connectionDeviceId":"<deviceid>",
"connectionAuthMethod":"{\"scope\":\"device\",\"type\":\"sas\",\"issuer\":\"iothub\",\"acceptingIpFilterRule\":null}",
"connectionDeviceGenerationId":"637051167384630591",
"contentType":"application/json",
"contentEncoding":"utf-8",
"enqueuedTime":"2019-09-26T17:46:09.8870000Z"
},
"Body":{
"temp":49.91322758395974,
"humid":49.61214852573155,
"pm25":25.87332214661367
}
}
الأجهزة
يمثل كل رسالة أو سجل في لقطة تغييرا واحدا أو أكثر على الجهاز وخصائص الجهاز والسحابة منذ آخر رسالة تم تصديرها. تتضمن الرسالة ما يلي:
idللجهاز في IoT CentraldisplayNameللجهاز- معرف قالب الجهاز في
instanceOf simulatedعلامة، صحيح إذا كان الجهاز جهاز محاكاةprovisionedعلامة، صحيح إذا تم توفير الجهازapprovedعلامة ، صحيح إذا تمت الموافقة على الجهاز لإرسال البيانات- قيم Property
propertiesبما في ذلك قيم خصائص الجهاز والسحابة
لا يتم تصدير الأجهزة المحذوفة. حاليا، لا توجد مؤشرات في الرسائل المصدرة للأجهزة المحذوفة.
بالنسبة إلى Event Hubs وService Bus، يرسل IoT Central رسائل تحتوي على بيانات الجهاز إلى مركز الأحداث أو قائمة انتظار ناقل الخدمة أو الموضوع في الوقت الفعلي تقريبا.
بالنسبة لتخزين Blob، يتم تصدير لقطة جديدة تحتوي على جميع التغييرات منذ آخر نسخة مكتوبة مرة واحدة في الدقيقة.
تعرض رسالة المثال التالية معلومات حول الأجهزة وبيانات الخصائص في مركز أحداث أو قائمة انتظار أو موضوع ناقل خدمة Microsoft Azure:
{
"body":{
"id": "<device Id>",
"etag": "<etag>",
"displayName": "Sensor 1",
"instanceOf": "<device template Id>",
"simulated": false,
"provisioned": true,
"approved": true,
"properties": {
"sensorComponent": {
"setTemp": "30",
"fwVersion": "2.0.1",
"status": { "first": "first", "second": "second" },
"$metadata": {
"setTemp": {
"desiredValue": "30",
"desiredVersion": 3,
"desiredTimestamp": "2020-02-01T17:15:08.9284049Z",
"ackVersion": 3
},
"fwVersion": { "ackVersion": 3 },
"status": {
"desiredValue": {
"first": "first",
"second": "second"
},
"desiredVersion": 2,
"desiredTimestamp": "2020-02-01T17:15:08.9284049Z",
"ackVersion": 2
}
},
}
},
"installDate": { "installDate": "2020-02-01" }
},
"annotations":{
"iotcentral-message-source":"devices",
"x-opt-partition-key":"<partitionKey>",
"x-opt-sequence-number":39740,
"x-opt-offset":"<offset>",
"x-opt-enqueued-time":1539274959654
},
"partitionKey":"<partitionKey>",
"sequenceNumber":39740,
"enqueuedTimeUtc":"2020-02-01T18:14:49.3820326Z",
"offset":"<offset>"
}
هذه اللقطة هي رسالة مثال تعرض الأجهزة وبيانات الخصائص في تخزين Blob. تحتوي الملفات المصدرة على سطر واحد لكل سجل.
{
"id": "<device Id>",
"etag": "<etag>",
"displayName": "Sensor 1",
"instanceOf": "<device template Id>",
"simulated": false,
"provisioned": true,
"approved": true,
"properties": {
"sensorComponent": {
"setTemp": "30",
"fwVersion": "2.0.1",
"status": { "first": "first", "second": "second" },
"$metadata": {
"setTemp": {
"desiredValue": "30",
"desiredVersion": 3,
"desiredTimestamp": "2020-02-01T17:15:08.9284049Z",
"ackVersion": 3
},
"fwVersion": { "ackVersion": 3 },
"status": {
"desiredValue": {
"first": "first",
"second": "second"
},
"desiredVersion": 2,
"desiredTimestamp": "2020-02-01T17:15:08.9284049Z",
"ackVersion": 2
}
},
}
},
"installDate": { "installDate": "2020-02-01" }
}
قوالب الجهاز
يمثل كل سجل رسالة أو لقطة تغييرا واحدا أو أكثر في قالب جهاز منشور منذ آخر رسالة تم تصديرها. تتضمن المعلومات المرسلة في كل رسالة أو سجل ما يلي:
idمن قالب الجهاز الذي يطابقinstanceOfتدفق الأجهزة أعلاهdisplayNameمن قالب الجهاز- الجهاز
capabilityModelبما في ذلك تعريفات بيانات تتبع الاستخدام والخصائص والأوامر الخاصة بهinterfaces cloudPropertiesالتعاريف- التجاوزات والقيم الأولية، مضمنة مع
capabilityModel
لا يتم تصدير قوالب الأجهزة المحذوفة. حاليا، لا توجد مؤشرات في الرسائل المصدرة لقوالب الأجهزة المحذوفة.
بالنسبة إلى Event Hubs وService Bus، يرسل IoT Central رسائل تحتوي على بيانات قالب الجهاز إلى مركز الأحداث أو قائمة انتظار ناقل الخدمة أو الموضوع في الوقت الفعلي تقريبا.
بالنسبة لتخزين Blob، يتم تصدير لقطة جديدة تحتوي على جميع التغييرات منذ آخر نسخة مكتوبة مرة واحدة في الدقيقة.
يوضح هذا المثال رسالة حول بيانات قوالب الأجهزة في مركز الأحداث أو قائمة انتظار ناقل الخدمة أو الموضوع:
{
"body":{
"id": "<device template id>",
"etag": "<etag>",
"types": ["DeviceModel"],
"displayName": "Sensor template",
"capabilityModel": {
"@id": "<capability model id>",
"@type": ["CapabilityModel"],
"contents": [],
"implements": [
{
"@id": "<component Id>",
"@type": ["InterfaceInstance"],
"name": "sensorComponent",
"schema": {
"@id": "<interface Id>",
"@type": ["Interface"],
"displayName": "Sensor interface",
"contents": [
{
"@id": "<id>",
"@type": ["Telemetry"],
"displayName": "Humidity",
"name": "humidity",
"schema": "double"
},
{
"@id": "<id>",
"@type": ["Telemetry", "SemanticType/Event"],
"displayName": "Error event",
"name": "error",
"schema": "integer"
},
{
"@id": "<id>",
"@type": ["Property"],
"displayName": "Set temperature",
"name": "setTemp",
"writable": true,
"schema": "integer",
"unit": "Units/Temperature/fahrenheit",
"initialValue": "30"
},
{
"@id": "<id>",
"@type": ["Property"],
"displayName": "Firmware version read only",
"name": "fwversion",
"schema": "string"
},
{
"@id": "<id>",
"@type": ["Property"],
"displayName": "Display status",
"name": "status",
"writable": true,
"schema": {
"@id": "urn:testInterface:status:obj:ka8iw8wka:1",
"@type": ["Object"]
}
},
{
"@id": "<id>",
"@type": ["Command"],
"request": {
"@id": "<id>",
"@type": ["SchemaField"],
"displayName": "Configuration",
"name": "config",
"schema": "string"
},
"response": {
"@id": "<id>",
"@type": ["SchemaField"],
"displayName": "Response",
"name": "response",
"schema": "string"
},
"displayName": "Configure sensor",
"name": "sensorConfig"
}
]
}
}
],
"displayName": "Sensor capability model"
},
"solutionModel": {
"@id": "<id>",
"@type": ["SolutionModel"],
"cloudProperties": [
{
"@id": "<id>",
"@type": ["CloudProperty"],
"displayName": "Install date",
"name": "installDate",
"schema": "dateTime",
"valueDetail": {
"@id": "<id>",
"@type": ["ValueDetail/DateTimeValueDetail"]
}
}
]
}
},
"annotations":{
"iotcentral-message-source":"deviceTemplates",
"x-opt-partition-key":"<partitionKey>",
"x-opt-sequence-number":25315,
"x-opt-offset":"<offset>",
"x-opt-enqueued-time":1539274985085
},
"partitionKey":"<partitionKey>",
"sequenceNumber":25315,
"enqueuedTimeUtc":"2019-10-02T16:23:05.085Z",
"offset":"<offset>"
}
}
تعرض لقطة المثال هذه رسالة تحتوي على بيانات الجهاز والخصائص في تخزين Blob. تحتوي الملفات المصدرة على سطر واحد لكل سجل.
{
"id": "<device template id>",
"etag": "<etag>",
"types": ["DeviceModel"],
"displayName": "Sensor template",
"capabilityModel": {
"@id": "<capability model id>",
"@type": ["CapabilityModel"],
"contents": [],
"implements": [
{
"@id": "<component Id>",
"@type": ["InterfaceInstance"],
"name": "Sensor component",
"schema": {
"@id": "<interface Id>",
"@type": ["Interface"],
"displayName": "Sensor interface",
"contents": [
{
"@id": "<id>",
"@type": ["Telemetry"],
"displayName": "Humidity",
"name": "humidity",
"schema": "double"
},
{
"@id": "<id>",
"@type": ["Telemetry", "SemanticType/Event"],
"displayName": "Error event",
"name": "error",
"schema": "integer"
},
{
"@id": "<id>",
"@type": ["Property"],
"displayName": "Set temperature",
"name": "setTemp",
"writable": true,
"schema": "integer",
"unit": "Units/Temperature/fahrenheit",
"initialValue": "30"
},
{
"@id": "<id>",
"@type": ["Property"],
"displayName": "Firmware version read only",
"name": "fwversion",
"schema": "string"
},
{
"@id": "<id>",
"@type": ["Property"],
"displayName": "Display status",
"name": "status",
"writable": true,
"schema": {
"@id": "urn:testInterface:status:obj:ka8iw8wka:1",
"@type": ["Object"]
}
},
{
"@id": "<id>",
"@type": ["Command"],
"request": {
"@id": "<id>",
"@type": ["SchemaField"],
"displayName": "Configuration",
"name": "config",
"schema": "string"
},
"response": {
"@id": "<id>",
"@type": ["SchemaField"],
"displayName": "Response",
"name": "response",
"schema": "string"
},
"displayName": "Configure sensor",
"name": "sensorconfig"
}
]
}
}
],
"displayName": "Sensor capability model"
},
"solutionModel": {
"@id": "<id>",
"@type": ["SolutionModel"],
"cloudProperties": [
{
"@id": "<id>",
"@type": ["CloudProperty"],
"displayName": "Install date",
"name": "installDate",
"schema": "dateTime",
"valueDetail": {
"@id": "<id>",
"@type": ["ValueDetail/DateTimeValueDetail"]
}
}
]
}
}
إشعار بتغيير تنسيق البيانات
ملاحظة
لا يتأثر تنسيق بيانات دفق بيانات تتبع الاستخدام بهذا التغيير. تتأثر فقط الأجهزة وقوالب الأجهزة بتدفقات البيانات.
إذا كان لديك تصدير بيانات موجود في تطبيق المعاينة الخاص بك مع تشغيل تدفقات قوالبالأجهزة والأجهزة، فقم بتحديث التصدير بحلول 30 يونيو 2020. ينطبق هذا المطلب على عمليات التصدير إلى تخزين Azure Blob ومراكز أحداث Azure ناقل خدمة Azure.
اعتبارا من 3 فبراير 2020، سيكون تنسيق البيانات الموضح أعلاه لجميع عمليات التصدير الجديدة في التطبيقات مع تمكين الأجهزة وقوالب الأجهزة. تظل جميع الصادرات التي تم إنشاؤها قبل هذا التاريخ على تنسيق البيانات القديم حتى 30 يونيو 2020، وفي ذلك الوقت سيتم ترحيل هذه الصادرات تلقائيا إلى تنسيق البيانات الجديد. يتطابق تنسيق البيانات الجديد مع الجهازوخاصية الجهاز وكائنات قالب الجهاز في واجهة برمجة التطبيقات العامة ل IoT Central.
بالنسبة للأجهزة، تتضمن الاختلافات الملحوظة بين تنسيق البيانات القديم وتنسيق البيانات الجديد ما يلي:
@idلإزالة الجهاز،deviceIdتتم إعادة تسميته إلىidprovisionedتتم إضافة علامة لوصف حالة توفير الجهازapprovedتتم إضافة علامة لوصف حالة الموافقة على الجهازpropertiesبما في ذلك خصائص الجهاز والسحابة، يطابق الكيانات في واجهة برمجة التطبيقات العامة
بالنسبة لقوالب الأجهزة، تتضمن الاختلافات الملحوظة بين تنسيق البيانات القديم وتنسيق البيانات الجديد ما يلي:
@idلقالب الجهاز تتم إعادة تسميته إلىid@typeلقالب الجهاز تتم إعادة تسميته إلىtypes، وهو الآن صفيف
الأجهزة (تم إهمال التنسيق اعتبارا من 3 فبراير 2020)
{
"@id":"<id-value>",
"@type":"Device",
"displayName":"Airbox",
"data":{
"$cloudProperties":{
"Color":"blue"
},
"EnvironmentalSensor":{
"thsensormodel":{
"reported":{
"value":"Neque quia et voluptatem veritatis assumenda consequuntur quod.",
"$lastUpdatedTimestamp":"2019-09-30T20:35:43.8478978Z"
}
},
"pm25sensormodel":{
"reported":{
"value":"Aut alias odio.",
"$lastUpdatedTimestamp":"2019-09-30T20:35:43.8478978Z"
}
}
},
"urn_azureiot_DeviceManagement_DeviceInformation":{
"totalStorage":{
"reported":{
"value":27900.9730905171,
"$lastUpdatedTimestamp":"2019-09-30T20:35:43.8478978Z"
}
},
"totalMemory":{
"reported":{
"value":4667.82916715811,
"$lastUpdatedTimestamp":"2019-09-30T20:35:43.8478978Z"
}
}
}
},
"instanceOf":"<template-id>",
"deviceId":"<device-id>",
"simulated":true
}
قوالب الأجهزة (تم إهمال التنسيق اعتبارا من 3 فبراير 2020)
{
"@id":"<template-id>",
"@type":"DeviceModelDefinition",
"displayName":"Airbox",
"capabilityModel":{
"@id":"<id>",
"@type":"CapabilityModel",
"implements":[
{
"@id":"<id>",
"@type":"InterfaceInstance",
"name":"EnvironmentalSensor",
"schema":{
"@id":"<id>",
"@type":"Interface",
"comment":"Requires temperature and humidity sensors.",
"description":"Provides functionality to report temperature, humidity. Provides telemetry, commands and read-write properties",
"displayName":"Environmental Sensor",
"contents":[
{
"@id":"<id>",
"@type":"Telemetry",
"description":"Current temperature on the device",
"displayName":"Temperature",
"name":"temp",
"schema":"double",
"unit":"Units/Temperature/celsius",
"valueDetail":{
"@id":"<id>",
"@type":"ValueDetail/NumberValueDetail",
"minValue":{
"@value":"50"
}
},
"visualizationDetail":{
"@id":"<id>",
"@type":"VisualizationDetail"
}
},
{
"@id":"<id>",
"@type":"Telemetry",
"description":"Current humidity on the device",
"displayName":"Humidity",
"name":"humid",
"schema":"integer"
},
{
"@id":"<id>",
"@type":"Telemetry",
"description":"Current PM2.5 on the device",
"displayName":"PM2.5",
"name":"pm25",
"schema":"integer"
},
{
"@id":"<id>",
"@type":"Property",
"description":"T&H Sensor Model Name",
"displayName":"T&H Sensor Model",
"name":"thsensormodel",
"schema":"string"
},
{
"@id":"<id>",
"@type":"Property",
"description":"PM2.5 Sensor Model Name",
"displayName":"PM2.5 Sensor Model",
"name":"pm25sensormodel",
"schema":"string"
}
]
}
},
{
"@id":"<id>",
"@type":"InterfaceInstance",
"name":"urn_azureiot_DeviceManagement_DeviceInformation",
"schema":{
"@id":"<id>",
"@type":"Interface",
"displayName":"Device information",
"contents":[
{
"@id":"<id>",
"@type":"Property",
"comment":"Total available storage on the device in kilobytes. Ex. 20480000 kilobytes.",
"displayName":"Total storage",
"name":"totalStorage",
"displayUnit":"kilobytes",
"schema":"long"
},
{
"@id":"<id>",
"@type":"Property",
"comment":"Total available memory on the device in kilobytes. Ex. 256000 kilobytes.",
"displayName":"Total memory",
"name":"totalMemory",
"displayUnit":"kilobytes",
"schema":"long"
}
]
}
}
],
"displayName":"AAEONAirbox52"
},
"solutionModel":{
"@id":"<id>",
"@type":"SolutionModel",
"cloudProperties":[
{
"@id":"<id>",
"@type":"CloudProperty",
"displayName":"Color",
"name":"Color",
"schema":"string",
"valueDetail":{
"@id":"<id>",
"@type":"ValueDetail/StringValueDetail"
},
"visualizationDetail":{
"@id":"<id>",
"@type":"VisualizationDetail"
}
}
]
}
}
الخطوات التالية
الآن بعد أن عرفت كيفية تصدير بياناتك إلى Azure Event Hubs، ناقل خدمة Azure، وتخزين Azure Blob، تابع إلى الخطوة التالية: