Exportera IoT-data till destinationer i AzureExport IoT data to destinations in Azure

Det här avsnittet gäller för administratörer.This topic applies to administrators.

Den här artikeln beskriver hur du använder funktionen för data export i Azure IoT Central.This article describes how to use the data export feature in Azure IoT Central. Med den här funktionen kan du exportera dina data kontinuerligt till azure Event Hubs, Azure Service Buseller Azure Blob Storage -instanser.This feature lets you export your data continuously to Azure Event Hubs, Azure Service Bus, or Azure Blob storage instances. Data export använder JSON-formatet och kan omfatta telemetri, enhets information och information om enhets mal len.Data export uses the JSON format and can include telemetry, device information, and device template information. Använd exporterade data för:Use the exported data for:

  • Insikter och analys av varma sökvägar.Warm-path insights and analytics. Det här alternativet inkluderar utlöser anpassade regler i Azure Stream Analytics, utlöser anpassade arbets flöden i Azure Logic Apps eller skickar dem via Azure Functions som ska omvandlas.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.
  • Kall vägs analys, till exempel utbildnings modeller i Azure Machine Learning eller långsiktig trend analys i Microsoft Power BI.Cold-path analytics such as training models in Azure Machine Learning or long-term trend analysis in Microsoft Power BI.

Anteckning

När du aktiverar data export får du bara data från dessa tidpunkter.When you turn on data export, you get only the data from that moment onward. För närvarande går det inte att hämta data under en tid då data exporten var avstängd.Currently, data can't be retrieved for a time when data export was off. Aktivera data export tidigt om du vill behålla mer historiska data.To retain more historical data, turn on data export early.

KravPrerequisites

Du måste vara administratör i IoT Central programmet eller ha behörighet för data export.You must be an administrator in your IoT Central application, or have Data export permissions.

Konfigurera export målSet up export destination

Export målet måste finnas innan du konfigurerar dina data export.Your export destination must exist before you configure your data export.

Skapa en namnrymd för Event HubsCreate Event Hubs namespace

Följ dessa steg om du inte har ett befintligt Event Hubs namn område att exportera till:If you don't have an existing Event Hubs namespace to export to, follow these steps:

  1. Skapa ett nytt Event Hubs-namnområde i Azure Portal.Create a new Event Hubs namespace in the Azure portal. Du kan läsa mer i Azure Event Hubs-dokument.You can learn more in Azure Event Hubs docs.

  2. Välj en prenumeration.Choose a subscription. Du kan exportera data till andra prenumerationer som inte är i samma prenumeration som ditt IoT Central-program.You can export data to other subscriptions that aren't in the same subscription as your IoT Central application. Du ansluter med hjälp av en anslutnings sträng i det här fallet.You connect using a connection string in this case.

  3. Skapa en Event Hub i Event Hubs namn området.Create an event hub in your Event Hubs namespace. Gå till ditt namn område och välj + Event Hub överst för att skapa en Event Hub-instans.Go to your namespace, and select + Event Hub at the top to create an event hub instance.

Skapa Service Bus namn områdeCreate Service Bus namespace

Följ dessa steg om du inte har ett befintligt Service Bus namn område att exportera till:If you don't have an existing Service Bus namespace to export to, follow these steps:

  1. Skapa ett nytt Service Bus-namnområde i Azure Portal.Create a new Service Bus namespace in the Azure portal. Du kan läsa mer i Azure Service Bus dokument.You can learn more in Azure Service Bus docs.

  2. Välj en prenumeration.Choose a subscription. Du kan exportera data till andra prenumerationer som inte är i samma prenumeration som ditt IoT Central-program.You can export data to other subscriptions that aren't in the same subscription as your IoT Central application. Du ansluter med hjälp av en anslutnings sträng i det här fallet.You connect using a connection string in this case.

  3. Om du vill skapa en kö eller ett ämne att exportera till går du till din Service Bus-namnrymd och väljer + kö eller + ämne.To create a queue or topic to export to, go to your Service Bus namespace, and select + Queue or + Topic.

När du väljer Service Bus som export mål får inte köer och ämnen ha sessioner eller dubblettidentifiering aktiverade.When you choose Service Bus as an export destination, the queues and topics must not have Sessions or Duplicate Detection enabled. Om något av dessa alternativ är aktiverat kommer vissa meddelanden inte att tas emot i din kö eller ämne.If either of those options are enabled, some messages won't arrive in your queue or topic.

