IoT-gegevens exporteren naar bestemmingen in AzureExport IoT data to destinations in Azure

Dit onderwerp is van toepassing op beheerders.This topic applies to administrators.

In dit artikel wordt beschreven hoe u de functie voor het exporteren van continue gegevens in Azure IoT Central gebruiken om uw gegevens te exporteren naar Azure Event Hubs, Azure Service Busof Azure Blob-opslagexemplaren.This article describes how to use the continuous data export feature in Azure IoT Central to export your data to Azure Event Hubs, Azure Service Bus, or Azure Blob storage instances. Gegevens worden geëxporteerd in JSON-indeling en kunnen telemetrie, apparaatinformatie en apparaatsjabloongegevens bevatten.Data is exported in JSON format and can include telemetry, device information, and device template information. Gebruik de geëxporteerde gegevens voor:Use the exported data for:

  • Inzichten en analyses van warme paden.Warm-path insights and analytics. Deze optie omvat het activeren van aangepaste regels in Azure Stream Analytics, het activeren van aangepaste werkstromen in Azure Logic Apps of het doorgeven via Azure-functies om te worden getransformeerd.This option includes triggering custom rules in Azure Stream Analytics, triggering custom workflows in Azure Logic Apps, or passing it through Azure Functions to be transformed.
  • Cold-path analytics zoals trainingsmodellen in Azure Machine Learning of langetermijntrendanalyse in Microsoft Power BI.Cold-path analytics such as training models in Azure Machine Learning or long-term trend analysis in Microsoft Power BI.

Notitie

Wanneer u continue gegevensexport inschakelt, krijgt u vanaf dat moment alleen de gegevens.When you turn on continuous data export, you get only the data from that moment onward. Momenteel kunnen gegevens niet worden opgehaald voor een tijd waarin continue gegevensexporteren was uitgeschakeld.Currently, data can't be retrieved for a time when continuous data export was off. Als u meer historische gegevens wilt bewaren, schakelt u continue gegevensexport vroegtijdig in.To retain more historical data, turn on continuous data export early.

VereistenPrerequisites

U moet een beheerder zijn in uw IoT Central-toepassing of machtigingen voor het exporteren van gegevens hebben.You must be an administrator in your IoT Central application, or have Data export permissions.

Exportbestemming instellenSet up export destination

Uw exportbestemming moet bestaan voordat u uw continue gegevensexport configureert.Your export destination must exist before you configure your continuous data export.

De Event Hubs-naamruimte makenCreate Event Hubs namespace

Als u geen bestaande naamruimte voor gebeurtenishubs hebt om naar te exporteren, voert u de volgende stappen uit:If you don't have an existing Event Hubs namespace to export to, follow these steps:

  1. Maak een nieuwe naamruimte voor gebeurtenishubs in de Azure-portal.Create a new Event Hubs namespace in the Azure portal. Meer informatie vindt u in Azure Event Hubs-documenten.You can learn more in Azure Event Hubs docs.

  2. Kies een abonnement.Choose a subscription. U gegevens exporteren naar andere abonnementen die niet in hetzelfde abonnement zitten als uw IoT Central-toepassing.You can export data to other subscriptions that are not in the same subscription as your IoT Central application. U maakt in dit geval verbinding via een verbindingstekenreeks.You connect using a connection string in this case.

  3. Maak een gebeurtenishub in de naamruimte van uw gebeurtenishubs.Create an event hub in your Event Hubs namespace. Ga naar je naamruimte en selecteer + Gebeurtenishub bovenaan om een gebeurtenishub-exemplaar te maken.Go to your namespace, and select + Event Hub at the top to create an event hub instance.

Naamruimte servicebus makenCreate Service Bus namespace

Als u geen bestaande naamruimte van servicebus hebt om naar te exporteren, voert u de volgende stappen uit:If you don't have an existing Service Bus namespace to export to, follow these steps:

  1. Maak een nieuwe naamruimte voor servicebus in de Azure-portal.Create a new Service Bus namespace in the Azure portal. Meer informatie vindt u in Azure Service Bus-documenten.You can learn more in Azure Service Bus docs.

  2. Kies een abonnement.Choose a subscription. U gegevens exporteren naar andere abonnementen die niet in hetzelfde abonnement zitten als uw IoT Central-toepassing.You can export data to other subscriptions that are not in the same subscription as your IoT Central application. U maakt in dit geval verbinding via een verbindingstekenreeks.You connect using a connection string in this case.

  3. Ga naar de naamruimte van uw servicebus en selecteer + Wachtrij of + Onderwerp bovenaan om een wachtrij of onderwerp te maken om naar te exporteren.Go to your Service Bus namespace, and select + Queue or + Topic at the top to create a queue or topic to export to.

