استعلامات لوظائف IoT Hub

توفر الوظائف طريقة لتنفيذ العمليات على مجموعات من الأجهزة. يحتوي كل جهاز مزدوج على معلومات الوظائف التي تستهدفه في مجموعة تسمى الوظائف. يمكنك IoT Hub من الاستعلام عن المهام كمستند JSON واحد يحتوي على جميع المعلومات المزدوجة.

فيما يلي عينة من توأم جهاز مركز IoT الذي يعد جزءا من وظيفة تسمى myJobId:

{
    "deviceId": "myDeviceId",
    "etag": "AAAAAAAAAAc=",
    "tags": {
        ...
    },
    "properties": {
        ...
    },
    "jobs": [
        {
            "deviceId": "myDeviceId",
            "jobId": "myJobId",
            "jobType": "scheduleUpdateTwin",
            "status": "completed",
            "startTimeUtc": "2016-09-29T18:18:52.7418462",
            "endTimeUtc": "2016-09-29T18:20:52.7418462",
            "createdDateTimeUtc": "2016-09-29T18:18:56.7787107Z",
            "lastUpdatedDateTimeUtc": "2016-09-29T18:18:56.8894408Z",
            "outcome": {
                "deviceMethodResponse": null
            }
        },
        ...
    ]
}

حاليًا، هذه المجموعة قابلة للاستعلام كـ devices.jobs في لغة استعلام IoT Hub.

هام

حاليا، لا يتم إرجاع خاصية المهام عند الاستعلام عن توائم الجهاز. أي الاستعلامات التي تحتوي على FROM devices. لا يمكن الوصول إلى خاصية الوظائف إلا مباشرةً مع الاستعلامات باستخدام FROM devices.jobs.

على سبيل المثال، يقوم الاستعلام التالي بإرجاع جميع المهام (السابقة والمجدولة) التي تؤثر على جهاز واحد:

SELECT * FROM devices.jobs
  WHERE devices.jobs.deviceId = 'myDeviceId'

لاحظ كيف يوفر هذا الاستعلام الحالة الخاصة بالجهاز (وربما استجابة الأسلوب المباشر) لكل وظيفة يتم إرجاعها.

من الممكن أيضا التصفية مع الشروط المنطقية العشوائية على جميع خصائص الكائن في مجموعة devices.jobs .

على سبيل المثال، يسترد الاستعلام التالي جميع مهام تحديث الجهاز المزدوج المكتملة التي تم إنشاؤها بعد سبتمبر 2016 لجهاز معين:

SELECT * FROM devices.jobs
  WHERE devices.jobs.deviceId = 'myDeviceId'
    AND devices.jobs.jobType = 'scheduleUpdateTwin'
    AND devices.jobs.status = 'completed'
    AND devices.jobs.createdTimeUtc > '2016-09-01'

يمكنك أيضًا استرداد النتائج لكل جهاز لوظيفة واحدة.

SELECT * FROM devices.jobs
  WHERE devices.jobs.jobId = 'myJobId'

قيود استعلام الوظائف

يمكن أن يبلغ الحد الأقصى لطول تعبيرات الاستعلام 8192 حرفًا.

حاليا، لا تدعم الاستعلامات على devices.jobs ما يلي:

  • الإسقاطات، ومن ثمَّ لا يمكن إلا SELECT *.
  • الشروط التي تشير إلى توأم الجهاز بالإضافة إلى خصائص الوظيفة (انظر القسم السابق).
  • التجميعات، مثل العد والنجم والتجميع حسب.

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