Frågor om IoT Hub jobb
Jobb är ett sätt att köra åtgärder på uppsättningar med enheter. Varje enhetstvilling innehåller information om de jobb som riktar sig mot den i en samling som kallas jobb. IoT Hub kan du köra frågor mot jobb som ett enda JSON-dokument som innehåller all tvillinginformation.
Här är ett exempel på en IoT Hub-enhetstvilling som ingår i ett jobb med namnet 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
}
},
...
]
}
För närvarande kan den här samlingen frågas som devices.jobs på det IoT Hub frågespråket.
Viktigt
För närvarande returneras inte jobbegenskapen vid frågor mot enhetstvillingar. Det vill: frågor som innehåller FROM devices
. Jobbegenskapen kan bara nås direkt med frågor med hjälp av FROM devices.jobs
.
Följande fråga returnerar till exempel alla jobb (tidigare och schemalagda) som påverkar en enskild enhet:
SELECT * FROM devices.jobs
WHERE devices.jobs.deviceId = 'myDeviceId'
Observera hur den här frågan ger enhetsspecifik status (och eventuellt direktmetodsvar) för varje jobb som returneras.
Det går också att filtrera med godtyckliga booleska villkor för alla objektegenskaper i devices.jobs samling.
Följande fråga hämtar till exempel alla slutförda enhetstvillingsuppdateringsjobb som skapades efter september 2016 för en specifik enhet:
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'
Du kan också hämta resultatet per enhet för ett enda jobb.
SELECT * FROM devices.jobs
WHERE devices.jobs.jobId = 'myJobId'
Frågebegränsningar för jobb
Frågeuttryck kan ha en maximal längd på 8 192 tecken.
För närvarande stöder inte frågor på devices.jobs :
- Prognoser är därför bara
SELECT *
möjliga. - Villkor som refererar till enhetstvillingen utöver jobbegenskaper (se föregående avsnitt).
- Sammansättningar, till exempel antal, genomsnitt och gruppera efter.
Nästa steg
- Förstå grunderna i IoT Hub frågespråk