Export dat IoT do služby Blob Storage

Tento článek popisuje, jak nakonfigurovat export dat pro odesílání dat do služby Blob Storage.

Pomocí této funkce můžete průběžně exportovat filtrovaná a rozšířená data IoT z aplikace IoT Central. Export dat dosílá změny téměř v reálném čase do jiných částí cloudového řešení, aby bylo k dispozici teplé přehledy, analýzy a úložiště.

Můžete například:

  • Téměř v reálném čase nepřetržitě exportujte telemetrii, změny vlastností, připojení zařízení, životní cyklus zařízení, životní cyklus šablony zařízení a data protokolu auditu ve formátu JSON.
  • Filtrováním datových proudů můžete exportovat data, která odpovídají vlastním podmínkám.
  • Rozšiřte datové proudy o vlastní hodnoty a hodnoty vlastností ze zařízení.
  • Transformujte datové proudy a upravte jejich tvar a obsah.

Tip

Když zapnete export dat, získáte od této chvíle jenom data. V současné době se data nedají načíst po dobu, kdy byl export dat vypnutý. Pokud chcete zachovat více historických dat, zapněte export dat co nejdříve.

Požadavky

Pokud chcete používat funkce exportu dat, musíte mít oprávnění k exportu dat .

Informace o správě exportu dat pomocí rozhraní IoT Central REST API najdete v tématu Správa exportů dat pomocí rozhraní IoT Central REST API.

Nastavení cíle exportu služby Blob Storage

IoT Central exportuje data jednou za minutu, přičemž každý soubor obsahuje 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}/{id-app}/{partition_id}/{YYYY}/{MM}/{dd}/{hh}/{mm}/{filename}
  • Změny vlastností: {container}/{id-app}/{partition_id}/{YYYY}/{MM}/{dd}/{hh}/{mm}/{filename}

Pokud chcete procházet exportované soubory v Azure Portal, přejděte na soubor a vyberte Upravit objekt blob.

Možnosti připojení

Cíle služby Blob Storage 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 pro váš prostředek neukládáte v připojovacím řetězci v aplikaci IoT Central.
  • Přihlašovací údaje jsou automaticky svázány s životností aplikace IoT Central.
  • Spravované identity své klíče zabezpečení pravidelně obměňují.

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

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

  • Obor definuje, kde můžete spravovanou identitu použít. Jako obor můžete například použít 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 aplikaci IoT Central udělí v cílové službě. Například aby aplikace IoT Central odesílala data do centra událostí, musí spravovaná identita přiřadit roli Azure Event Hubs Odesílatel dat.

Následující video obsahuje další informace o spravovaných identitách přiřazených systémem:

Upozornění

Pokud chcete exportovat do úložiště objektů blob, nepoužívejte přispěvatele účtu úložiště , jak je znázorněno ve videu. Místo toho použijte roli Přispěvatel dat v objektech blob služby Storage .

Tento článek popisuje, jak vytvořit spravovanou identitu v Azure Portal. K vytvoření spravované identity můžete použít také Azure CLI. 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, do které byste mohli exportovat, spusťte následující skript v prostředí Azure Cloud Shell Bash. Skript vytvoří skupinu prostředků, účet služby Azure Storage a kontejner objektů blob. Potom vytiskne připojovací řetězec, který se použije při konfiguraci exportu dat v IoT Central:

# Replace the storage account name with your own unique value
SA=yourstorageaccount$RANDOM
CN=exportdata
RG=centralexportresources
LOCATION=eastus

az group create -n $RG --location $LOCATION
az storage account create --name $SA --resource-group $RG --location $LOCATION --sku Standard_LRS
az storage container create --account-name $SA --resource-group $RG --name $CN

CS=$(az storage account show-connection-string --resource-group $RG --name $SA --query "connectionString" --output tsv)

echo "Storage connection string: $CS"

Můžete si přečíst další informace o vytváření nových účtů Azure Blob Storage nebo Azure Data Lake Storage účtů úložiště v2. Export dat může zapisovat data jenom do účtů úložiště, které podporují objekty blob bloku. Následující tabulka 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