Wanneer u ServiceBus als exportbestemming kiest, mogen de wachtrijen en onderwerpen geen sessies of dubbele detectie hebben ingeschakeld.When you choose Service Bus as an export destination, the queues and topics must not have Sessions or Duplicate Detection enabled. Als een van deze opties is ingeschakeld, worden sommige berichten niet in uw wachtrij of onderwerp weergegeven.If either of those options are enabled, some messages won't arrive in your queue or topic.

Een opslagaccount makenCreate storage account

Als u geen bestaand Azure Storage-account hebt om naar te exporteren, voert u de volgende stappen uit:If you don't have an existing Azure Storage account to export to, follow these steps:

  1. Maak een nieuw opslagaccount in de Azure-portal.Create a new storage account in the Azure portal. Meer informatie over het maken van nieuwe Azure Blob Storage-accounts of Azure Data Lake Storage v2-opslagaccounts.You can learn more about creating new Azure Blob Storage accounts or Azure Data Lake Storage v2 storage accounts. Het exporteren van gegevens kan alleen gegevens schrijven naar opslagaccounts die blokblobs ondersteunen.Data export can only write data to storage accounts that support block blobs. Hieronder volgt een lijst met bekende compatibele typen opslagaccounts:The following is a list of known compatible types of storage accounts:

    PrestatielaagPerformance Tier AccounttypeAccount Type
    StandardStandard Algemeen doel V2General Purpose V2
    StandardStandard Algemeen doel V1General Purpose V1
    StandardStandard Blob StorageBlob Storage
    PremiumPremium Blob-opslag blokkerenBlock Blob Storage
  2. Maak een container in uw opslagaccount.Create a container in your storage account. Ga naar uw opslagaccount.Go to your storage account. Selecteer Blobs onder Blob-servicedoor Blobs bladeren.Under Blob Service, select Browse Blobs. Selecteer + Container bovenaan om een nieuwe container te maken.Select + Container at the top to create a new container.

Continue gegevensexport instellenSet up continuous data export

Nu u een bestemming hebt om gegevens naar te exporteren, voert u deze stappen uit om continue gegevensexport in te stellen.Now that you have a destination to export data to, follow these steps to set up continuous data export.

  1. Meld u aan bij uw IoT Central-toepassing.Sign in to your IoT Central application.

  2. Selecteer Gegevens exporterenin het linkerdeelvenster .In the left pane, select Data Export.

    Notitie

    Als u Gegevensexporteren niet in het linkerdeelvenster ziet, hebt u geen machtigingen om gegevensexport in uw app te configureren.If you don't see Data Export in the left pane, then you don't have permissions to configure data export in your app. Praat met een beheerder om gegevensexport in te stellen.Talk to an administrator to set up data export.

  3. Selecteer de knop + Nieuw rechtsboven.Select the + New button in the top right. Kies een van Azure Event Hubs, Azure Service Busof Azure Blob-opslag als bestemming van uw export.Choose one of Azure Event Hubs, Azure Service Bus, or Azure Blob storage as the destination of your export. Het maximum aantal uitvoer per aanvraag is vijf.The maximum number of exports per application is five.

    Nieuwe continue gegevensexport maken

  4. Selecteer in de vervolgkeuzelijst de naamruimte van gebeurtenishubs, naamruimte servicebus, naamruimte voor opslagaccountof Voer een verbindingstekenreeks in.In the drop-down list box, select your Event Hubs namespace, Service Bus namespace, Storage Account namespace, or Enter a connection string.

    • U ziet alleen naamruimten voor opslagaccounts, gebeurtenishubs en naamruimten van servicebus in hetzelfde abonnement als uw IoT Central-toepassing.You only see Storage Accounts, Event Hubs namespaces, and Service Bus namespaces in the same subscription as your IoT Central application. Als u wilt exporteren naar een bestemming buiten dit abonnement, kiest u Een verbindingstekenreeks invoeren en ziet u stap 5.If you want to export to a destination outside of this subscription, choose Enter a connection string and see step 5.
    • Voor apps die zijn gemaakt met behulp van het gratis prijsplan, is de enige manier om continue gegevensexport te configureren via een verbindingstekenreeks.For apps created using the free pricing plan, the only way to configure continuous data export is through a connection string. Apps met het gratis prijsplan hebben geen gekoppeld Azure-abonnement.Apps on the free pricing plan don't have an associated Azure subscription.

    Nieuwe gebeurtenishub maken

  5. (Optioneel) Als u Een verbindingstekenreeks invoerenhebt gekozen, wordt er een nieuw vak weergegeven dat u de verbindingstekenreeks plakken.(Optional) If you chose Enter a connection string, a new box appears for you to paste your connection string. Ga als u op zoek naar de verbindingstekenreeks voor uw:To get the connection string for your:

    • Gebeurtenishubs of servicebus, ga naar de naamruimte in de Azure-portal.Event Hubs or Service Bus, go to the namespace in the Azure portal.
      • Selecteer Onder Instellingende optie Beleid voor gedeelde toegangUnder Settings, select Shared Access Policies
      • Kies de standaard RootManageSharedAccessKey of maak een nieuweChoose the default RootManageSharedAccessKey or create a new one
      • De primaire of secundaire verbindingstekenreeks kopiërenCopy either the primary or secondary connection string
    • Opslagaccount, ga naar het opslagaccount in de Azure-portal:Storage account, go to the Storage account in the Azure portal:
      • Selecteer Access-toetsen onder InstellingenUnder Settings, select Access keys
      • De toets1-verbindingstekenreeks of de toets2-verbindingstekenreeks kopiërenCopy either the key1 connection string or the key2 connection string
  6. Kies een gebeurtenishub, wachtrij, onderwerp of container in de vervolgkeuzelijst.Choose an event hub, queue, topic, or container from the drop-down list box.

  7. Kies onder Gegevens om te exporterende typen gegevens die u wilt exporteren door het type in te stellen op Aan.Under Data to export, choose the types of data to export by setting the type to On.

  8. Als u continue gegevensexport wilt inschakelen, controleert u of de ingeschakelde toggle ingeschakeld is ingeschakeld.To turn on continuous data export, make sure the Enabled toggle is On. Selecteer Opslaan.Select Save.

  9. Na een paar minuten worden uw gegevens weergegeven in de door u gekozen bestemming.After a few minutes, your data appears in your chosen destination.

