IoT Hub-adatkapcsolatok
Azure IoT Hub egy felhőben üzemeltetett felügyelt szolgáltatás, amely központi üzenetközpontként szolgál az IoT-alkalmazás és az általa felügyelt eszközök közötti kétirányú kommunikációhoz. Az Azure Data Explorer folyamatos betöltést biztosít az ügyfél által felügyelt IoT Hubsból az eszközről a felhőbe irányuló üzenetek beépített végpontjával kompatibilis Event Hub használatával.
Az IoT-betöltési folyamat több lépésen megy keresztül. Először hozzon létre egy IoT Hub, és regisztráljon hozzá egy eszközt. Ezután létre kell hoznia egy céltáblát az Azure-ban Data Explorer, amelybe az adatok egy adott formátumban lesznek betöltve a megadott betöltési tulajdonságok használatával. Az Iot Hub-kapcsolatnak ismernie kell az események útválasztását az Azure Data Explorer táblához való csatlakozáshoz. Az adatok az eseményrendszer tulajdonságainak leképezése alapján vannak beágyazva a kiválasztott tulajdonságokba. Ez a folyamat a Azure Portal keresztül kezelhető, programozott módon C# vagy Python használatával, vagy az Azure Resource Manager sablonnal.
Az Azure Data Explorer adatbetöltésével kapcsolatos általános információkért lásd: Az Azure Data Explorer adatbetöltés áttekintése.
Adatformátum
- Az adatok az Event Hub-végpontról lesznek beolvasva EventData-objektumok formájában.
- Lásd a támogatott formátumokat.
Megjegyzés
IoT Hub nem támogatja a .raw formátumot.
- Lásd : támogatott tömörítések.
Betöltési tulajdonságok
A betöltési tulajdonságok arra utasítják a betöltési folyamatot, hogy hová irányítsa az adatokat, és hogyan dolgozza fel azokat. Az események betöltési tulajdonságait az EventData.Properties paranccsal adhatja meg. A következő tulajdonságokat állíthatja be:
Tulajdonság | Leírás |
---|---|
Adatbázis | A céladatbázis neve (kis- és nagybetűk megkülönböztetése). Ez a tulajdonság akkor használható, ha az adatokat egy másik adatbázisba szeretné küldeni, mint az adatbázisba, amelyen az adatkapcsolat létre lett hozva (ez az alapértelmezett adatbázis). Ha az adatokat több adatbázisba szeretné irányítani, először többadatbázisos kapcsolatként kell beállítania a kapcsolatot. További információ: Események útválasztása. |
Tábla | A meglévő céltábla neve (kis- és nagybetűk megkülönböztetése). Felülbírálja a Table halmazt a Data Connection panelen. |
Formátum | Adatformátum. Felülbírálja a Data format halmazt a Data Connection panelen. |
IngestionMappingReference | A használni kívánt betöltési leképezés neve. Felülbírálja a Column mapping halmazt a Data Connection panelen. |
Encoding | Az adatkódolás alapértelmezett értéke UTF8. A .NET által támogatott kódolások bármelyike lehet. |
Megjegyzés
Csak az adatkapcsolat létrehozása után beküldött események lesznek betöltve.
Események útválasztása
Amikor adatkapcsolatot hoz létre a fürthöz, meg kell adnia a betöltött adatok küldéséhez szükséges útválasztást. Az alapértelmezett útválasztás a céladatbázishoz társított kapcsolati karakterlánc megadott céltáblához tartozik. Az adatok alapértelmezett útválasztását statikus útválasztásnak is nevezik. Az eseményadatok tulajdonságaival alternatív útválasztást is megadhat az adatokhoz.
Eseményadatok átirányítása másik adatbázisba
Az adatok másik adatbázisba való átirányítása alapértelmezés szerint ki van kapcsolva. Ha az adatokat egy másik adatbázisba szeretné küldeni, először többadatbázisos kapcsolatként kell beállítania a kapcsolatot. A Azure Portal ennek módjáról a Több adatbázisos útválasztás bekapcsolása című témakörben talál példát. Az adatbázis-útválasztás engedélyezéséhez használt felhasználónak, csoportnak, szolgáltatásnévnek vagy felügyelt identitásnak legalább közreműködői szerepkörrel és írási engedélyekkel kell rendelkeznie a fürtön.
Alternatív adatbázis megadásához állítsa be az Adatbázis-betöltési tulajdonságot.
Figyelmeztetés
Ha egy másik adatbázist úgy ad meg, hogy nem állítja be a kapcsolatot többadatbázisos adatkapcsolatként, a betöltés meghiúsul.
A többadatbázisos útválasztás bekapcsolása
Egy másik céladatbázis beállítása előtt engedélyeznie kell az adatok több adatbázisba való átirányítását. Az alábbi lépésekkel engedélyezheti az adatok alternatív adatbázisokba való átirányítását:
A Azure Portal keresse meg a fürtöt.
Válassza az> AdatbázisokAdatkapcsolatok lehetőséget.
Hozzon létre vagy szerkesszen egy adatkapcsolatot, majd az Adatkapcsolat panel Adatútválasztási beállítások területén kapcsolja be az Adatok más adatbázisba (többadatbázisos adatkapcsolat) való továbbításának engedélyezése beállítást.
Eseményadatok átirányítása másik táblába
Az eseménytulajdonságok használatával megadhatja az egyes események céltábla-tulajdonságait is. A kapcsolat dinamikusan irányítja az adatokat az EventData.Properties tulajdonságban megadottak szerint, felülírva az esemény statikus tulajdonságait. Alternatív tábla megadásához állítsa be a Tableingestion tulajdonságot.
Megjegyzés
Ha a Saját adatok között útválasztási adatok is vannak kiválasztva, meg kell adnia a szükséges útválasztási információkat az eseménytulajdonságok részeként.
Eseményrendszer tulajdonságainak leképezése
A rendszertulajdonságok olyan gyűjtemények, amelyek az esemény fogadásának időpontjában az IoT Hub szolgáltatás által beállított tulajdonságok tárolására szolgálnak. Az Azure Data Explorer IoT Hub-kapcsolat beágyazza a kiválasztott tulajdonságokat a táblában lévő adatleszállásba.
Megjegyzés
A leképezéshez csv
a tulajdonságok a rekord elején, az alábbi táblázatban felsorolt sorrendben lesznek hozzáadva. A leképezéshez json
a tulajdonságok az alábbi táblázatban szereplő tulajdonságnevek szerint lesznek hozzáadva.
Rendszertulajdonságok
IoT Hub az eszközről a felhőbe irányuló IoT Hub üzenetek következő rendszertulajdonságait teszi elérhetővé:
Tulajdonság | Leírás |
---|---|
message-id | A kérés-válasz mintákhoz használt üzenet felhasználó által beállított azonosítója. Formátum: Kis- és nagybetűk megkülönböztetése (legfeljebb 128 karakter hosszú) ASCII 7 bites alfanumerikus karakterek + {'-', ':', '.', '+', '%', '_', '#', '*', '?', '!', '(', ')', ',', '=', '@', ';', '$', '''} . |
iothub-enqueuedtime | Az eszközről a felhőbe üzenet IoT Hub általi fogadásának dátuma és időpontja. |
felhasználói azonosító | Az üzenetek eredetének megadására használt azonosító. Ha IoT Hub hoz létre üzeneteket, ez az érték értékre {iot hub name} van állítva. |
iothub-connection-device-id | Az eszközről a felhőbe irányuló üzenetek IoT Hub által beállított azonosító. Tartalmazza az üzenetet küldő eszköz deviceId azonosítóját . |
iothub-connection-module-id | Az eszközről a felhőbe irányuló üzenetek IoT Hub által beállított azonosító. Tartalmazza az üzenetet küldő eszköz modulazonosítóját . |
iothub-connection-auth-generation-id | Az eszközről a felhőbe irányuló üzenetek IoT Hub által beállított azonosító. Tartalmazza az üzenetet küldő eszköz connectionDeviceGenerationId azonosítóját (az eszközidentitás tulajdonságainak megfelelően). |
iothub-connection-auth-method | A IoT Hub által az eszközről a felhőbe irányuló üzeneteken beállított hitelesítési módszer. Ez a tulajdonság információkat tartalmaz az üzenetet küldő eszköz hitelesítéséhez használt hitelesítési módszerről. |
iothub-app-iothub-creation-time-utc | Lehetővé teszi az eszköz számára az eseménylétrehozás idejét, amikor adatokat küld egy kötegben. |
iothub-creation-time-utc | Lehetővé teszi az eszköz számára az eseménylétrehozás idejét, amikor egyszerre egy üzenetet küld. |
dt-dataschema | Ezt az értéket az IoT Hub állítja be az eszközről a felhőbe irányuló üzeneteken. Az eszközkapcsolatban beállított eszközmodell-azonosítót tartalmazza. |
dt-subject | Az eszközről a felhőbe irányuló üzeneteket küldő összetevő neve. |
Ha a tábla Adatforrás szakaszában az Eseményrendszer tulajdonságai lehetőséget választotta, a tulajdonságokat bele kell foglalnia a tábla sémába és leképezésbe.
Sémaleképezési példák
Példa táblaséma-leképezésre
Ha az adatok három oszlopot (Timespan
, , és Value
) tartalmaznak, Metric
valamint az és sequence-number
a tulajdonságot, iothub-connection-device-id
hozza létre vagy módosítsa a táblázatsémát az alábbi paranccsal:
.create-merge table TestTable (TimeStamp: datetime, Metric: string, Value: int, IotHubDeviceId:long, IotHubSequenceNumber:long)
PÉLDA CSV-leképezésre
Az alábbi parancsok futtatásával adja hozzá az adatokat a rekord elejéhez. Jegyezze fel a sorszámértékeket.
.create table TestTable ingestion csv mapping "CsvMapping1"
'['
' { "column" : "TimeStamp", "Properties":{"Ordinal":"2"}},'
' { "column" : "Metric", "Properties":{"Ordinal":"3"}},'
' { "column" : "Value", "Properties":{"Ordinal":"4"}},'
' { "column" : "IotHubDeviceId", "Properties":{"Ordinal":"0"}},'
' { "column" : "IotHubSequenceNumber", "Properties":{"Ordinal":"1"}}'
']'
Példa JSON-leképezésre
Az adatok hozzáadása a rendszertulajdonságok leképezésével történik. Futtassa a következő parancsokat:
.create table TestTable ingestion json mapping "JsonMapping1"
'['
' { "column" : "TimeStamp", "Properties":{"Path":"$.timestamp"}},'
' { "column" : "Metric", "Properties":{"Path":"$.metric"}},'
' { "column" : "Value", "Properties":{"Path":"$.metric_value"}},'
' { "column" : "IotHubDeviceId", "Properties":{"Path":"$.iothub-connection-device-id"}},'
' { "column" : "IotHubSequenceNumber", "Properties":{"Path":"$.sequence-number"}}'
']'
Eseményfelhasználói tulajdonságok leképezése
A IoT Hub események hasznos adatainak felhasználói tulajdonságokkal való bővítéséhez nem támogatott. Fontolja meg a felhasználói tulajdonságok beágyazását az esemény törzsébe a felső rétegben.
IoT Hub kapcsolat
Megjegyzés
A legjobb teljesítmény érdekében hozzon létre minden erőforrást ugyanabban a régióban, mint az Azure Data Explorer-fürt.
IoT Hub létrehozása
Ha még nincs ilyenje, hozzon létre egy Iot Hubot. A IoT Hub a Azure Portal keresztül, programozott módon, C# vagy Python használatával, illetve az Azure Resource Manager sablonnal kezelhetők.
Megjegyzés
- A
device-to-cloud partitions
darabszám nem módosítható, ezért a partíciók számának beállításakor érdemes megfontolni a hosszú távú skálázást. - A fogyasztói csoportnak fogyasztónként egyedinek kell lennie. Hozzon létre egy, az Azure Data Explorer kapcsolathoz dedikált fogyasztói csoportot. Keresse meg az erőforrást a Azure Portal, és lépjen
Built-in endpoints
egy új fogyasztói csoport hozzáadásához. - Az adatkapcsolat IoT Hub
Built-in endpoint
használ. Ha konfigurál egy másikatMessage routing endpoint
, az üzenetek nem haladnak tovább aBuilt-in endpoint
végpontra, hacsak nem jön létre útvonal az adott végpontra. Ha új útvonalat ad hozzá, az üzenetek továbbra is a beépített végpontra áramlanak, konfiguráljon egy útvonalat aevents
végponthoz. További információ: IoT Hub Hibaelhárítási üzenetek útválasztása.
Események küldése
Tekintse meg az eszközt szimuláló és adatokat generáló mintaprojektet .