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 aplikací IoT a zařízeními, která spravuje. Azure Data Explorer nabízí průběžný příjem dat ze služeb IoT Hubs spravovaných zákazníkem pomocí integrovaného koncového bodu zpráv typu zařízení-cloud kompatibilního s centrem událostí.

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 v Azure Data Explorer vytvoříte cílovou tabulku, do které se budou ingestovat data v konkrétním formátu pomocí daných vlastností příjmu dat. Připojení iot Hubu potřebuje znát směrování událostí, aby se bylo moct připojit k tabulce Azure Data Explorer. 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 Azure Portal, programově v jazyce C# nebo Python nebo pomocí šablony Azure Resource Manager.

Obecné informace o příjmu dat v Azure Data Explorer najdete v tématu Přehled příjmu dat v Azure Data Explorer.

Formát dat

Vlastnosti příjmu dat

Vlastnosti příjmu dat určují procesu příjmu dat, kam má 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 data odeslat do jiné databáze, než pro kterou 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í k více databázím. Další informace najdete v tématu Směrování událostí.
Tabulka Název existující cílové tabulky (rozlišují se malá a velká písmena). Table Přepíše nastavení v Data Connection podokně.
Formát Formát dat. Data format Přepíše nastavení 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 nastavení v Data Connection podokně.
Encoding Kódování dat, výchozí hodnota je UTF8. Může to být jakékoli kódování podporované technologií .NET.

Poznámka

Ingestují se pouze události, které jsou zařaděné do fronty po vytvoření datového připojení.

Směrování událostí

Při vytváření datového připojení ke clusteru zadáte směrování pro odesílání přijatých dat. Výchozí směrování je do cílové tabulky zadané v připojovací řetězec 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álostí.

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 odesílat data do jiné databáze, musíte nejprve nastavit připojení jako připojení k více databázím. Příklad postupu v Azure Portal najdete v tématu Zapnutí více databází směrování. Uživatel, skupina, instanční objekt nebo spravovaná identita, které umožňují 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 databáze.

Upozornění

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í. Pokud chcete povolit směrování dat do alternativních databází, postupujte následovně:

  1. V Azure Portal přejděte ke svému clusteru.

  2. Vyberte Databáze>Datová připojení.

  3. 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).

    Snímek obrazovky webového uživatelského rozhraní Azure Data Explorer s možností nastavení směrování dat nastavenou na povolenou

Směrování dat událostí do alternativní tabulky

Vlastnosti cílové tabulky můžete také zadat pro každou událost pomocí vlastností události. Připojení bude dynamicky směrovat data, jak je uvedeno v EventData.Properties, a přepíše statické vlastnosti pro tuto událost. Pokud chcete zadat alternativní tabulku, nastavte vlastnost Table ingestion (Příjem tabulek).

Poznámka

Pokud je vybraná možnost Moje data obsahují informace o směrování , musíte jako součást vlastností událostí zadat potřebné informace o směrování.

Mapování systémových vlastností událostí

Systémové vlastnosti jsou kolekce sloužící k ukládání vlastností nastavených službou IoT Hub v okamžiku přijetí události. Připojení Azure Data Explorer IoT Hub vloží vybrané vlastnosti do datového cílového objektu v tabulce.

Poznámka

Pro csv mapování se vlastnosti přidají na začátek záznamu v pořadí uvedeném v následující tabulce. 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 následující systémové vlastnosti pro zprávy IoT Hub zařízení-cloud:

Vlastnost Popis
id zprávy Identifikátor nastavitelný uživatelem pro zprávu, která se používá pro vzory žádosti a odpovědi. Formát: Řetězec 7bitových alfanumerických znaků ASCII s rozlišováním velkých a malých písmen (až 128 znaků) + {'-', ':', '.', '+', '%', '_', '#', '*', '?', '!', '(', ')', ',', '=', '@', ';', '$', '''}.
iothub-enqueuedtime Datum a čas přijetí zprávy ze zařízení do cloudu IoT Hub
user-id ID sloužící k určení původu zpráv. Když IoT Hub vygeneruje zprávy, nastaví se tato hodnota na {iot hub name}.
iothub-connection-device-id ID nastavené IoT Hub zpráv zařízení-cloud. Obsahuje id zařízení zařízení, které zprávu odeslalo.
iothub-connection-module-id ID nastavené IoT Hub zpráv zařízení-cloud. Obsahuje id modulu zařízení, které zprávu odeslalo.
iothub-connection-auth-generation-id ID nastavené IoT Hub zpráv 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á IoT Hub ve zprávách zařízení-cloud. Tato vlastnost obsahuje informace o metodě ověřování, která se používá k ověření zařízení odesílajícího zprávu.
iothub-app-iothub-creation-time-utc Umožňuje zařízení odeslat čas vytvoření události při odesílání dat v dávce.
iothub-creation-time-utc Umožňuje zařízení odeslat čas vytvoření události při posílání jedné zprávy.
dt-dataschema Tuto hodnotu nastavuje IoT Hub ve zprávách 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 tabulce v části Zdroj dat vybrali Systémové vlastnosti události, musíte vlastnosti zahrnout do schématu tabulky a mapování.

Příklady mapování schématu

Příklad mapování schématu tabulky

Pokud data obsahují tři sloupce (Timespan, a Value) a vlastnosti, Metrickteré zahrnete, jsou iothub-connection-device-id a sequence-number, vytvořte nebo upravte schéma tabulky pomocí tohoto příkazu:

    .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. Poznamenejte si pořadové hodnoty.

    .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í vlastností systému. 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í uživatelských vlastností událostí

Rozšíření datové části událostí IoT Hub vlastnostmi uživatele není podporováno. Zvažte vložení vlastností uživatele do upstreamového textu události.

IoT Hub připojení

Poznámka

Pro zajištění nejlepšího výkonu vytvořte všechny prostředky ve stejné oblasti jako cluster Azure Data Explorer.

Vytvořit IoT Hub

Pokud ho ještě nemáte, vytvořte IoT Hub. Připojení k IoT Hub je možné spravovat prostřednictvím Azure Portal, programově pomocí C# nebo Pythonu nebo pomocí šablony Azure Resource Manager.

Poznámka

  • Počet device-to-cloud partitions není změnitelný, proto byste při nastavování počtu oddílů měli zvážit dlouhodobé škálování.
  • Skupina uživatelů musí být pro každého spotřebitele jedinečná. Vytvořte skupinu uživatelů vyhrazenou pro připojení Azure Data Explorer. Najděte svůj prostředek v Azure Portal a přejděte na Built-in endpoints a přidejte novou skupinu uživatelů.
  • Datové připojení používá IoT Hub Built-in endpoint. Pokud nakonfigurujete jakékoli jiné Message routing endpoint, zprávy přestanou do objektu Built-in endpoint proudit, pokud se nevytvořila trasa do daného koncového bodu. Pokud chcete zajistit, aby zprávy při přidání nové trasy pokračovaly v toku zpráv do integrovaného koncového bodu, nakonfigurujte trasu do koncového events bodu. Další informace najdete v tématu IoT Hub Řešení potíží se směrováním zpráv.

Odesílání událostí

Podívejte se na ukázkový projekt , který simuluje zařízení a generuje data.

Další krok