Inhoud en indeling exporterenExport contents and format

Geëxporteerde telemetriegegevens bevatten het volledige bericht dat uw apparaten naar IoT Central hebben verzonden, niet alleen de telemetriewaarden zelf.Exported telemetry data contains the entirety of the message your devices sent to IoT Central, not just the telemetry values themselves. Geëxporteerde apparatengegevens bevatten wijzigingen in eigenschappen en metagegevens van alle apparaten en geëxporteerde apparaatsjablonen bevatten wijzigingen in alle apparaatsjablonen.Exported devices data contains changes to properties and metadata of all devices, and exported device templates contains changes to all device templates.

Voor eventhubs en servicebus worden gegevens in bijna realtime geëxporteerd.For Event Hubs and Service Bus, data is exported in near-realtime. De gegevens zitten in de eigenschap body en zijn in JSON-formaat (zie hieronder voor voorbeelden).The data sits in the body property and is in JSON format (see below for examples).

Voor Blob Storage worden gegevens één keer per minuut geëxporteerd, waarbij elk bestand de batch met wijzigingen bevat sinds het laatst geëxporteerde bestand.For Blob Storage, data is exported once per minute, with each file containing the batch of changes since the last exported file. Geëxporteerde gegevens worden in drie mappen in JSON-indeling geplaatst.Exported data is placed in three folders in JSON format. De standaardpaden in uw opslagaccount zijn:The default paths in your storage account are:

  • Telemetrie: {container}/{app-id}/telemetrie/{YYYY}/{MM}/{dd}/{hh}/{mm}/{filename}Telemetry: {container}/{app-id}/telemetry/{YYYY}/{MM}/{dd}/{hh}/{mm}/{filename}
  • Apparaten: {container}/{app-id}/devices/{YYYY}/{MM}/{dd}/{hh}/{mm}/{filename}Devices: {container}/{app-id}/devices/{YYYY}/{MM}/{dd}/{hh}/{mm}/{filename}
  • Apparaatsjablonen: {container}/{app-id}/deviceTemplates/{YYYY}/{MM}/{dd}/{hh}/{mm}/{filename}Device templates: {container}/{app-id}/deviceTemplates/{YYYY}/{MM}/{dd}/{hh}/{mm}/{filename}

U door de geëxporteerde bestanden in de Azure-portal bladeren door naar het bestand te navigeren en het tabblad Blob bewerken te kiezen.You can browse the exported files in the Azure portal by navigating to the file and choosing the Edit blob tab.

TelemetrieTelemetry

Voor gebeurtenishubs en servicebus wordt een nieuw bericht snel geëxporteerd nadat IoT Central het bericht van een apparaat heeft ontvangen en elk geëxporteerd bericht het volledige bericht bevat dat het apparaat in de eigenschap Body in JSON-indeling heeft verzonden.For Event Hubs and Service Bus, a new message is exported quickly after IoT Central receives the message from a device, and each exported message contains the full message the device sent in the body property in JSON format.

Voor Blob Storage worden berichten één keer per minuut gebatcht en geëxporteerd.For Blob Storage, messages are batched and exported once per minute. De geëxporteerde bestanden gebruiken dezelfde indeling als de berichtbestanden die worden geëxporteerd door de routeringsroute van het IoT Hub-bericht naar blobopslag.The exported files use the same format as the message files exported by IoT Hub message routing to blob storage.

Notitie

