Export dat IoT do cloudových cílů pomocí exportu dat

Tento článek popisuje, jak používat export dat v Azure IoT Central. Pomocí této funkce můžete průběžně exportovat filtrovaná a obohacená data IoT z vaší aplikace IoT Central. Export dat nabízí změny téměř v reálném čase do dalších částí vašeho cloudového řešení pro rychlé poznatky, analýzy a úložiště.

Můžete například:

  • Průběžně exportujte telemetrii, změny vlastností, připojení zařízení, životní cyklus zařízení a data životního cyklu šablony zařízení ve formátu JSON prakticky v reálném čase.
  • Filtrování datových proudů pro export dat, která odpovídají vlastním podmínkám.
  • Obohacení datových proudů o vlastní hodnoty a hodnoty vlastností ze zařízení.
  • Transformujte datové proudy a upravte jejich tvar a obsah.
  • odešlete data do cílových umístění, jako je azure Event Hubs, azure Průzkumník dat, azure Service Bus, azure Blob Storage a koncových bodů webhooku.

Tip

Když zapnete export dat, dostanete od tohoto okamžiku pouze data. V současné době nelze data po vypnutí exportu dat načíst. Pokud chcete zachovat více historických dat, zapněte nejdříve export dat.

Požadavky

Chcete-li používat funkce exportu dat, je nutné mít aplikaci V3a musíte mít oprávnění k exportu dat .

Pokud máte aplikaci v2, přečtěte si téma migrace aplikace IoT Central v2 na V3.

Nastavení cíle exportu

Před konfigurací exportu dat musí existovat váš cíl exportu. Vyberte z následujících typů cíle:

IoT Central exportuje data jednou za minutu a každý soubor obsahující dávku změn od předchozího exportu. Exportovaná data se ukládají ve formátu JSON. Výchozí cesty k exportovaným datům v účtu úložiště jsou:

  • Telemetrie: {Container}/{app-id}/{partition_id}/{yyyy}/{MM}/{DD}/{hh}/{mm}/{filename}
  • Změny vlastností: {Container}/{app-id}/{partition_id}/{yyyy}/{MM}/{DD}/{hh}/{mm}/{filename}

Chcete-li procházet exportované soubory v Azure Portal, přejděte k souboru a vyberte Upravit objekt BLOB.

Možnosti připojení

Blob Storage umístění umožňují nakonfigurovat připojení pomocí připojovacího řetězce nebo spravované identity.

Spravované identity jsou bezpečnější, protože:

  • Přihlašovací údaje k vašemu prostředku neukládáte do připojovacího řetězce v aplikaci IoT Central.
  • Přihlašovací údaje jsou automaticky vázané na životnost vaší aplikace IoT Central.
  • Spravované identity automaticky otočí klíče zabezpečení.

IoT Central aktuálně používá spravované identity přiřazené systémem.

Když konfigurujete spravovanou identitu, zahrnuje tato konfigurace obor a roli:

  • Obor určuje, kde můžete použít spravovanou identitu. Jako obor můžete použít například skupinu prostředků Azure. V takovém případě musí být aplikace IoT Central i cíl ve stejné skupině prostředků.
  • Role definuje, jaká oprávnění se IoT Central aplikace přidělují v cílové službě. Pokud třeba chcete, aby aplikace IoT Central odesílala data do centra událostí, vyžaduje spravovaná identita přiřazení role odesilatele dat Azure Event Hubs .

Tento článek ukazuje, jak vytvořit spravovanou identitu v Azure Portal. Pomocí rozhraní příkazového řádku Azure můžete také vytvořit spravovaných identitu. Další informace najdete v tématu přiřazení přístupu spravované identity k prostředku pomocí Azure CLI.

vytvoření cíle Azure Blob Storage