Skapa lagringskontoCreate storage account

Följ dessa steg om du inte har ett befintligt Azure Storage-konto att exportera till:If you don't have an existing Azure storage account to export to, follow these steps:

  1. Skapa ett nytt lagrings konto i Azure Portal.Create a new storage account in the Azure portal. Du kan lära dig mer om att skapa nya Azure Blob Storage-konton eller Azure Data Lake Storage v2-lagrings konton.You can learn more about creating new Azure Blob storage accounts or Azure Data Lake Storage v2 storage accounts. Data export kan bara skriva data till lagrings konton som stöder block-blobbar.Data export can only write data to storage accounts that support block blobs. I följande lista visas kända kompatibla lagrings konto typer:The following list shows the known compatible storage account types:

    Prestanda nivåPerformance Tier KontotypAccount Type
    StandardStandard Generell användning v2General Purpose V2
    StandardStandard Generell användning v1General Purpose V1
    StandardStandard Blob StorageBlob storage
    PremiumPremium Block Blob StorageBlock Blob storage
  2. Skapa en behållare i ditt lagrings konto.Create a container in your storage account. Gå till ditt lagringskonto.Go to your storage account. Under BLOB serviceväljer du Bläddra i blobbar.Under Blob Service, select Browse Blobs. Välj + behållare överst för att skapa en ny behållare.Select + Container at the top to create a new container.

Konfigurera data exportSet up data export

Nu när du har ett mål att exportera data till, följer du dessa steg för att konfigurera data export.Now that you have a destination to export data to, follow these steps to set up data export.

  1. Logga in på ditt IoT Central-program.Sign in to your IoT Central application.

  2. Välj data exporti det vänstra fönstret.In the left pane, select Data export.

    Tips

    Om du inte ser data export i det vänstra fönstret har du inte behörighet att konfigurera data export i din app.If you don't see Data export in the left pane, then you don't have permissions to configure data export in your app. Prata med en administratör för att konfigurera data export.Talk to an administrator to set up data export.

  3. Välj knappen + ny längst upp till höger.Select the + New button in the top right. Välj en Azure-Event Hubs, Azure Service Buseller Azure Blob Storage som mål för exporten.Choose one of Azure Event Hubs, Azure Service Bus, or Azure Blob storage as the destination of your export. Det maximala antalet exporter per program är fem.The maximum number of exports per application is five.

    Skapa ny data export

  4. I list rutan väljer du Event Hubs namnrymd, Service Bus namnrymd, lagrings konto namnrumeller anger en anslutnings sträng.In the drop-down list box, select your Event Hubs namespace, Service Bus namespace, Storage Account namespace, or Enter a connection string.

    • Du ser bara lagrings konton, Event Hubs namnrymder och Service Bus namnrum i samma prenumeration som ditt IoT Central-program.You only see storage accounts, Event Hubs namespaces, and Service Bus namespaces in the same subscription as your IoT Central application. Om du vill exportera till ett mål utanför den här prenumerationen väljer du Ange en anslutnings sträng och går till nästa steg.If you want to export to a destination outside of this subscription, choose Enter a connection string and see the next step.
    • För appar som har skapats med den kostnads fria pris Planen är det enda sättet att konfigurera data exporten via en anslutnings sträng.For apps created using the free pricing plan, the only way to configure data export is through a connection string. Appar i den kostnads fria pris Planen har ingen tillhör ande Azure-prenumeration.Apps on the free pricing plan don't have an associated Azure subscription.

    Skapa ny händelsehubben

  5. Valfritt Om du väljer Ange en anslutnings strängvisas en ny ruta där du kan klistra in anslutnings strängen.(Optional) If you chose Enter a connection string, a new box appears for you to paste your connection string. Så här hämtar du anslutnings strängen för din:To get the connection string for your:

    • Event Hubs eller Service Bus går du till namn området i Azure Portal:Event Hubs or Service Bus, go to the namespace in the Azure portal:
      • Under Inställningarväljer du principer för delad åtkomstUnder Settings, select Shared Access Policies
      • Välj standard- RootManageSharedAccessKey eller skapa en nyChoose the default RootManageSharedAccessKey or create a new one
      • Kopiera antingen den primära eller sekundära anslutnings strängenCopy either the primary or secondary connection string
    • Lagrings konto går du till lagrings kontot i Azure Portal:Storage account, go to the storage account in the Azure portal:
      • Under Inställningarväljer du åtkomst nycklarUnder Settings, select Access keys
      • Kopiera antingen anslutnings strängen KEY1 eller key2-anslutningssträngenCopy either the key1 connection string or the key2 connection string
  6. Välj en händelsehubben, en kö, ett ämne eller en behållare i list rutan.Choose an event hub, queue, topic, or container from the drop-down list box.

  7. Under data som ska exporterasväljer du de typer av data som ska exporteras genom att ange typen till .Under Data to export, choose the types of data to export by setting the type to On.

  8. Om duvill aktivera data export kontrollerar du att aktivera växling är aktiverat .To turn on data export, make sure the Enabled toggle is On. Välj Spara.Select Save.

  9. Efter några minuter visas dina data i det valda målet.After a few minutes, your data appears in your chosen destination.