Controleer bij Blob-opslag of uw apparaten contentType: application/JSON berichten contentEncoding:utf-8 verzenden utf-16 utf-32die berichten verzenden en (of , ).For Blob Storage, ensure that your devices are sending messages that have contentType: application/JSON and contentEncoding:utf-8 (or utf-16, utf-32). Zie de IoT Hub-documentatie voor een voorbeeld.See the IoT Hub documentation for an example.

Het apparaat dat de telemetrie heeft verzonden, wordt vertegenwoordigd door de apparaat-id (zie de volgende secties).The device that sent the telemetry is represented by the device ID (see the following sections). Als u de namen van de apparaten wilt krijgen, exporteert u apparaatgegevens en correleert u elk bericht met behulp van de verbindingDeviceId die overeenkomt met de deviceId van het apparaatbericht.To get the names of the devices, export device data and correlate each message by using the connectionDeviceId that matches the deviceId of the device message.

Dit is een voorbeeldbericht dat is ontvangen in een gebeurtenishub of servicebuswachtrij of -onderwerp.This is an example message received in an event hub or Service Bus queue or topic.

{
  "body":{
    "temp":67.96099945281145,
    "humid":58.51139305465015,
    "pm25":36.91162432340187
  },
  "annotations":{
    "iothub-connection-device-id":"<deviceId>",
    "iothub-connection-auth-method":"{\"scope\":\"hub\",\"type\":\"sas\",\"issuer\":\"iothub\",\"acceptingIpFilterRule\":null}",
    "iothub-connection-auth-generation-id":"<generationId>",
    "iothub-enqueuedtime":1539381029965,
    "iothub-message-source":"Telemetry",
    "x-opt-sequence-number":25325,
    "x-opt-offset":"<offset>",
    "x-opt-enqueued-time":1539381030200
  },
  "sequenceNumber":25325,
  "enqueuedTimeUtc":"2018-10-12T21:50:30.200Z",
  "offset":"<offset>",
  "properties":{
    "content_type":"application/json",
    "content_encoding":"utf-8"
  }
}

Dit is een voorbeeldrecord dat naar blobopslag wordt geëxporteerd:This is an example record exported to blob storage:

{
  "EnqueuedTimeUtc":"2019-09-26T17:46:09.8870000Z",
  "Properties":{

  },
  "SystemProperties":{
    "connectionDeviceId":"<deviceid>",
    "connectionAuthMethod":"{\"scope\":\"device\",\"type\":\"sas\",\"issuer\":\"iothub\",\"acceptingIpFilterRule\":null}",
    "connectionDeviceGenerationId":"637051167384630591",
    "contentType":"application/json",
    "contentEncoding":"utf-8",
    "enqueuedTime":"2019-09-26T17:46:09.8870000Z"
  },
  "Body":{
    "temp":49.91322758395974,
    "humid":49.61214852573155,
    "pm25":25.87332214661367
  }
}

ApparatenDevices

Elk bericht of record in een momentopname vertegenwoordigt een of meer wijzigingen in een apparaat en de eigenschappen van het apparaat en de cloud sinds het laatst geëxporteerde bericht.Each message or record in a snapshot represents one or more changes to a device and its device and cloud properties since the last exported message. Dit omvat:This includes:

  • idvan het apparaat in IoT Centralid of the device in IoT Central
  • displayNamevan het apparaatdisplayName of the device
  • Apparaatsjabloon-id ininstanceOfDevice template Id in instanceOf
  • simulatedvlag, true als het apparaat een gesimuleerd apparaat issimulated flag, true if the device is a simulated device
  • provisionedvlag, waar als het apparaat is ingerichtprovisioned flag, true if the device has been provisioned
  • approvedvlag, true als het apparaat is goedgekeurd om gegevens te verzendenapproved flag, true if the device has been approved to send data
  • EigenschapswaardenProperty values
  • propertiesinclusief waardevan apparaat- en cloudeigenschappenproperties including device and cloud properties values

Verwijderde apparaten worden niet geëxporteerd.Deleted devices aren't exported. Momenteel zijn er geen indicatoren in geëxporteerde berichten voor verwijderde apparaten.Currently, there are no indicators in exported messages for deleted devices.

Voor gebeurtenishubs en servicebus worden berichten met apparaatgegevens in bijna realtime verzonden naar uw gebeurtenishub of servicebuswachtrij of -onderwerp, zoals deze wordt weergegeven in IoT Central.For Event Hubs and Service Bus, messages containing device data are sent to your event hub or Service Bus queue or topic in near real-time, as it appears in IoT Central.

Voor Blob Storage wordt een nieuwe momentopname met alle wijzigingen sinds de laatste geschreven keer per minuut geëxporteerd.For Blob Storage, a new snapshot containing all the changes since the last one written is exported once per minute.

Dit is een voorbeeldbericht over gegevens over apparaten en eigenschappen in de gebeurtenishub of servicebuswachtrij of -onderwerp:This is an example message about devices and properties data in event hub or Service Bus queue or topic:

{
  "body":{
    "id": "<device Id>",
    "etag": "<etag>",
    "displayName": "Sensor 1",
    "instanceOf": "<device template Id>",
    "simulated": false,
    "provisioned": true,
    "approved": true,
    "properties": {
        "sensorComponent": {
            "setTemp": "30",
            "fwVersion": "2.0.1",
            "status": { "first": "first", "second": "second" },
            "$metadata": {
                "setTemp": {
                    "desiredValue": "30",
                    "desiredVersion": 3,
                    "desiredTimestamp": "2020-02-01T17:15:08.9284049Z",
                    "ackVersion": 3
                },
                "fwVersion": { "ackVersion": 3 },
                "status": {
                    "desiredValue": {
                        "first": "first",
                        "second": "second"
                    },
                    "desiredVersion": 2,
                    "desiredTimestamp": "2020-02-01T17:15:08.9284049Z",
                    "ackVersion": 2
                }
            },
            
        }
    },
    "installDate": { "installDate": "2020-02-01" }
},
  "annotations":{
    "iotcentral-message-source":"devices",
    "x-opt-partition-key":"<partitionKey>",
    "x-opt-sequence-number":39740,
    "x-opt-offset":"<offset>",
    "x-opt-enqueued-time":1539274959654
  },
  "partitionKey":"<partitionKey>",
  "sequenceNumber":39740,
  "enqueuedTimeUtc":"2020-02-01T18:14:49.3820326Z",
  "offset":"<offset>"
}

Dit is een voorbeeldmomentopname met apparaten en eigenschappengegevens in Blob Storage.This is an example snapshot containing devices and properties data in Blob Storage. Geëxporteerde bestanden bevatten één regel per record.Exported files contain a single line per record.

{
  "id": "<device Id>",
  "etag": "<etag>",
  "displayName": "Sensor 1",
  "instanceOf": "<device template Id>",
  "simulated": false,
  "provisioned": true,
  "approved": true,
  "properties": {
      "sensorComponent": {
          "setTemp": "30",
          "fwVersion": "2.0.1",
          "status": { "first": "first", "second": "second" },
          "$metadata": {
              "setTemp": {
                  "desiredValue": "30",
                  "desiredVersion": 3,
                  "desiredTimestamp": "2020-02-01T17:15:08.9284049Z",
                  "ackVersion": 3
              },
              "fwVersion": { "ackVersion": 3 },
              "status": {
                  "desiredValue": {
                      "first": "first",
                      "second": "second"
                  },
                  "desiredVersion": 2,
                  "desiredTimestamp": "2020-02-01T17:15:08.9284049Z",
                  "ackVersion": 2
              }
          },
          
      }
  },
  "installDate": { "installDate": "2020-02-01" }
}

ApparaatsjablonenDevice templates

Elk bericht of momentopnamerecord vertegenwoordigt een of meer wijzigingen in een gepubliceerde apparaatsjabloon sinds het laatst geëxporteerde bericht.Each message or snapshot record represents one or more changes to a published device template since the last exported message. Informatie die in elk bericht of record wordt verzonden, omvat:Information sent in each message or record includes:

  • idvan de apparaatsjabloon instanceOf die overeenkomt met de stroom van apparaten hierbovenid of the device template which matches the instanceOf of the devices stream above
  • displayNamevan de apparaatsjabloondisplayName of the device template
  • Het capabilityModel apparaat interfacesmet zijn - en de definities van telemetrie, eigenschappen en opdrachtenThe device capabilityModel including its interfaces, and the telemetry, properties, and commands definitions
  • cloudPropertiesDefinitiescloudProperties definitions
  • Overschrijft en initiële waarden, in lijn met decapabilityModelOverrides and initial values, inline with the capabilityModel

Verwijderde apparaatsjablonen worden niet geëxporteerd.Deleted device templates aren't exported. Momenteel zijn er geen indicatoren in geëxporteerde berichten voor verwijderde apparaatsjablonen.Currently, there are no indicators in exported messages for deleted device templates.

Voor gebeurtenishubs en servicebus worden berichten met apparaatsjabloongegevens in bijna realtime verzonden naar uw gebeurtenishub of servicebuswachtrij of -onderwerp, zoals deze wordt weergegeven in IoT Central.For Event Hubs and Service Bus, messages containing device template data are sent to your event hub or Service Bus queue or topic in near real-time, as it appears in IoT Central.

Voor Blob Storage wordt een nieuwe momentopname met alle wijzigingen sinds de laatste geschreven keer per minuut geëxporteerd.For Blob Storage, a new snapshot containing all the changes since the last one written is exported once per minute.

Dit is een voorbeeldbericht over gegevens over apparaatsjablonen in gebeurtenishub of servicebuswachtrij of -onderwerp:This is an example message about device templates data in event hub or Service Bus queue or topic:

{
  "body":{
      "id": "<device template id>",
      "etag": "<etag>",
      "types": ["DeviceModel"],
      "displayName": "Sensor template",
      "capabilityModel": {
          "@id": "<capability model id>",
          "@type": ["CapabilityModel"],
          "contents": [],
          "implements": [
              {
                  "@id": "<component Id>",
                  "@type": ["InterfaceInstance"],
                  "name": "sensorComponent",
                  "schema": {
                      "@id": "<interface Id>",
                      "@type": ["Interface"],
                      "displayName": "Sensor interface",
                      "contents": [
                          {
                              "@id": "<id>",
                              "@type": ["Telemetry"],
                              "displayName": "Humidity",
                              "name": "humidity",
                              "schema": "double"
                          },
                          {
                              "@id": "<id>",
                              "@type": ["Telemetry", "SemanticType/Event"],
                              "displayName": "Error event",
                              "name": "error",
                              "schema": "integer"
                          },
                          {
                              "@id": "<id>",
                              "@type": ["Property"],
                              "displayName": "Set temperature",
                              "name": "setTemp",
                              "writable": true,
                              "schema": "integer",
                              "unit": "Units/Temperature/fahrenheit",
                              "initialValue": "30"
                          },
                          {
                              "@id": "<id>",
                              "@type": ["Property"],
                              "displayName": "Firmware version read only",
                              "name": "fwversion",
                              "schema": "string"
                          },
                          {
                              "@id": "<id>",
                              "@type": ["Property"],
                              "displayName": "Display status",
                              "name": "status",
                              "writable": true,
                              "schema": {
                                  "@id": "urn:testInterface:status:obj:ka8iw8wka:1",
                                  "@type": ["Object"]
                              }
                          },
                          {
                              "@id": "<id>",
                              "@type": ["Command"],
                              "commandType": "synchronous",
                              "request": {
                                  "@id": "<id>",
                                  "@type": ["SchemaField"],
                                  "displayName": "Configuration",
                                  "name": "config",
                                  "schema": "string"
                              },
                              "response": {
                                  "@id": "<id>",
                                  "@type": ["SchemaField"],
                                  "displayName": "Response",
                                  "name": "response",
                                  "schema": "string"
                              },
                              "displayName": "Configure sensor",
                              "name": "sensorConfig"
                          }
                      ]
                  }
              }
          ],
          "displayName": "Sensor capability model"
      },
      "solutionModel": {
          "@id": "<id>",
          "@type": ["SolutionModel"],
          "cloudProperties": [
              {
                  "@id": "<id>",
                  "@type": ["CloudProperty"],
                  "displayName": "Install date",
                  "name": "installDate",
                  "schema": "dateTime",
                  "valueDetail": {
                      "@id": "<id>",
                      "@type": ["ValueDetail/DateTimeValueDetail"]
                  }
              }
          ]
      }
  },
    "annotations":{
      "iotcentral-message-source":"deviceTemplates",
      "x-opt-partition-key":"<partitionKey>",
      "x-opt-sequence-number":25315,
      "x-opt-offset":"<offset>",
      "x-opt-enqueued-time":1539274985085
    },
    "partitionKey":"<partitionKey>",
    "sequenceNumber":25315,
    "enqueuedTimeUtc":"2019-10-02T16:23:05.085Z",
    "offset":"<offset>"
  }
}

Dit is een voorbeeldmomentopname met apparaten en eigenschappengegevens in Blob Storage.This is an example snapshot containing devices and properties data in Blob Storage. Geëxporteerde bestanden bevatten één regel per record.Exported files contain a single line per record.