Pokud nemáte existující účet úložiště Azure pro export do, postupujte takto:

  1. Vytvořte nový účet úložiště v Azure Portal. můžete si přečíst další informace o vytváření nových účtů úložiště Azure Blob nebo Azure Data Lake Storagech účtů úložiště v2. Export dat může zapisovat jenom data do účtů úložiště, které podporují objekty blob bloku. Následující seznam uvádí známé kompatibilní typy účtů úložiště:

    Úroveň výkonu Typ účtu
    Standard Pro obecné účely v2
    Standard Pro obecné účely v1
    Standard Blob Storage
    Premium Úložiště objektů blob bloku
  2. Pokud chcete vytvořit kontejner v účtu úložiště, klikněte na účet úložiště. V části BLOB Servicevyberte Procházet objekty blob. V horní části vyberte + kontejner a vytvořte nový kontejner.

  3. kliknutím na Nastavení přístupové klíčevygenerujte připojovací řetězec pro váš účet úložiště. Zkopírujte jeden ze dvou připojovacích řetězců.

chcete-li vytvořit Blob Storage cíl v IoT Central na stránce vytvořit novou cílovou složku:

  1. Zadejte název cíle.

  2. jako cílový typ vyberte Azure Blob Storage .

  3. Jako typ ověřování vyberte připojovací řetězec .

  4. vložte do připojovacího řetězce pro prostředek Blob Storage a v případě potřeby zadejte název kontejneru rozlišující velká a malá písmena.

  5. Vyberte Uložit.

Nastavení exportu dat

Teď, když máte cíl exportovat data do, nastavte export dat do aplikace IoT Central:

  1. Přihlaste se k aplikaci IoT Central.

  2. V levém podokně vyberte exportovat data.

    Tip

    Pokud nevidíte exportovat data v levém podokně, nemáte oprávnění ke konfiguraci exportu dat ve vaší aplikaci. Pokud chcete nastavit export dat, obraťte se na správce.

  3. Vyberte + Nový export.

  4. Zadejte zobrazovaný název pro nový export a ujistěte se, že je povolenexport dat.

  5. Vyberte typ dat, který chcete exportovat. Následující tabulka uvádí podporované typy exportu dat:

    Datový typ Popis Formát dat
    Telemetrie Exportujte zprávy telemetrie ze zařízení téměř v reálném čase. Každá exportovaná zpráva obsahuje úplný obsah původní zprávy zařízení, normalizováno. Formát zprávy telemetrie
    Změny vlastností Exportujte změny do vlastností zařízení a cloudu téměř v reálném čase. V případě vlastností zařízení jen pro čtení jsou exportovány změny hlášených hodnot. Pro vlastnosti pro čtení i zápis jsou vyexportovány obě hlášené i požadované hodnoty. Formát zprávy o změně vlastnosti
    Připojení zařízení Exportujte připojené a odpojené události zařízení. Formát zprávy připojení zařízení
    Životní cyklus zařízení Exportujte události registrované, odstraněné, zřízené, povolené, zakázané, displayNameChanged a deviceTemplateChanged. Formát zprávy o změnách v životním cyklu zařízení
    Životní cyklus šablon zařízení Exportujte změny šablony publikovaného zařízení, včetně vytvořeného, aktualizovaného a odstraněného. Formát zprávy o změně životního cyklu šablony zařízení
  6. Volitelně můžete přidat filtry pro snížení objemu exportovaných dat. Pro každý typ exportu dat jsou k dispozici různé typy filtrů:

    Typ dat Dostupné filtry
    Telemetrie
    • Filtrovat podle názvu zařízení, ID zařízení, šablony zařízení a v případě, že je zařízení simulované
    • Filtrovat datový proud tak, aby obsahoval jenom telemetrii, která splňuje podmínky filtru
    • Filtrovat Stream tak, aby obsahoval jenom telemetrii ze zařízení s vlastnostmi, které odpovídají podmínkám filtru.
    • Filtrovat datový proud tak, aby obsahoval pouze telemetrii, která obsahuje vlastnosti zprávy splňující podmínku filtru. Vlastnosti zprávy (označované také jako Vlastnosti aplikace) se odesílají do kontejneru párů klíč-hodnota v každé zprávě telemetrie volitelně odesílané zařízeními, která používají sady SDK pro zařízení. Chcete-li vytvořit filtr vlastností zprávy, zadejte klíč vlastnosti zprávy, který hledáte, a zadejte podmínku. Exportují se jenom zprávy telemetrie s vlastnostmi, které odpovídají zadané podmínce filtru. Další informace o vlastnostech aplikace z IoT Hub docs
    Změny vlastností
    • Filtrovat podle názvu zařízení, ID zařízení, šablony zařízení a v případě, že je zařízení simulované
    • Filtrovat datový proud tak, aby obsahoval pouze změny vlastností, které splňují podmínky filtru
    Připojení zařízení
    • Filtrovat podle názvu zařízení, ID zařízení, šablony zařízení, organizací a v případě, že je zařízení simulované
    • Filtrovat Stream tak, aby obsahoval jenom změny ze zařízení s vlastnostmi, které odpovídají podmínkám filtru
    Životní cyklus zařízení
    • Filtrovat podle názvu zařízení, ID zařízení, šablony zařízení a v případě, že je zařízení zřízené, povoleno nebo simulované
    • Filtrovat Stream tak, aby obsahoval jenom změny ze zařízení s vlastnostmi, které odpovídají podmínkám filtru
    Životní cyklus šablon zařízení
    • Filtrovat podle šablony zařízení
  7. Volitelně můžete rozšířit exportované zprávy s dalšími metadaty páru klíč-hodnota. K dispozici jsou následující obohacení pro telemetrie, změny vlastností, připojení zařízení a typy exportu dat životního cyklu zařízení:

    • Vlastní řetězec: přidá do každé zprávy vlastní statický řetězec. Zadejte libovolný klíč a zadejte libovolnou hodnotu řetězce.
    • Vlastnost, která přidá do každé zprávy:
      • Metadata zařízení, jako je název zařízení, název šablony zařízení, povolený, organizace, zřízené a Simulovaná.
      • Aktuální zařízení nahlásilo vlastnost nebo cloudovou hodnotu do každé zprávy. Pokud je vyexportovaná zpráva ze zařízení, které nemá zadanou vlastnost, vyexportovaná zpráva nezíská obohacení.

