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
- A IoT Hub lekérdezési nyelv alapjainak megismerése