{
      "id": "<device template id>",
      "etag": "<etag>",
      "types": ["DeviceModel"],
      "displayName": "Sensor template",
      "capabilityModel": {
          "@id": "<capability model id>",
          "@type": ["CapabilityModel"],
          "contents": [],
          "implements": [
              {
                  "@id": "<component Id>",
                  "@type": ["InterfaceInstance"],
                  "name": "Sensor component",
                  "schema": {
                      "@id": "<interface Id>",
                      "@type": ["Interface"],
                      "displayName": "Sensor interface",
                      "contents": [
                          {
                              "@id": "<id>",
                              "@type": ["Telemetry"],
                              "displayName": "Humidity",
                              "name": "humidity",
                              "schema": "double"
                          },
                          {
                              "@id": "<id>",
                              "@type": ["Telemetry", "SemanticType/Event"],
                              "displayName": "Error event",
                              "name": "error",
                              "schema": "integer"
                          },
                          {
                              "@id": "<id>",
                              "@type": ["Property"],
                              "displayName": "Set temperature",
                              "name": "setTemp",
                              "writable": true,
                              "schema": "integer",
                              "unit": "Units/Temperature/fahrenheit",
                              "initialValue": "30"
                          },
                          {
                              "@id": "<id>",
                              "@type": ["Property"],
                              "displayName": "Firmware version read only",
                              "name": "fwversion",
                              "schema": "string"
                          },
                          {
                              "@id": "<id>",
                              "@type": ["Property"],
                              "displayName": "Display status",
                              "name": "status",
                              "writable": true,
                              "schema": {
                                  "@id": "urn:testInterface:status:obj:ka8iw8wka:1",
                                  "@type": ["Object"]
                              }
                          },
                          {
                              "@id": "<id>",
                              "@type": ["Command"],
                              "commandType": "synchronous",
                              "request": {
                                  "@id": "<id>",
                                  "@type": ["SchemaField"],
                                  "displayName": "Configuration",
                                  "name": "config",
                                  "schema": "string"
                              },
                              "response": {
                                  "@id": "<id>",
                                  "@type": ["SchemaField"],
                                  "displayName": "Response",
                                  "name": "response",
                                  "schema": "string"
                              },
                              "displayName": "Configure sensor",
                              "name": "sensorconfig"
                          }
                      ]
                  }
              }
          ],
          "displayName": "Sensor capability model"
      },
      "solutionModel": {
          "@id": "<id>",
          "@type": ["SolutionModel"],
          "cloudProperties": [
              {
                  "@id": "<id>",
                  "@type": ["CloudProperty"],
                  "displayName": "Install date",
                  "name": "installDate",
                  "schema": "dateTime",
                  "valueDetail": {
                      "@id": "<id>",
                      "@type": ["ValueDetail/DateTimeValueDetail"]
                  }
              }
          ]
      }
  }

Melding van wijziging van gegevensindelingData format change notice

Notitie

De gegevensindeling van de telemetriestroom wordt niet beïnvloed door deze wijziging.The telemetry stream data format is unaffected by this change. Alleen de gegevensstromen van apparaten en apparaatsjablonen worden beïnvloed.Only the devices and device templates streams of data are affected.

Als u een bestaande gegevensexport in uw preview-toepassing hebt met de streams voor apparaten en apparaatsjablonen ingeschakeld, moet u uw export v:v. 30 juni 2020 bijwerken.If you have an existing data export in your preview application with the Devices and Device templates streams turned on, you will need to update your export by 30 June 2020. Dit geldt voor export naar Azure Blob Storage, Azure Event Hubs en Azure Service Bus.This applies to exports to Azure Blob Storage, Azure Event Hubs, and Azure Service Bus.

Vanaf 3 februari 2020 wordt in alle nieuwe exporten in toepassingen met apparaten en apparaatsjablonen de hierboven beschreven gegevensindeling beschreven.Starting 3 February 2020, all new exports in applications with Devices and Device templates enabled will have the data format described above. Alle exporten die hiervoor zijn gemaakt, blijven tot 30 juni 2020 in het oude gegevensformaat, waarna deze export automatisch wordt gemigreerd naar het nieuwe gegevensformaat.All exports created prior to this will remain on the old data format until 30 June 2020, after which time these exports will automatically be migrated to the new data format. De nieuwe gegevensindeling komt overeen met de eigenschap van het apparaat,de eigenschap van de apparaatwolken de device cloud property objectobjecten van de apparaatsjabloon in de openbare IOT Central-API.The new data format matches the device, device property, device cloud property and device template objects in the IoT Central public API.

Voor apparatenzijn opmerkelijke verschillen tussen de oude gegevensindeling en de nieuwe gegevensindeling:For Devices, notable differences between the old data format and the new data format include:

  • @idvoor apparaat wordt deviceId verwijderd, wordt hernoemd naarid@id for device is removed, deviceId is renamed to id
  • provisionedvlag wordt toegevoegd om de inrichtingsstatus van het apparaat te beschrijvenprovisioned flag is added to describe the provisioning status of the device
  • approvedvlag wordt toegevoegd om de goedkeuringsstatus van het apparaat te beschrijvenapproved flag is added to describe the approval state of the device
  • propertiesinclusief apparaat- en cloudeigenschappen, overeenkomsten met entiteiten in de openbare APIproperties including device and cloud properties, matches entities in the public API

Voor apparaatsjablonenzijn opmerkelijke verschillen tussen de oude gegevensindeling en de nieuwe gegevensindeling:For Device templates, notable differences between the old data format and the new data format include:

  • @idvoor apparaatsjabloon wordt hernoemd naarid@id for device template is renamed to id
  • @typevoor de apparaatsjabloon wordt typeshernoemd naar , en is nu een array@type for the device template is renamed to types, and is now an array

Apparaten (formaat afgeschaft vanaf 3 februari 2020)Devices (format deprecated as of 3 February 2020)