Nakonfigurujte cíl exportu:

  1. Vyberte + cíl a přidejte cíl, který jste už vytvořili, nebo vyberte vytvořit nový.

  2. Chcete-li transformovat data před exportováním, vyberte + Transform. Další informace najdete v tématu transformace dat v aplikaci IoT Central pro export.

  3. Vyberte + cíl a přidejte až pět cílů do jednoho exportu.

  4. Po dokončení nastavení exportu vyberte Uložit. Po několika minutách se vaše data zobrazí ve vašich cílech.

Monitorování exportu

V IoT Central stránka pro Export dat umožňuje kontrolovat stav exportů. Azure monitor můžete použít také k zobrazení množství dat, která exportujete, a chyb exportu. Pro export a metriky stavu zařízení můžete v grafech v Azure Portal, pomocí REST API nebo pomocí dotazů v PowerShellu nebo v Azure CLI získat přístup. V současné době můžete monitorovat následující metriky exportu dat v Azure Monitor:

  • Počet zpráv, které jsou příchozí pro export před použitím filtrů.
  • Počet zpráv, které procházejí filtry.
  • Počet zpráv úspěšně exportovaných do cílových umístění.
  • Počet nalezených chyb.

Další informace najdete v tématu monitorování stavu aplikací.

Formáty dat

V následujících částech jsou popsány formáty exportovaných dat:

Formát telemetrie

Každá exportovaná zpráva obsahuje normalizovanou podobu celé zprávy odeslané zařízením v těle zprávy. Zpráva je ve formátu JSON a je kódovaná jako UTF-8. Mezi informace v každé zprávě patří:

  • applicationId: ID aplikace IoT Central.
  • messageSource: Zdroj zprávy – telemetry .
  • deviceId: ID zařízení, které odeslalo zprávu telemetrie.
  • schema: Název a verze schématu datové části.
  • templateId: ID šablony zařízení přidružené k zařízení.
  • enqueuedTime: Čas, kdy byla zpráva přijata IoT Central.
  • enrichments: Jakékoli obohacení nastavené na export.
  • module: Modul IoT Edge, který odeslal tuto zprávu. Toto pole se zobrazí pouze v případě, že zpráva pochází z modulu IoT Edge.
  • component: Komponenta, která odeslala tuto zprávu. Toto pole se zobrazí pouze v případě, že funkce odesílané ve zprávě byly modelovány jako součást v šabloně zařízení.
  • messageProperties: Další vlastnosti, které zařízení poslalo se zprávou. Tyto vlastnosti jsou někdy označovány jako Vlastnosti aplikace. Další informace najdete v dokumentaci IoT Hub.