Exportera innehåll och formatExport contents and format

Exporterade telemetridata innehåller hela det meddelande som dina enheter skickade till IoT Central, inte bara själva telemetri värden.Exported telemetry data contains the entirety of the message your devices sent to IoT Central, not just the telemetry values themselves. Exporterade enhets data innehåller ändringar av egenskaper och metadata för alla enheter och exporterade enheter innehåller ändringar i alla enhets mallar.Exported devices data contains changes to properties and metadata of all devices, and exported device templates contains changes to all device templates.

För Event Hubs och Service Bus exporteras data i nära real tid.For Event Hubs and Service Bus, data is exported in near-realtime. Datan finns i body egenskapen och är i JSON-format.The data is in the body property and is in JSON format. Se nedan för exempel.See below for examples.

För Blob Storage exporteras data en gång per minut, med varje fil som innehåller ändrings gruppen sedan den senaste exporterade filen.For Blob storage, data is exported once per minute, with each file containing the batch of changes since the last exported file. Exporterade data placeras i tre mappar i JSON-format.Exported data is placed in three folders in JSON format. Standard Sök vägarna i ditt lagrings konto är:The default paths in your storage account are:

  • Telemetri: {container}/{app-ID}/Telemetry/{YYYY}/{MM}/{DD}/{hh}/{mm}/{filename}Telemetry: {container}/{app-id}/telemetry/{YYYY}/{MM}/{dd}/{hh}/{mm}/{filename}
  • Enheter: {container}/{app-ID}/Devices/{YYYY}/{MM}/{DD}/{hh}/{mm}/{filename}Devices: {container}/{app-id}/devices/{YYYY}/{MM}/{dd}/{hh}/{mm}/{filename}
  • Enhets mallar: {container}/{app-ID}/deviceTemplates/{YYYY}/{MM}/{DD}/{hh}/{mm}/{filename}Device templates: {container}/{app-id}/deviceTemplates/{YYYY}/{MM}/{dd}/{hh}/{mm}/{filename}

Om du vill bläddra bland de exporterade filerna i Azure Portal navigerar du till filen och väljer fliken Redigera BLOB .To browse the exported files in the Azure portal, navigate to the file and select the Edit blob tab.

TelemetriTelemetry

För Event Hubs och Service Bus exporterar IoT Central ett nytt meddelande snabbt när det får meddelandet från en enhet.For Event Hubs and Service Bus, IoT Central exports a new message quickly after it receives the message from a device. Varje exporterat meddelande innehåller det fullständiga meddelande som enheten skickade i egenskapen Body i JSON-format.Each exported message contains the full message the device sent in the body property in JSON format.

För Blob Storage grupperas och exporteras meddelanden en gång per minut.For Blob storage, messages are batched and exported once per minute. De exporterade filerna använder samma format som de meddelandefiler som exporteras av IoT Hub meddelanderoutning till Blob Storage.The exported files use the same format as the message files exported by IoT Hub message routing to blob storage.

Anteckning

För Blob Storage kontrollerar du att enheterna skickar meddelanden som contentType: application/JSON har och contentEncoding:utf-8 (eller utf-16 utf-32).For Blob storage, ensure that your devices are sending messages that have contentType: application/JSON and contentEncoding:utf-8 (or utf-16, utf-32). Se IoT Hub-dokumentationen för ett exempel.See the IoT Hub documentation for an example.