Vytvoření cíle služby Blob Storage v IoT Central na stránce exportu dat :

  1. Vyberte + Nový cíl.

  2. Jako typ cíle vyberte Azure Blob Storage.

  3. Jako typ autorizace vyberte Připojovací řetězec .

  4. Vložte připojovací řetězec pro prostředek služby Blob Storage a v případě potřeby zadejte název kontejneru s rozlišováním velkých a malých písmen.

  5. Vyberte Uložit.

Nastavení exportu dat

Teď, když máte cíl pro export dat, nastavte export dat v aplikaci IoT Central:

  1. Přihlaste se k aplikaci IoT Central.

  2. V levém podokně vyberte Export dat.

    Tip

    Pokud v levém podokně možnost Export dat nevidíte, nemáte oprávnění ke konfiguraci exportu dat v aplikaci. Požádejte správce, aby nastavil export dat.

  3. Vyberte + Nový export.

  4. Zadejte zobrazovaný název nového exportu a ujistěte se, že je export dat povolený.

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

    Datový typ Popis Formát dat
    Telemetrie Exportujte telemetrické zprávy ze zařízení téměř v reálném čase. Každá exportovaná zpráva obsahuje úplný obsah původní zprávy zařízení normalizovaný. Formát zpráv telemetrie
    Změny vlastností Export změn vlastností zařízení a cloudu téměř v reálném čase U vlastností zařízení jen pro čtení se změny ohlášených hodnot exportují. U vlastností pro čtení i zápis se vyexportují hlášené i požadované hodnoty. Změna formátu zprávy o změně vlastnosti
    Připojení zařízení Export událostí připojení a odpojení zařízení Formát zprávy o připojení zařízení
    Životní cyklus zařízení Exportuje události zařízení zaregistrované, odstraněné, zřízené, povolené, zakázané, displayNameChanged a deviceTemplateChanged. Formát zprávy o změnách životního cyklu zařízení
    Životní cyklus šablony zařízení Export publikovaných změn šablon zařízení, včetně vytvořených, aktualizovaných a odstraněných. Formát zprávy o změnách životního cyklu šablony zařízení
    Protokoly auditu Protokoly uživatelem iniciovaných aktualizací entit v aplikaci Další informace najdete v tématu Použití protokolů auditu ke sledování aktivity v aplikaci IoT Central. Formát zprávy protokolu auditu
  6. Volitelně můžete přidat filtry, abyste snížili množství exportovaných dat. Pro každý typ exportu dat jsou k dispozici různé typy filtrů:

    Typ dat Dostupné filtry
    Telemetrie
    • Filtrování podle názvu zařízení, ID zařízení, šablony zařízení a toho, jestli je zařízení simulované
    • Filtrovat stream tak, aby obsahoval pouze telemetrii, která splňuje podmínky filtru
    • Filtrování streamu tak, aby obsahoval pouze telemetrii ze zařízení s vlastnostmi odpovídajícími podmínkám filtru
    • Filtrujte stream tak, aby obsahoval pouze telemetrii, která má vlastnosti zprávy splňující podmínku filtru. Vlastnosti zprávy (označované také jako vlastnosti aplikace) se odesílají v balíku párů klíč-hodnota u každé telemetrické zprávy, kterou volitelně odesílají zařízení, která používají sady SDK zařízení. Pokud chcete vytvořit filtr vlastností zprávy, zadejte hledaný klíč vlastnosti zprávy a zadejte podmínku. Exportují se pouze telemetrické zprávy s vlastnostmi, které odpovídají zadané podmínce filtru. Další informace o vlastnostech aplikace najdete v dokumentaci k IoT Hub.
    Změny vlastností
    • Filtrování podle názvu zařízení, ID zařízení, šablony zařízení a toho, jestli je zařízení simulované
    • Filtrovat stream tak, aby obsahoval pouze změny vlastností, které splňují podmínky filtru
    Připojení zařízení
    • Filtrování podle názvu zařízení, ID zařízení, šablony zařízení, organizací a toho, jestli je zařízení simulované
    • Filtrovat stream tak, aby obsahoval pouze změny ze zařízení s vlastnostmi odpovídajícími podmínkám filtru.
    Životní cyklus zařízení
    • Filtrování podle názvu zařízení, ID zařízení, šablony zařízení a toho, jestli je zařízení zřízené, povolené nebo simulované
    • Filtrovat stream tak, aby obsahoval pouze změny ze zařízení s vlastnostmi odpovídajícími podmínkám filtru.
    Životní cyklus šablony zařízení
    • Filtrovat podle šablony zařízení
    Protokoly auditu
  7. Volitelně můžete exportovat zprávy rozšířit o další metadata páru klíč-hodnota. Pro telemetrii, změny vlastností, připojení zařízení a typy exportu dat životního cyklu zařízení jsou k dispozici následující rozšíření:

    • Vlastní řetězec: Přidá do každé zprávy vlastní statický řetězec. Zadejte libovolný klíč a libovolnou řetězcovou hodnotu.
    • Vlastnost, která se přidá ke každé zprávě:
      • Metadata zařízení, jako je název zařízení, název šablony zařízení, povoleno, organizace, zřízené a simulované.
      • Aktuální hodnota vlastnosti nebo cloudové vlastnosti zařízení u každé zprávy Pokud exportovaná zpráva pochází ze zařízení, které nemá zadanou vlastnost, exportovaná zpráva rozšíření nezísklo.