pro Event Hubs a Service Bus IoT Central exportuje novou zprávu rychle po přijetí zprávy ze zařízení. Ve vlastnostech uživatele (také označovaných jako vlastnosti aplikace) každé zprávy iotcentral-device-idiotcentral-application-idiotcentral-message-source jsou automaticky zahrnuty, a.

Pro úložiště objektů BLOB se zprávy účtují a exportují jednou za minutu.

Následující příklad ukazuje exportovanou zprávu telemetrie:


{
    "applicationId": "1dffa667-9bee-4f16-b243-25ad4151475e",
    "messageSource": "telemetry",
    "deviceId": "1vzb5ghlsg1",
    "schema": "default@v1",
    "templateId": "urn:qugj6vbw5:___qbj_27r",
    "enqueuedTime": "2020-08-05T22:26:55.455Z",
    "telemetry": {
        "Activity": "running",
        "BloodPressure": {
            "Diastolic": 7,
            "Systolic": 71
        },
        "BodyTemperature": 98.73447010562934,
        "HeartRate": 88,
        "HeartRateVariability": 17,
        "RespiratoryRate": 13
    },
    "enrichments": {
      "userSpecifiedKey": "sampleValue"
    },
    "module": "VitalsModule",
    "component": "DeviceComponent",
    "messageProperties": {
      "messageProp": "value"
    }
}

Vlastnosti zprávy

Zprávy telemetrie mají vlastnosti pro metadata i datovou část telemetrie. Předchozí fragment kódu ukazuje příklady systémových zpráv, například deviceId a enqueuedTime . Další informace o vlastnostech systémové zprávy najdete v tématu systémové vlastnosti D2C zpráv o IoT Hub.

Pokud potřebujete do zpráv telemetrie přidat vlastní metadata, můžete do zpráv telemetrie přidat vlastnosti. Například je třeba přidat časové razítko, když zařízení vytvoří zprávu.

Následující fragment kódu ukazuje, jak přidat iothub-creation-time-utc vlastnost do zprávy při jejím vytváření na zařízení:

Důležité

Formát tohoto časového razítka musí být UTC bez informací o časovém pásmu. Například 2021-04-21T11:30:16Z je platný, 2021-04-21T11:30:16-07:00 je neplatný.

async function sendTelemetry(deviceClient, index) {
  console.log('Sending telemetry message %d...', index);
  const msg = new Message(
    JSON.stringify(
      deviceTemperatureSensor.updateSensor().getCurrentTemperatureObject()
    )
  );
  msg.properties.add("iothub-creation-time-utc", new Date().toISOString());
  msg.contentType = 'application/json';
  msg.contentEncoding = 'utf-8';
  await deviceClient.sendEvent(msg);
}

Následující fragment kódu ukazuje tuto vlastnost ve zprávě exportované do úložiště objektů BLOB:

{
  "applicationId":"5782ed70-b703-4f13-bda3-1f5f0f5c678e",
  "messageSource":"telemetry",
  "deviceId":"sample-device-01",
  "schema":"default@v1",
  "templateId":"urn:modelDefinition:mkuyqxzgea:e14m1ukpn",
  "enqueuedTime":"2021-01-29T16:45:39.143Z",
  "telemetry":{
    "temperature":8.341033560421833
  },
  "messageProperties":{
    "iothub-creation-time-utc":"2021-01-29T16:45:39.021Z"
  },
  "enrichments":{}
}

Formát změn vlastností