Enheten som skickade telemetri representeras av enhets-ID: t (se följande avsnitt).The device that sent the telemetry is represented by the device ID (see the following sections). För att hämta namnen på enheterna, exportera enhets data och korrelera varje meddelande med hjälp av connectionDeviceId som matchar enhets meddelandets deviceId .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.

I följande exempel visas ett meddelande från en händelsehubben eller Service Bus kö eller ett ämne:The following example shows a message received from an event hub or Service Bus queue or topic:

{
  "temp":81.129693132351775,
  "humid":59.488071477541247,
  "EventProcessedUtcTime":"2020-04-07T09:41:15.2877981Z",
  "PartitionId":0,
  "EventEnqueuedUtcTime":"2020-04-07T09:38:32.7380000Z"
}

Det här meddelandet innehåller inte enhets-ID: t för den sändande enheten.This message doesn't include the device ID of the sending device.

Om du vill hämta enhets-ID: t från meddelande data i en Azure Stream Analytics fråga använder du funktionen GetMetadataPropertyValue .To retrieve the device ID from the message data in an Azure Stream Analytics query, use the GetMetadataPropertyValue function. Ett exempel finns i frågan i utöka Azure IoT Central med anpassade regler med hjälp av Stream Analytics, Azure Functions och SendGrid.For an example, see the query in Extend Azure IoT Central with custom rules using Stream Analytics, Azure Functions, and SendGrid.

Om du vill hämta enhets-ID: t i en Azure Databricks eller Apache Spark arbets yta använder du systemProperties.To retrieve the device ID in an Azure Databricks or Apache Spark workspace, use systemProperties. Ett exempel finns i arbets ytan Databricks i utöka Azure IoT Central med anpassad analys med Azure Databricks.For an example, see the Databricks workspace in Extend Azure IoT Central with custom analytics using Azure Databricks.

I följande exempel visas en post som exporter ATS till Blob Storage:The following example shows a 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
  }
}

EnheterDevices

Varje meddelande eller post i en ögonblicks bild representerar en eller flera ändringar av en enhet och dess enhets-och moln egenskaper sedan det senaste exporterade meddelandet.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. Meddelandet innehåller:The message includes the:

  • idav enheten i IoT Centralid of the device in IoT Central
  • displayNameav enhetendisplayName of the device
  • Mall-ID för enhet iinstanceOfDevice template ID in instanceOf
  • simulatedflagga, sant om enheten är en simulerad enhetsimulated flag, true if the device is a simulated device
  • provisionedflagga, sant om enheten har etableratsprovisioned flag, true if the device has been provisioned
  • approvedflagga, sant om enheten har godkänts för att skicka dataapproved flag, true if the device has been approved to send data
  • Egenskaps värdenProperty values
  • propertiesinklusive värden för enhets-och moln egenskaperproperties including device and cloud properties values

Borttagna enheter exporteras inte.Deleted devices aren't exported. För närvarande finns det inga indikatorer i exporterade meddelanden för borttagna enheter.Currently, there are no indicators in exported messages for deleted devices.

För Event Hubs och Service Bus skickar IoT Central meddelanden som innehåller enhets data till händelsehubben eller Service Bus kö eller ämne i nära real tid.For Event Hubs and Service Bus, IoT Central sends messages containing device data to your event hub or Service Bus queue or topic in near real time.

För Blob Storage exporteras en ny ögonblicks bild som innehåller alla ändringar sedan den senast skrevs en gång per minut.For Blob storage, a new snapshot containing all the changes since the last one written is exported once per minute.

I följande exempel meddelande visas information om enheter och egenskaper i en Event Hub-eller Service Bus kö eller ett ämne:The following example message shows information about devices and properties data in an 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>"
}

Den här ögonblicks bilden är ett exempel meddelande som visar enheter och egenskaps data i Blob Storage.This snapshot is an example message that shows devices and properties data in Blob storage. Exporterade filer innehåller en enskild rad per post.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" }
}

Enhets mallarDevice templates

Varje meddelande-eller ögonblicks bild post representerar en eller flera ändringar i en publicerad enhets mall sedan det senaste exporterade meddelandet.Each message or snapshot record represents one or more changes to a published device template since the last exported message. Information som skickas i varje meddelande eller post innehåller:Information sent in each message or record includes:

  • idför den enhets mall som matchar instanceOf enhets strömmen ovanid of the device template that matches the instanceOf of the devices stream above
  • displayNameav enhets mal lendisplayName of the device template
  • Enheten capabilityModel , inklusive dess interfaces, och definitioner av telemetri, egenskaper och kommandonThe device capabilityModel including its interfaces, and the telemetry, properties, and commands definitions
  • cloudPropertiesdefinierascloudProperties definitions
  • Åsidosättningar och initiala värden, infogade icapabilityModelOverrides and initial values, inline with the capabilityModel