Konfigurace cíle exportu:

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

  2. Pokud chcete data před exportem transformovat, vyberte + Transformovat. Další informace najdete v tématu Transformace dat v aplikaci IoT Central pro export.

  3. Pokud chcete do jednoho exportu přidat až pět cílů, vyberte + Cíl .

  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

Na stránce exportu dat ve službě IoT Central můžete zkontrolovat stav exportů. Pomocí služby Azure Monitor můžete také zjistit, kolik dat exportujete a případné chyby exportu. K metrikám exportu a stavu zařízení můžete přistupovat v grafech v Azure Portal, pomocí rozhraní REST API nebo pomocí dotazů v PowerShellu nebo Azure CLI. V současné době můžete ve službě Azure Monitor monitorovat následující metriky exportu dat:

  • Počet příchozích zpráv, které se mají exportovat, než se použijí filtry
  • Počet zpráv, které procházejí filtry
  • Počet zpráv úspěšně exportovaných do cílů
  • Počet nalezených chyb

Další informace najdete v tématu Monitorování stavu aplikace.

Formáty dat

Následující části popisují formáty exportovaných dat:

Formát telemetrie

Každá exportovaná zpráva obsahuje normalizovaný tvar celé zprávy, kterou zařízení odeslalo v textu zprávy. Zpráva je ve formátu JSON a kódovaná jako UTF-8. Informace v každé zprávě zahrnují:

  • applicationId: ID aplikace IoT Central.
  • messageSource: Zdroj zprávy – telemetry.
  • deviceId: ID zařízení, které odeslalo telemetrická zpráva.
  • schema: Název a verze schématu datové části.
  • templateId: ID šablony zařízení přiřazené k zařízení.
  • enqueuedTime: Čas, kdy služba IoT Central přijala tuto zprávu.
  • enrichments: Všechna rozšíření nastavená pro export.
  • module: Modul IoT Edge, který tuto zprávu odeslal. Toto pole se zobrazí jenom 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 odeslané ve zprávě byly modelovány jako součást v šabloně zařízení.
  • messageProperties: Další vlastnosti, které zařízení odeslalo se zprávou. Tyto vlastnosti se někdy označují jako vlastnosti aplikace. Další informace najdete v dokumentaci k IoT Hub.

Ve službě Blob Storage se zprávy dávkují a exportují jednou za minutu.

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


{
    "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, jako deviceId jsou a enqueuedTime. Další informace o vlastnostech systémových zpráv najdete v tématu Systémové vlastnosti IoT Hub zpráv D2C.

Pokud potřebujete do zpráv telemetrie přidat vlastní metadata, můžete do zpráv telemetrie přidat vlastnosti. Když zařízení vytvoří zprávu, musíte například přidat časové razítko.

Následující fragment kódu ukazuje, jak přidat iothub-creation-time-utc vlastnost do zprávy při jejím vytvoř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);
}

