Datové připojení IoT Hubu
Azure IoT Hub je spravovaná služba hostovaná v cloudu, která funguje jako centrum zpráv pro obousměrnou komunikaci mezi vaší aplikací IoT a zařízeními, která spravuje. Azure Data Explorer nabízí nepřetržitý příjem dat ze služby IoT Hubs spravovaný zákazníkem pomocí svého centra událostí kompatibilního s koncovým bodem zpráv typu zařízení-cloud.
Kanál pro příjem dat IoT prochází několika kroky. Nejprve vytvoříte IoT Hub a zaregistrujete do něj zařízení. Pak vytvoříte cílovou tabulku v Azure Data Exploreru, do které se data v určitém formátu budou ingestovat pomocí daných vlastností příjmu dat. Připojení iot Hubu potřebuje znát směrování událostí pro připojení k tabulce Azure Data Exploreru. Data jsou vložena s vybranými vlastnostmi podle mapování vlastností systému událostí. Tento proces je možné spravovat prostřednictvím webu Azure Portal, programově pomocí C# nebo Pythonu nebo pomocí šablony Azure Resource Manageru.
Obecné informace o příjmu dat v Azure Data Exploreru najdete v přehledu příjmu dat v Azure Data Exploreru.
Formát dat
- Data se čtou z koncového bodu centra událostí ve formě objektů EventData .
- Viz podporované formáty.
Poznámka:
IoT Hub nepodporuje formát .raw.
- Viz podporované komprese.
Vlastnosti příjmu dat
Vlastnosti příjmu dat instruují proces příjmu dat, kam se mají data směrovat a jak je zpracovat. Vlastnosti příjmu událostí můžete zadat pomocí EventData.Properties. Můžete nastavit následující vlastnosti:
Vlastnost | Popis |
---|---|
Databáze | Název cílové databáze (rozlišují se malá a velká písmena). Tuto vlastnost můžete použít, pokud chcete odeslat data do jiné databáze, než je databáze, ve které bylo datové připojení vytvořeno (výchozí databáze). Pokud chcete data směrovat do více databází, musíte nejprve nastavit připojení jako připojení s více databázemi. Další informace naleznete v tématu Směrování událostí. |
Table | Název (rozlišují se malá a velká písmena) existující cílové tabulky. Table Přepíše sadu v Data Connection podokně. |
Formát | Formát dat: Data format Přepíše sadu v Data Connection podokně. |
IngestionMappingReference | Název existujícího mapování příjmu dat, které se má použít. Column mapping Přepíše sadu v Data Connection podokně. |
Kódování | Kódování dat, výchozí hodnota je UTF8. Může se jednat o jakékoli kódování podporované technologií .NET. |
Poznámka:
Po vytvoření datového připojení se ingestují pouze události, které se zařadí do fronty.
Směrování událostí
Při vytváření datového připojení ke clusteru určíte směrování, kam se mají ingestované data odesílat. Výchozí směrování je cílová tabulka zadaná v připojovací řetězec, která je přidružená k cílové databázi. Výchozí směrování dat se také označuje jako statické směrování. Alternativní směrování dat můžete zadat pomocí vlastností dat události.
Směrování dat událostí do alternativní databáze
Směrování dat do alternativní databáze je ve výchozím nastavení vypnuté. Pokud chcete data odeslat do jiné databáze, musíte nejprve nastavit připojení jako připojení s více databázemi. Příklad toho, jak to udělat na webu Azure Portal, najdete v tématu Zapnutí směrování s více databázemi. Uživatel, skupina, instanční objekt nebo spravovaná identita použitá k povolení směrování databáze musí mít v clusteru alespoň roli přispěvatele a oprávnění k zápisu.
Pokud chcete zadat alternativní databázi, nastavte vlastnost Příjem dat databáze.
Upozorňující
Zadání alternativní databáze bez nastavení připojení jako datového připojení s více databázemi způsobí selhání příjmu dat.
Zapnutí směrování s více databázemi
Než budete moct nastavit alternativní cílovou databázi, musíte nejprve povolit směrování dat do více databází. Pomocí následujících kroků povolte směrování dat do alternativních databází:
Na webu Azure Portal přejděte ke svému clusteru.
Vyberte Datová>připojení databáze.
Vytvořte nebo upravte datové připojení a v podokně Datové připojení v části Nastavení směrování dat zapněte možnost Povolit směrování dat do jiné databáze (datové připojení s více databázemi).
Směrování dat událostí do alternativní tabulky
Můžete také zadat vlastnosti cílové tabulky pro každou událost pomocí vlastností události. Připojení bude dynamicky směrovat data, jak je uvedeno v EventData.Properties, přepsání statických vlastností pro tuto událost. Pokud chcete zadat alternativní tabulku, nastavte vlastnost Příjem dat tabulky.
Poznámka:
Pokud data obsahují vybrané informace o směrování, musíte jako součást vlastností událostí zadat potřebné informace o směrování.
Mapování vlastností systému událostí
Systémové vlastnosti jsou kolekce sloužící k ukládání vlastností nastavených službou IoT Hub v době přijetí události. Připojení IoT Hubu Azure Data Exploreru vloží vybrané vlastnosti do vstupních dat do tabulky.
Poznámka:
Pro csv
mapování se vlastnosti přidají na začátek záznamu v pořadí uvedeném v tabulce níže. Pro json
mapování se vlastnosti přidají podle názvů vlastností v následující tabulce.
Systémové vlastnosti
IoT Hub zveřejňuje pro zprávy IoT Hubu zařízení-cloud následující systémové vlastnosti:
Vlastnost | Popis |
---|---|
message-id | Identifikátor uživatelem nastavený pro zprávu použitou pro vzory žádosti a odpovědi. Formát: Řetězec rozlišující velká a malá písmena (o délce až 128 znaků) 7bitové alfanumerické znaky ASCII + {'-', ':', '.', '+', '%', '_', '#', '*', '?', '!', '(', ')', ',', '=', '@', ';', '$', '''} . |
iothub-enqueuedtime | Služba IoT Hub přijala zprávu typu zařízení-cloud a čas. |
ID uživatele | ID použité k určení původu zpráv. Při generování zpráv službou IoT Hub je tato hodnota nastavena na {iot hub name} hodnotu . |
iothub-connection-device-id | ID nastavené službou IoT Hub na zprávách typu zařízení-cloud Obsahuje ID zařízení , které zprávu odeslalo. |
iothub-connection-module-id | ID nastavené službou IoT Hub na zprávách typu zařízení-cloud Obsahuje id modulu zařízení, které zprávu odeslalo. |
iothub-connection-auth-generation-id | ID nastavené službou IoT Hub na zprávách typu zařízení-cloud Obsahuje connectionDeviceGenerationId (podle vlastností identity zařízení) zařízení, které zprávu odeslalo. |
iothub-connection-auth-method | Metoda ověřování nastavená službou IoT Hub ve zprávách typu zařízení-cloud Tato vlastnost obsahuje informace o metodě ověřování použité k ověření zařízení odesílajícího zprávu. |
iothub-app-iothub-creation-time-utc | Umožňuje zařízení odesílat čas vytvoření události při odesílání dat v dávce. |
iothub-creation-time-utc | Umožňuje zařízení odesílat čas vytvoření události při odesílání jedné zprávy najednou. |
dt-dataschema | Tato hodnota je nastavena službou IoT Hub na zprávách typu zařízení-cloud. Obsahuje ID modelu zařízení nastavené v připojení zařízení. |
dt-subject | Název komponenty, která odesílá zprávy typu zařízení-cloud. |
Pokud jste v části Zdroj dat v tabulce vybrali vlastnosti systému událostí, musíte zahrnout vlastnosti do schématu tabulky a mapování.
Příklady mapování schématu
Příklad mapování schématu tabulky
Pokud vaše data obsahují tři sloupce (Timespan
a) a Value
vlastnosti, Metric
které zahrnete iothub-connection-device-id
sequence-number
, a pomocí tohoto příkazu vytvořte nebo upravte schéma tabulky:
.create-merge table TestTable (TimeStamp: datetime, Metric: string, Value: int, IotHubDeviceId:long, IotHubSequenceNumber:long)
Příklad mapování CSV
Spuštěním následujících příkazů přidejte data na začátek záznamu. Všimněte si řadových hodnot.
.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říklad mapování JSON
Data se přidávají pomocí mapování systémových vlastností. Spusťte tyto příkazy:
.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"}}'
']'
Mapování vlastností uživatele události
Není podporováno rozšiřování datové části událostí služby IoT Hub vlastnostmi uživatele. Zvažte vložení vlastností uživatele do upstreamového textu události.
Připojení ke službě IoT Hub
Poznámka:
Pro zajištění nejlepšího výkonu vytvořte všechny prostředky ve stejné oblasti jako cluster Azure Data Exploreru.
Vytvoření IoT Hubu
Pokud ho ještě nemáte, vytvořte Iot Hub. Připojení ke službě IoT Hub je možné spravovat prostřednictvím webu Azure Portal, programově pomocí C# nebo Pythonu nebo pomocí šablony Azure Resource Manageru.
Poznámka:
- Počet
device-to-cloud partitions
se nedá změnit, proto byste při nastavování počtu oddílů měli zvážit dlouhodobé škálování. - Skupina příjemců musí být jedinečná pro jednotlivé uživatele. Vytvořte skupinu příjemců vyhrazenou pro připojení Azure Data Exploreru. Najděte svůj prostředek na webu Azure Portal a přejděte k
Built-in endpoints
přidání nové skupiny příjemců. - Datové připojení používá IoT Hub
Built-in endpoint
. Pokud nakonfigurujete jakékoli jinéMessage routing endpoint
zprávy, zastaví se tok zpráv, pokud se do daného koncovéhoBuilt-in endpoint
bodu nevytvořila trasa. Pokud chcete zajistit, aby zprávy při přidání nové trasy pokračovaly v toku do integrovaného koncového bodu, nakonfigurujte trasu do koncovéhoevents
bodu. Další informace najdete v tématu Řešení potíží se směrováním zpráv ve službě IoT Hub.
Odesílání událostí
Podívejte se na ukázkový projekt , který simuluje zařízení a generuje data.