{
  "@id":"<id-value>",
  "@type":"Device",
  "displayName":"Airbox",
  "data":{
    "$cloudProperties":{
        "Color":"blue"
    },
    "EnvironmentalSensor":{
      "thsensormodel":{
        "reported":{
          "value":"Neque quia et voluptatem veritatis assumenda consequuntur quod.",
          "$lastUpdatedTimestamp":"2019-09-30T20:35:43.8478978Z"
        }
      },
      "pm25sensormodel":{
        "reported":{
          "value":"Aut alias odio.",
          "$lastUpdatedTimestamp":"2019-09-30T20:35:43.8478978Z"
        }
      }
    },
    "urn_azureiot_DeviceManagement_DeviceInformation":{
      "totalStorage":{
        "reported":{
          "value":27900.9730905171,
          "$lastUpdatedTimestamp":"2019-09-30T20:35:43.8478978Z"
        }
      },
      "totalMemory":{
        "reported":{
          "value":4667.82916715811,
          "$lastUpdatedTimestamp":"2019-09-30T20:35:43.8478978Z"
        }
      }
    }
  },
  "instanceOf":"<template-id>",
  "deviceId":"<device-id>",
  "simulated":true
}

Apparaatsjablonen (indeling afgeschaft vanaf 3 februari 2020)Device templates (format deprecated as of 3 February 2020)

{
  "@id":"<template-id>",
  "@type":"DeviceModelDefinition",
  "displayName":"Airbox",
  "capabilityModel":{
    "@id":"<id>",
    "@type":"CapabilityModel",
    "implements":[
      {
        "@id":"<id>",
        "@type":"InterfaceInstance",
        "name":"EnvironmentalSensor",
        "schema":{
          "@id":"<id>",
          "@type":"Interface",
          "comment":"Requires temperature and humidity sensors.",
          "description":"Provides functionality to report temperature, humidity. Provides telemetry, commands and read-write properties",
          "displayName":"Environmental Sensor",
          "contents":[
            {
              "@id":"<id>",
              "@type":"Telemetry",
              "description":"Current temperature on the device",
              "displayName":"Temperature",
              "name":"temp",
              "schema":"double",
              "unit":"Units/Temperature/celsius",
              "valueDetail":{
                "@id":"<id>",
                "@type":"ValueDetail/NumberValueDetail",
                "minValue":{
                  "@value":"50"
                }
              },
              "visualizationDetail":{
                "@id":"<id>",
                "@type":"VisualizationDetail"
              }
            },
            {
              "@id":"<id>",
              "@type":"Telemetry",
              "description":"Current humidity on the device",
              "displayName":"Humidity",
              "name":"humid",
              "schema":"integer"
            },
            {
              "@id":"<id>",
              "@type":"Telemetry",
              "description":"Current PM2.5 on the device",
              "displayName":"PM2.5",
              "name":"pm25",
              "schema":"integer"
            },
            {
              "@id":"<id>",
              "@type":"Property",
              "description":"T&H Sensor Model Name",
              "displayName":"T&H Sensor Model",
              "name":"thsensormodel",
              "schema":"string"
            },
            {
              "@id":"<id>",
              "@type":"Property",
              "description":"PM2.5 Sensor Model Name",
              "displayName":"PM2.5 Sensor Model",
              "name":"pm25sensormodel",
              "schema":"string"
            }
          ]
        }
      },
      {
        "@id":"<id>",
        "@type":"InterfaceInstance",
        "name":"urn_azureiot_DeviceManagement_DeviceInformation",
        "schema":{
          "@id":"<id>",
          "@type":"Interface",
          "displayName":"Device information",
          "contents":[
            {
              "@id":"<id>",
              "@type":"Property",
              "comment":"Total available storage on the device in kilobytes. Ex. 20480000 kilobytes.",
              "displayName":"Total storage",
              "name":"totalStorage",
              "displayUnit":"kilobytes",
              "schema":"long"
            },
            {
              "@id":"<id>",
              "@type":"Property",
              "comment":"Total available memory on the device in kilobytes. Ex. 256000 kilobytes.",
              "displayName":"Total memory",
              "name":"totalMemory",
              "displayUnit":"kilobytes",
              "schema":"long"
            }
          ]
        }
      }
    ],
    "displayName":"AAEONAirbox52"
  },
  "solutionModel":{
    "@id":"<id>",
    "@type":"SolutionModel",
    "cloudProperties":[
      {
        "@id":"<id>",
        "@type":"CloudProperty",
        "displayName":"Color",
        "name":"Color",
        "schema":"string",
        "valueDetail":{
          "@id":"<id>",
          "@type":"ValueDetail/StringValueDetail"
        },
        "visualizationDetail":{
          "@id":"<id>",
          "@type":"VisualizationDetail"
        }
      }
    ]
  }
}

Volgende stappenNext steps

Nu u weet hoe u uw gegevens exporteren naar Azure Event Hubs, Azure Service Bus en Azure Blob Storage, gaat u verder met de volgende stap:Now that you know how to export your data to Azure Event Hubs, Azure Service Bus, and Azure Blob Storage, continue to the next step: