Share via


Lekérdezések IoT Hub feladatokhoz

A feladatok lehetővé teszik a műveletek végrehajtását eszközkészleteken. Minden ikereszköz tartalmazza a feladatokat megcélzó feladatok adatait egy jobs (feladatok) nevű gyűjteményben. IoT Hub lehetővé teszi a feladatok lekérdezését egyetlen, az összes ikeradatot tartalmazó JSON-dokumentumként.

Íme egy minta IoT Hub-ikereszköz, amely a myJobId nevű feladat része:

{
    "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
            }
        },
        ...
    ]
}

Ez a gyűjtemény jelenleg devices.jobs IoT Hub lekérdezési nyelven kérdezhető le.

Fontos

A feladatok tulajdonság jelenleg nem jelenik meg az ikereszközök lekérdezésekor. Ez azt jelent, hogy a lekérdezések tartalmazzák a parancsot FROM devices. A jobs tulajdonság csak a használatával FROM devices.jobsérhető el közvetlenül lekérdezésekkel.

A következő lekérdezés például az összes (múltbeli és ütemezett) feladatot visszaadja, amely egyetlen eszközt érint:

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

Figyelje meg, hogy ez a lekérdezés hogyan biztosítja az egyes visszaadott feladatok eszközspecifikus állapotát (és esetleg közvetlen metódusválaszát).

A devices.jobs gyűjtemény összes objektumtulajdonságára tetszőleges logikai feltételekkel is szűrhet.

A következő lekérdezés például lekéri az összes befejezett ikereszköz-frissítési feladatot, amelyet egy adott eszközhöz 2016 szeptembere után hoztak létre:

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'

Egyetlen feladat eszközönkénti eredményeit is lekérheti.

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

Feladatok lekérdezési korlátozásai

A lekérdezési kifejezések legfeljebb 8192 karakter hosszúságúak lehetnek.

A devices.jobs lekérdezései jelenleg nem támogatják a következőket:

  • Az előrejelzések tehát csak SELECT * lehetségesek.
  • Az ikereszközre a feladattulajdonságok mellett hivatkozó feltételek (lásd az előző szakaszt).
  • Összesítések, például darabszám, átlag és csoportosítás szempontja.

Következő lépések