Dotazy pro úlohy IoT Hub
Úlohy poskytují způsob, jak provádět operace na sadách zařízení. Každé dvojče zařízení obsahuje informace o úlohách, které na něj cílí, v kolekci označované jako úlohy. IoT Hub umožňuje dotazovat úlohy jako jeden dokument JSON obsahující všechny informace o dvojčatech.
Tady je ukázka dvojčete zařízení služby IoT Hub, které je součástí úlohy s názvem 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
}
},
...
]
}
V současné době je možné tuto kolekci dotazovat jako devices.jobs v dotazovacím jazyce IoT Hub.
Důležité
V současné době se při dotazování dvojčat zařízení nevrací vlastnost jobs. To znamená, že dotazy, které obsahují FROM devices
. K vlastnosti jobs je možné přistupovat přímo pouze s dotazy pomocí FROM devices.jobs
.
Například následující dotaz vrátí všechny úlohy (minulé i naplánované), které ovlivňují jedno zařízení:
SELECT * FROM devices.jobs
WHERE devices.jobs.deviceId = 'myDeviceId'
Všimněte si, že tento dotaz poskytuje stav konkrétního zařízení (a případně přímou odpověď metody) každé vrácené úlohy.
Je také možné filtrovat s libovolnými logickými podmínkami pro všechny vlastnosti objektu v kolekci devices.jobs .
Následující dotaz například načte všechny dokončené úlohy aktualizace dvojčete zařízení vytvořené po září 2016 pro konkrétní zařízení:
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'
Můžete také načíst výsledky jedné úlohy podle zařízení.
SELECT * FROM devices.jobs
WHERE devices.jobs.jobId = 'myJobId'
Omezení dotazů úloh
Výrazy dotazu můžou mít maximální délku 8192 znaků.
Dotazy na devices.jobs v současné době nepodporují:
- Projekce, proto je možné pouze
SELECT *
. - Podmínky, které kromě vlastností úlohy odkazují na dvojče zařízení (viz předchozí část).
- Agregace, jako je počet, průměr a seskupení podle.
Další kroky
- Principy základů dotazovacího jazyka IoT Hub