Každá zpráva nebo záznam představuje změny vlastností zařízení a cloudu. Mezi informace v exportované zprávě patří:

  • applicationId: ID aplikace IoT Central.
  • messageSource: Zdroj zprávy – properties .
  • messageType: Buď cloudPropertyChange , devicePropertyDesiredChange nebo devicePropertyReportedChange .
  • deviceId: ID zařízení, které odeslalo zprávu telemetrie.
  • schema: Název a verze schématu datové části.
  • enqueuedTime: Čas, kdy byla tato změna zjištěna IoT Central.
  • templateId: ID šablony zařízení přidružené k zařízení.
  • properties: Pole vlastností, které se změnily, včetně názvů vlastností a hodnot, které se změnily. Informace o komponentě a modulu jsou zahrnuty, pokud je vlastnost modelována v rámci součásti nebo modulu IoT Edge.
  • enrichments: Jakékoli obohacení nastavené na export.

v případě Event Hubs a Service Bus IoT Central exportuje data nových zpráv do centra událostí nebo Service Bus fronty nebo tématu téměř v reálném čase. Ve vlastnostech uživatele (také označovaných jako vlastnosti aplikace) každé zprávy iotcentral-device-idiotcentral-application-idiotcentral-message-source jsou automaticky zahrnuty,,, a iotcentral-message-type .

Pro úložiště objektů BLOB se zprávy účtují a exportují jednou za minutu.

Následující příklad ukazuje zprávu o změně exportovaných vlastností přijatou v Azure Blob Storage.

{
    "applicationId": "1dffa667-9bee-4f16-b243-25ad4151475e",
    "messageSource": "properties",
    "messageType": "cloudPropertyChange",
    "deviceId": "18a985g1fta",
    "schema": "default@v1",
    "templateId": "urn:qugj6vbw5:___qbj_27r",
    "enqueuedTime": "2020-08-05T22:37:32.942Z",
    "properties": [{
        "name": "MachineSerialNumber",
        "value": "abc",
        "module": "VitalsModule",
        "component": "DeviceComponent"
    }],
    "enrichments": {
        "userSpecifiedKey" : "sampleValue"
    }
}

Změny připojení zařízení – formát

Každá zpráva nebo záznam představuje událost připojení z jednoho zařízení. Mezi informace v exportované zprávě patří:

  • applicationId: ID aplikace IoT Central.
  • messageSource: Zdroj zprávy – deviceConnectivity .
  • messageType: Buď connected nebo disconnected .
  • deviceId: ID zařízení, které bylo změněno.
  • schema: Název a verze schématu datové části.
  • templateId: ID šablony zařízení přidružené k zařízení.
  • enqueuedTime: Čas, kdy došlo k této změně v IoT Central.
  • enrichments: Jakékoli obohacení nastavené na export.

v případě Event Hubs a Service Bus IoT Central exportuje data nových zpráv do centra událostí nebo Service Bus fronty nebo tématu téměř v reálném čase. Ve vlastnostech uživatele (také označovaných jako vlastnosti aplikace) každé zprávy iotcentral-device-idiotcentral-application-idiotcentral-message-source jsou automaticky zahrnuty,,, a iotcentral-message-type .

Pro úložiště objektů BLOB se zprávy účtují a exportují jednou za minutu.

Následující příklad ukazuje exportovanou zprávu o připojení zařízení přijatou v Azure Blob Storage.

{
  "applicationId": "1dffa667-9bee-4f16-b243-25ad4151475e",
  "messageSource": "deviceConnectivity",
  "messageType": "connected",
  "deviceId": "1vzb5ghlsg1",
  "schema": "default@v1",
  "templateId": "urn:qugj6vbw5:___qbj_27r",
  "enqueuedTime": "2021-04-05T22:26:55.455Z",
  "enrichments": {
    "userSpecifiedKey": "sampleValue"
  }
}

Formát změn životního cyklu zařízení

Každá zpráva nebo záznam představuje jednu změnu jednoho zařízení. Mezi informace v exportované zprávě patří:

  • applicationId: ID aplikace IoT Central.
  • messageSource: Zdroj zprávy – deviceLifecycle .
  • messageType: Typ změny, ke které došlo. Jedna z registered těchto deleted ů: , , , , , , a provisionedenableddisableddisplayNameChangeddeviceTemplateChanged .
  • deviceId: ID zařízení, které se změnilo.
  • schema: Název a verze schématu datové části.
  • templateId: ID šablony zařízení přidružené k zařízení.
  • enqueuedTime: Čas, kdy k této změně došlo v IoT Central.
  • enrichments: Jakákoli rozšíření nastavená pro export.

Například Event Hubs a Service Bus IoT Central data nových zpráv do centra událostí nebo Service Bus fronty nebo tématu v reálném čase. Ve vlastnostech uživatele (označuje se také jako vlastnosti aplikace) každé zprávy jsou iotcentral-device-id , iotcentral-application-id , a iotcentral-message-sourceiotcentral-message-type zahrnuty automaticky.

V případě úložiště objektů blob se zprávy dávkově a exportuje jednou za minutu.

Následující příklad ukazuje zprávu o exportu životního cyklu zařízení přijatou ve službě Azure Blob Storage.

{
  "applicationId": "1dffa667-9bee-4f16-b243-25ad4151475e",
  "messageSource": "deviceLifecycle",
  "messageType": "registered",
  "deviceId": "1vzb5ghlsg1",
  "schema": "default@v1",
  "templateId": "urn:qugj6vbw5:___qbj_27r",
  "enqueuedTime": "2021-01-01T22:26:55.455Z",
  "enrichments": {
    "userSpecifiedKey": "sampleValue"
  }
}

Formát změn životního cyklu šablony zařízení

Každá zpráva nebo záznam představuje jednu změnu v jedné publikované šabloně zařízení. Informace v exportované zprávě zahrnují:

  • applicationId: ID IoT Central aplikace.
  • messageSource: Zdroj zprávy – deviceTemplateLifecycle .
  • messageType: Buď createdupdated , nebo deleted .
  • schema: Název a verze schématu datové části.
  • templateId: ID šablony zařízení přidružené k zařízení.
  • enqueuedTime: Čas, kdy k této změně došlo v IoT Central.
  • enrichments: Jakákoli rozšíření nastavená pro export.

Například Event Hubs a Service Bus IoT Central data nových zpráv do centra událostí nebo Service Bus fronty nebo tématu v reálném čase. Ve vlastnostech uživatele (označuje se také jako vlastnosti aplikace) každé zprávy jsou iotcentral-device-id , iotcentral-application-id , a iotcentral-message-sourceiotcentral-message-type zahrnuty automaticky.

V případě úložiště objektů blob se zprávy dávkově a exportuje jednou za minutu.

Následující příklad ukazuje zprávu o exportu životního cyklu zařízení přijatou ve službě Azure Blob Storage.

{
  "applicationId": "1dffa667-9bee-4f16-b243-25ad4151475e",
  "messageSource": "deviceTemplateLifecycle",
  "messageType": "created",
  "schema": "default@v1",
  "templateId": "urn:qugj6vbw5:___qbj_27r",
  "enqueuedTime": "2021-01-01T22:26:55.455Z",
  "enrichments": {
    "userSpecifiedKey": "sampleValue"
  }
}

Porovnání starší verze exportu dat a exportu dat

Následující tabulka uvádí rozdíly mezi staršími funkcemi exportu a exportu dat:

Možnosti Export starších verzí dat Nový export dat
Dostupné datové typy Telemetrie, zařízení, šablony zařízení Telemetrie, změny vlastností, změny připojení zařízení, změny životního cyklu zařízení, změny životního cyklu šablony zařízení
Filtrování Žádné Závisí na exportu datového typu. V případě telemetrie filtrování podle telemetrie, vlastností zpráv a hodnot vlastností
Rozšiřování Žádné Obohacení o vlastní řetězec nebo hodnotu vlastnosti na zařízení
Cíle Azure Event Hubs, fronty a Service Bus azure, Azure Blob Storage Stejné jako u starší verze exportu dat a webhooků
Podporované verze aplikací V2, V3 Pouze v3
Itelná omezení Pět exportů na aplikaci, jeden cíl na export 10 exportů – cílová připojení na aplikaci

Další kroky

Teď, když víte, jak nakonfigurovat export dat, je doporučeným dalším krokem naučit se transformovat data uvnitř vaší IoT Central pro export.