Formát změn vlastností

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

  • applicationId: ID aplikace IoT Central.
  • messageSource: Zdroj zprávy – properties.
  • messageType: , cloudPropertyChangedevicePropertyDesiredChangenebo devicePropertyReportedChange.
  • deviceId: ID zařízení, které odeslalo telemetrická zpráva.
  • schema: Název a verze schématu datové části.
  • enqueuedTime: Čas, kdy služba IoT Central tuto změnu zjistila.
  • templateId: ID šablony zařízení přiřazené 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 komponenty nebo IoT Edge modulu.
  • enrichments: Všechna rozšíření nastavená při exportu.

Ve službě Blob Storage se zprávy dávkují a exportují jednou za minutu.

Následující fragment kódu ukazuje tuto vlastnost ve zprávě exportované do služby Blob Storage:

{
  "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":{}
}

Změna formátu připojení zařízení

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

  • 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řiřazené k zařízení.
  • enqueuedTime: Čas, kdy došlo k této změně v IoT Central.
  • enrichments: Všechna rozšíření nastavená při exportu.

Ve službě Blob Storage se zprávy dávkují 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í. Informace v exportované zprávě zahrnují:

  • applicationId: ID aplikace IoT Central.
  • messageSource: Zdroj zprávy – deviceLifecycle.
  • messageType: Typ změny, ke které došlo. Jedna z: registered, deleted, provisioned, enableddisabled, , displayNameChangeda deviceTemplateChanged.
  • deviceId: ID zařízení, které bylo změněno.
  • schema: Název a verze schématu datové části.
  • templateId: ID šablony zařízení přiřazené k zařízení.
  • enqueuedTime: Čas, kdy došlo k této změně v IoT Central.
  • enrichments: Všechna rozšíření nastavená při exportu.

Ve službě Blob Storage se zprávy dávkují a exportují jednou za minutu.

Následující příklad ukazuje zprávu o exportu životního cyklu zařízení přijaté v 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 jedné publikované šablony zařízení. Informace v exportované zprávě zahrnují:

  • applicationId: ID aplikace IoT Central.
  • messageSource: Zdroj zprávy – deviceTemplateLifecycle.
  • messageType: , createdupdatednebo deleted.
  • schema: Název a verze schématu datové části.
  • templateId: ID šablony zařízení přiřazené k zařízení.
  • enqueuedTime: Čas, kdy došlo k této změně v IoT Central.
  • enrichments: Všechna rozšíření nastavená při exportu.

Ve službě Blob Storage se zprávy dávkují a exportují jednou za minutu.

Následující příklad ukazuje zprávu o exportu životního cyklu zařízení přijaté v 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"
  }
}

Formát protokolu auditu

Každá zpráva protokolu auditu představuje uživatelem iniciovanou změnu auditovatelné entity v aplikaci IoT Central. Informace v exportované zprávě zahrnují:

  • actor: Informace o uživateli, který entitu upravil.
  • applicationId: ID aplikace IoT Central.
  • messageSource: Zdroj zprávy – audit.
  • messageType: Typ změny, ke které došlo. Jeden z: updated, created, . deleted
  • updated: Je k dispozici pouze v případě, že messageType je updated. Poskytuje další podrobnosti o aktualizaci.
  • resource: Podrobnosti o upravené entitě.
  • schema: Název a verze schématu datové části.
  • deviceId: ID zařízení, které bylo změněno.
  • enqueuedTime: Čas, kdy došlo k této změně v IoT Central.
  • enrichments: Všechna rozšíření nastavená při exportu.

Následující příklad ukazuje exportovanou zprávu protokolu auditu přijatou v Azure Blob Storage:

{
  "actor": {
    "id": "test-audit",
    "type": "apiToken"
    },
  "applicationId": "570c2d7b-1111-2222-abcd-000000000000",
  "enqueuedTime": "2022-07-25T21:54:40.000Z",
  "enrichments": {},
  "messageSource": "audit",
  "messageType": "created",
  "resource": {
    "displayName": "Sensor 1",
    "id": "sensor",
    "type": "device"    
  },
  "schema": "default@v1"
}

Další kroky

Teď, když víte, jak exportovat do služby Blob Storage, je dalším navrhovaným krokem informace o exportu do služby Service Bus.