Borttagna enhetsspecifika mappar exporteras inte.Deleted device templates aren't exported. För närvarande finns det inga indikatorer i exporterade meddelanden för borttagna enhets mallar.Currently, there are no indicators in exported messages for deleted device templates.

För Event Hubs och Service Bus skickar IoT Central meddelanden som innehåller enhets mal lin data till din Event Hub eller Service Bus kö eller ämne i nära real tid.For Event Hubs and Service Bus, IoT Central sends messages containing device template data to your event hub or Service Bus queue or topic in near real time.

För Blob Storage exporteras en ny ögonblicks bild som innehåller alla ändringar sedan den senast skrevs en gång per minut.For Blob storage, a new snapshot containing all the changes since the last one written is exported once per minute.

Det här exemplet visar ett meddelande om enhets data i händelsehubben eller Service Bus kö eller ämne:This example shows a 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>"
  }
}

Detta exempel på en ögonblicks bild visar ett meddelande som innehåller enhets-och egenskaps data i Blob Storage.This example snapshot shows a message that contains device and properties data in Blob storage. Exporterade filer innehåller en enskild rad per post.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"]
                  }
              }
          ]
      }
  }

Ändrings meddelande för data formatData format change notice

Anteckning

Data formatet för telemetri påverkas inte av den här ändringen.The telemetry stream data format is unaffected by this change. Endast data strömmar för enheter och enheter påverkas.Only the devices and device templates streams of data are affected.

Om du har en befintlig data export i ditt för hands versions program där strömmarna enheter och enhets mallar är aktiverade, uppdaterar du exporten senast 30 juni 2020.If you have an existing data export in your preview application with the Devices and Device templates streams turned on, update your export by 30 June 2020. Detta krav gäller för export till Azure Blob Storage, Azure Event Hubs och Azure Service Bus.This requirement applies to exports to Azure Blob storage, Azure Event Hubs, and Azure Service Bus.

Från och med 3 februari 2020 kommer data formatet som beskrivs ovan att visas i alla nya exporter i program med enheter och enhetsspecifika aktiverade.Starting 3 February 2020, all new exports in applications with Devices and Device templates enabled will have the data format described above. Alla exporter som skapats före det här datumet förblir i det gamla data formatet fram till den 30 juni 2020, då dessa exporter automatiskt migreras till det nya data formatet.All exports created before this date remain on the old data format until 30 June 2020, at which time these exports will automatically be migrated to the new data format. Det nya data formatet matchar enheten, enhets egenskapen, enhetens moln egenskapoch enhets mal len objekt i IoT Central offentliga API: et.The new data format matches the device, device property, device cloud property, and device template objects in the IoT Central public API.

För enheterär viktiga skillnader mellan det gamla data formatet och det nya data formatet:For Devices, notable differences between the old data format and the new data format include:

  • @idför enheten tas bort deviceId byter namn tillid@id for device is removed, deviceId is renamed to id
  • provisionedflagga läggs till för att beskriva enhetens etablerings statusprovisioned flag is added to describe the provisioning status of the device
  • approvedflagga har lagts till för att beskriva enhetens godkännande tillståndapproved flag is added to describe the approval state of the device
  • propertiesinklusive egenskaper för enhet och moln, matchar entiteter i det offentliga API: etproperties including device and cloud properties, matches entities in the public API

Viktiga skillnader mellan det gamla data formatet och det nya data formatet är:For Device templates, notable differences between the old data format and the new data format include:

  • @idför enhets mal len byter namn tillid@id for device template is renamed to id
  • @typeför enhets mal len byter namn till types, och är nu en matris@type for the device template is renamed to types, and is now an array

Enheter (format föråldrat från och med 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
}

Enhets mallar (format föråldras från och med 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"
        }
      }
    ]
  }
}

Nästa stegNext steps

Nu när du vet hur du exporterar dina data till Azure Event Hubs, Azure Service Bus och Azure Blob Storage, fortsätter du till nästa steg: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: