Transformace dat uvnitř aplikace IoT Central pro export

Zařízení IoT odesílají data v různých formátech. Pokud chcete použít data zařízení v řešení IoT, možná budete muset před exportem do jiných služeb transformovat data zařízení.

Tento článek ukazuje, jak transformovat data zařízení jako součást definice exportu dat v aplikaci IoT Central.

Transformace v definici exportu dat IoT Central umožňují manipulovat s formátem a strukturou dat zařízení před exportem do cíle. V definici exportu můžete zadat transformaci pro každý cíl. Každá zpráva prochází transformací a vytvoří výstupní záznam, který se exportuje do cíle.

Transformace slouží ke změně struktury datových částí JSON, přejmenování polí, odfiltrování polí a spouštění jednoduchých výpočtů s hodnotami telemetrie. Pomocí transformace můžete například převést zprávy do tabulkového formátu, který odpovídá schématu cíle, jako je tabulka Azure Data Exploreru.

Následující video vás seznámí s transformacemi dat IoT Central:

Přidání transformace

Pokud chcete přidat transformaci cíle v exportu dat, vyberte + Transformovat , jak je znázorněno na následujícím snímku obrazovky:

Screenshot that shows how to add a transformation to a destination.

Panel Transformace dat umožňuje určit transformaci. V 1. Přidejte oddíl vstupní zprávy a můžete zadat ukázkovou zprávu, kterou chcete projít transformací. Ukázkovou zprávu můžete také vygenerovat výběrem šablony zařízení. Ve 2. V části transformačního dotazu můžete zadat dotaz, který transformuje vstupní zprávu. 3. V části Náhled výstupních zpráv se zobrazuje výsledek transformace:

Screenshot of transformation editor in IoT Central.

Tip

Pokud neznáte formát vstupní zprávy, použijte . ho jako dotaz k exportu zprávy do cíle, jako je webhook. Potom vložte zprávu přijatou webhookem do 1. Přidejte svoji vstupní zprávu. Pak sestavte transformační dotaz pro zpracování této zprávy do požadovaného výstupního formátu.

Vytvoření transformačního dotazu

Transformační modul používá opensourcový procesor JQ JSON k restrukturalizování a formátování datových částí JSON. Pokud chcete zadat transformaci, napíšete dotaz JQ, který může používat předdefinované filtry, funkce a funkce jazyka JQ. Příklady dotazů najdete v tématu Příklady transformačních dotazů. Další informace o psaní dotazů JQ najdete v příručce JQ.

Struktura zpráv před transformací

Z IoT Central můžete exportovat následující streamy dat: telemetrie, změny vlastností, události připojení zařízení, události životního cyklu zařízení a události životního cyklu šablony zařízení. Každý typ dat má specifickou strukturu, která obsahuje informace, jako jsou hodnoty telemetrie, informace o aplikaci, metadata zařízení a hodnoty vlastností.

Následující příklad ukazuje tvar zprávy telemetrie. Všechna tato data jsou k dispozici pro vaši transformaci. Struktura zprávy je podobná pro jiné typy zpráv, ale existují některá pole specifická pro typ. Pomocí funkce Přidat vstupní zprávu můžete vygenerovat ukázkovou zprávu založenou na šabloně zařízení ve vaší aplikaci.

{
  "applicationId": "93d68c98-9a22-4b28-94d1-06625d4c3d0f",
  "device": {
    "id": "31edabe6-e0b9-4c83-b0df-d12e95745b9f",
    "name": "Scripted Device - 31edabe6-e0b9-4c83-b0df-d12e95745b9f",
    "cloudProperties": [],
    "properties": {
      "reported": [
        {
          "id": "urn:smartKneeBrace:Smart_Vitals_Patch_wr:FirmwareVersion:1",
          "name": "FirmwareVersion",
          "value": 1.0
        }
      ]
    },
    "templateId": "urn:sbq3croo:modelDefinition:nf7st1wn3",
    "templateName": "Smart Knee Brace"
  },
  "telemetry": [
      {
        "id": "urn:continuousPatientMonitoringTemplate:Smart_Knee_Brace_6wm:Acceleration:1",
        "name": "Acceleration",
        "value": {
          "x": 19.212770659918583,
          "y": 20.596296675217335,
          "z": 54.04859440697045
        }
      },
      {
        "id": "urn:continuousPatientMonitoringTemplate:Smart_Knee_Brace_6wm:RangeOfMotion:1",
        "name": "RangeOfMotion",
        "value": 110
      }
  ],
  "enqueuedTime": "2021-03-23T19:55:56.971Z",
  "enrichments": {
      "your-enrichment-key": "enrichment-value"
  },
  "messageProperties": {
      "prop1": "prop-value"
  },
  "messageSource": "telemetry"
}

Tip

Pomocí funkce Přidat vstupní zprávu v uživatelském rozhraní aplikace IoT Central můžete zobrazit ukázkové struktury zpráv pro jiné typy exportu dat, jako jsou změny vlastností.

Příklady transformačních dotazů

Následující příklady dotazu používají zprávu telemetrie zobrazenou v předchozí části.

Příklad 1: Následující dotaz JQ vypíše každou část telemetrie ze vstupní zprávy jako samostatnou výstupní zprávu:

.telemetry[]

Výstup JSON:

{
  "id": "urn:continuousPatientMonitoringTemplate:Smart_Knee_Brace_6wm:Acceleration:1",
  "name": "Acceleration",
  "value": {
    "x": 19.212770659918583,
    "y": 20.596296675217335,
    "z": 54.04859440697045
  }
},
{
  "id": "urn:continuousPatientMonitoringTemplate:Smart_Knee_Brace_6wm:RangeOfMotion:1",
  "name": "RangeOfMotion",
  "value": 110
}

Tip

Pokud chcete změnit výstup na jednu zprávu s polem typů telemetrie, použijte dotaz .telemetry.

Příklad 2: Následující dotaz JQ převede vstupní pole telemetrie na objekt s názvy telemetrie jako klíče:

.telemetry | map({ key: .name, value: .value }) | from_entries

Výstup JSON:

{
  "Acceleration": {
    "x": 19.212770659918583,
    "y": 20.596296675217335,
    "z": 54.04859440697045
  },
  "RangeOfMotion": 110
}

Příklad 3: Následující dotaz JQ najde hodnotu telemetrie RangeOfMotion a převede ji ze stupňů na radiány pomocí vzorce rad = degree * pi / 180. Tento dotaz také ukazuje, jak modul importovat a používat iotc :

import "iotc" as iotc;
{
  rangeOfMotion: (
    .telemetry
    | iotc::find(.name == "RangeOfMotion").value
    | . * 3.14159265358979323846 / 180
  )
}

Výstup JSON:

{
  "rangeOfMotion": 1.9198621771937625
}

Příklad 4: Pokud chcete pracovat se vstupní zprávou v tabulkovém formátu, můžete každou exportovanou zprávu namapovat na jeden nebo více řádků. Výstup řádku je logicky reprezentován jako objekt JSON, kde je název sloupce klíč a hodnota sloupce je hodnota:

{
    "<column 1 name>": "<column 1 value>",
    "<column 2 name>": "<column 2 value>",
    ...
}

Tip

Při exportu do Azure Data Exploreru použijte tabulkový formát.

Následující dotaz JQ zapíše řádky do tabulky, která ukládá telemetrii rangeOfMotion na různých zařízeních. Dotaz mapuje ID zařízení, čas zařazení do fronty a rozsah pohybu do tabulky s těmito sloupci:

import "iotc" as iotc;
{
    deviceId: .deviceId,
    timestamp: .enqueuedTime,
    rangeOfMotion: .telemetry | iotc::find(.name == "RangeOfMotion").value
}

Výstup ve formátu JSON:

{
  "deviceId": "31edabe6-e0b9-4c83-b0df-d12e95745b9f",
  "timestamp": "2021-03-23T19:55:56.971Z",
  "rangeOfMotion": 110
}

Modul IoT Central

Modul JQ je kolekce vlastních funkcí. Jako součást transformačního dotazu můžete importovat integrovaný modul specifický pro IoT Central, který obsahuje funkce, abyste usnadnili psaní dotazů. K importu modulu IoT Central použijte následující direktivu:

import "iotc" as iotc;

Modul IoT Central obsahuje následující funkce:

find(expression): Funkce find umožňuje najít konkrétní prvek pole, jako je hodnota telemetrie nebo položka vlastnosti v datové části. Vstup funkce je pole a parametr definuje filtr JQ, který se má spustit proti jednotlivým prvkům pole. Funkce vrátí každý prvek pole, ve kterém se filtr vyhodnotí jako true:

Pokud například chcete najít konkrétní telemetrická hodnota s názvem RangeOfMotion:

.telemetry | iotc::find(.name == "RangeOfMotion")

Scénáře

Následující scénáře používají funkci transformace k přizpůsobení formátu dat zařízení pro konkrétní cíl.

Scénář 1: Export dat zařízení do Azure Data Exploreru

V tomto scénáři transformujete data zařízení tak, aby odpovídala pevnému schématu v Azure Data Exploreru, kde se každá hodnota telemetrie zobrazí jako sloupec v tabulce a každý řádek představuje jednu zprávu. Příklad:

DeviceId Časové razítko T1 T2 T3
"31edabe6-e0b9-4c83-b0df-d12e95745b9f" "2021-03-23T19:55:56.971Z 1.18898 1.434709 2.97008

Pokud chcete exportovat data kompatibilní s touto tabulkou, musí každá exportovaná zpráva vypadat jako následující objekt. Objekt představuje jeden řádek, kde klíče jsou názvy sloupců a hodnoty jsou hodnota, která se má umístit do každého sloupce:

{
    "Timestamp": <value-of-Timestamp>,
    "DeviceId": <value-of-deviceId>,
    "T1": <value-of-T1>,
    "T2": <value-of-T2>,
    "T3": <value-of-T3>,
}

V tomto scénáři zařízení odešle t1hodnoty , t2a t3 telemetrie ve vstupní zprávě, která vypadá jako v následujícím příkladu:

{
  "applicationId": "c57fe8d9-d15d-4659-9814-d3cc38ca9e1b",
  "enqueuedTime": "1933-01-26T03:10:44.480001324Z",
  "messageSource": "telemetry",
  "telemetry": [
    {
      "id": "dtmi:temperaturesensor288:sensors1lr:t1;1",
      "name": "t1",
      "value": 1.1889838348731093e+308
    },
    {
      "id": "dtmi:temperaturesensor288:sensors1lr:t2;1",
      "name": "t2",
      "value": 1.4347093391531383e+308
    },
    {
      "id": "dtmi:temperaturesensor288:sensors1lr:t3;1",
      "name": "t3",
      "value": 2.9700885230380616e+307
    }
  ],
  "device": {
    "id": "oozrnl1zs857",
    "name": "haptic alarm",
    "templateId": "dtmi:modelDefinition:nhhbjotee:qytxnp8hi",
    "templateName": "hapticsensors",
    "properties": {
      "reported": []
    },
    "cloudProperties": [],
    "simulated": true,
    "approved": false,
    "blocked": false,
    "provisioned": true
  }
}

Následující dotaz JQ vypíše T1T2 hodnoty TimestampdeviceId telemetrie a T3 jako zprávu s páry klíč-hodnota odpovídající schématu tabulky Azure Data Exploreru:

import "iotc" as iotc;
{
  deviceId: .device.id,
  Timestamp: .enqueuedTime,
  T1: .telemetry | iotc::find(.name == "t1").value,
  T2: .telemetry | iotc::find(.name == "t2").value,
  T3: .telemetry | iotc::find(.name == "t3").value,
}

Výstup JSON:

{
  "T1": 1.1889838348731093e+308,
  "T2": 1.4347093391531383e+308,
  "T3": 2.9700885230380616e+307,
  "Timestamp": "1933-01-26T03:10:44.480001324Z",
  "deviceId": "oozrnl1zs857"
}

Další informace o tom, jak přidat cluster a databázi Azure Data Exploreru jako cíl exportu, najdete v tématu Vytvoření cíle Azure Data Exploreru.

Scénář 2: Rozdělení pole telemetrie

V tomto scénáři zařízení odešle v jedné zprávě následující pole telemetrie:

{
  "applicationId": "570c2d7b-d72e-4ad1-aaf4-ad9b727daa47",
  "enqueuedTime": "1909-10-10T07:11:56.078161042Z",
  "messageSource": "telemetry",
  "telemetry": [
    {
      "id": "dtmi:sample1:data;1",
      "name": "data",
      "value": [
        {
          "id": "subdevice1",
          "values": {
              "running": true,
              "cycleCount": 2315
          }
        },
        {
          "id": "subdevice2",
          "values": {
              "running": false,
              "cycleCount": 824567
          }
        }
      ]
    },
    {
      "id": "dtmi:sample1:parentStatus;1",
      "name": "parentStatus",
      "value": "healthy"
    }
  ],
  "device": {
    "id": "9xwhr7khkfri",
    "name": "wireless port",
    "templateId": "dtmi:hpzy1kfcbt2:umua7dplmbd",
    "templateName": "Smart Vitals Patch",
    "properties": {
      "reported": [
        {
          "id": "dtmi:sample1:prop;1",
          "name": "Connectivity",
          "value": "Tenetur ut quasi minus ratione voluptatem."
        }
      ]
    },
    "cloudProperties": [],
    "simulated": true,
    "approved": true,
    "blocked": false,
    "provisioned": false
  }
}

Chcete transformovat tato data zařízení tak, aby odpovídala následujícímu schématu tabulky:

cycleCount deviceId enqueuedTime parentStatus spuštěno subdeviceId
2315 "9xwhr7khkfri" "1909-10-10T07:11:56.078161042Z" "v pořádku" pravda "subdevice1"
824567 "9xwhr7khkfri" "1909-10-10T07:11:56.078161042Z" "v pořádku" false (nepravda) "subdevice2"

Následující dotaz JQ vytvoří samostatnou výstupní zprávu pro každou položku podřízené položky ve zprávě a obsahuje některé běžné informace ze základní zprávy a nadřazeného zařízení. Tento dotaz zploštěje výstup a odděluje logické dělení v datech, která přišla jako jedna zpráva:

import "iotc" as iotc;
{
    enqueuedTime: .enqueuedTime,
    deviceId: .device.id,
    parentStatus: .telemetry | iotc::find(.name == "parentStatus").value
} + (
    .telemetry
    | iotc::find(.name == "data").value[]
    | {
        subdeviceId: .id,
        running: .values.running,
        cycleCount: .values.cycleCount
    }
)

Výstup JSON:

{
    "cycleCount": 2315,
    "deviceId": "9xwhr7khkfri",
    "enqueuedTime": "1909-10-10T07:11:56.078161042Z",
    "parentStatus": "healthy",
    "running": true,
    "subdeviceId": "subdevice1"
},
{
    "cycleCount": 824567,
    "deviceId": "9xwhr7khkfri",
    "enqueuedTime": "1909-10-10T07:11:56.078161042Z",
    "parentStatus": "healthy",
    "running": false,
    "subdeviceId": "subdevice2"
}

Scénář 3: Streamování Power BI

Funkce streamování Power BI v reálném čase umožňuje zobrazit data na řídicím panelu, který se aktualizuje v reálném čase s nízkou latencí. Další informace najdete v tématu Streamování v reálném čase v Power BI.

Pokud chcete používat IoT Central se streamováním Power BI, nastavte export webhooku, který odesílá subjekty žádostí v určitém formátu. Tento příklad předpokládá, že máte datovou sadu streamování Power BI s následujícím schématem:


  {
    "bloodPressureDiastolic": 161438124,
    "bloodPressureSystolic": -966387879,
    "deviceId": "9xwhr7khkfri",
    "deviceName": "wireless port",
    "heartRate": -633994413,
    "heartRateVariability": -37514094,
    "respiratoryRate": 1582211310,
    "timestamp": "1909-10-10T07:11:56.078161042Z"
  }

K vytvoření cíle exportu webhooku potřebujete koncový bod adresy URL rozhraní REST API pro datovou sadu streamování Power BI.

V tomto scénáři zařízení odesílá telemetrické zprávy, které vypadají jako v následujícím příkladu:

{
  "applicationId": "570c2d7b-d72e-4ad1-aaf4-ad9b727daa47",
  "enqueuedTime": "1909-10-10T07:11:56.078161042Z",
  "messageSource": "telemetry",
  "telemetry": [
    {
      "id": "dtmi:smartVitalsPatch:Smart_Vitals_Patch_37p:HeartRate;1",
      "name": "HeartRate",
      "value": -633994413
    },
    {
      "id": "dtmi:smartVitalsPatch:Smart_Vitals_Patch_37p:RespiratoryRate;1",
      "name": "RespiratoryRate",
      "value": 1582211310
    },
    {
      "id": "dtmi:smartVitalsPatch:Smart_Vitals_Patch_37p:HeartRateVariability;1",
      "name": "HeartRateVariability",
      "value": -37514094
    },
    {
      "id": "dtmi:smartVitalsPatch:Smart_Vitals_Patch_37p:BodyTemperature;1",
      "name": "BodyTemperature",
      "value": 5.323322666478241e+307
    },
    {
      "id": "dtmi:smartVitalsPatch:Smart_Vitals_Patch_37p:FallDetection;1",
      "name": "FallDetection",
      "value": "Earum est nobis at voluptas id qui."
    },
    {
      "id": "dtmi:smartVitalsPatch:Smart_Vitals_Patch_37p:BloodPressure;1",
      "name": "BloodPressure",
      "value": {
        "Diastolic": 161438124,
        "Systolic": -966387879
      }
    }
  ],
  "device": {
    "id": "9xwhr7khkfri",
    "name": "wireless port",
    "templateId": "dtmi:hpzy1kfcbt2:umua7dplmbd",
    "templateName": "Smart Vitals Patch",
    "properties": {
      "reported": [
        {
          "id": "dtmi:smartVitalsPatch:Smart_Vitals_Patch_wr:DeviceStatus;1",
          "name": "DeviceStatus",
          "value": "Id optio iste vero et neque sit."
        }
      ]
    },
    "cloudProperties": [],
    "simulated": true,
    "approved": true,
    "blocked": false,
    "provisioned": false
  }
}

Následující dotaz JQ transformuje vstupní zprávu do formátu vhodného pro webhook k odeslání do datové sady streamování Power BI. Tento příklad obsahuje podmínku filtru pouze pro výstupní zprávy pro konkrétní šablonu zařízení. K filtrování podle šablony zařízení můžete použít funkci filtru exportu dat:

import "iotc" as iotc;
if .device.templateId == "dtmi:hpzy1kfcbt2:umua7dplmbd" then 
    {
        deviceId: .device.id,
        timestamp: .enqueuedTime,
        deviceName: .device.name,
        bloodPressureSystolic: .telemetry | iotc::find(.name == "BloodPressure").value.Systolic,
        bloodPressureDiastolic: .telemetry | iotc::find(.name == "BloodPressure").value.Diastolic,
        heartRate: .telemetry | iotc::find(.name == "HeartRate").value,
        heartRateVariability: .telemetry | iotc::find(.name == "HeartRateVariability").value,
        respiratoryRate: .telemetry | iotc::find(.name == "RespiratoryRate").value
    }
else
    empty
end

Výstup JSON:

{
  "bloodPressureDiastolic": 161438124,
  "bloodPressureSystolic": -966387879,
  "deviceId": "9xwhr7khkfri",
  "deviceName": "wireless port",
  "heartRate": -633994413,
  "heartRateVariability": -37514094,
  "respiratoryRate": 1582211310,
  "timestamp": "1909-10-10T07:11:56.078161042Z"
}

Scénář 4: Export dat do Azure Data Exploreru a jejich vizualizace v Power BI

V tomto scénáři exportujete data do Azure Data Exploreru a pak pomocí konektoru vizualizujete data v Power BI. Další informace o tom, jak přidat cluster a databázi Azure Data Exploreru jako cíl exportu, najdete v tématu Vytvoření cíle Azure Data Exploreru.

Tento scénář používá tabulku Azure Data Exploreru s následujícím schématem:

.create table smartvitalspatch (
  EnqueuedTime:datetime,
  Message:string,
  Application:string,
  Device:string,
  Simulated:boolean,
  Template:string,
  Module:string,
  Component:string,
  Capability:string,
  Value:dynamic
)

V tomto scénáři zařízení odesílá telemetrické zprávy, které vypadají jako v následujícím příkladu:

{
    "applicationId": "570c2d7b-d72e-4ad1-aaf4-ad9b727daa47",
    "enqueuedTime": "1909-10-10T07:11:56.078161042Z",
    "messageSource": "telemetry",
    "telemetry": [
        {
            "id": "dtmi:smartVitalsPatch:Smart_Vitals_Patch_37p:HeartRate;1",
            "name": "HeartRate",
            "value": -633994413
        },
        {
            "id": "dtmi:smartVitalsPatch:Smart_Vitals_Patch_37p:RespiratoryRate;1",
            "name": "RespiratoryRate",
            "value": 1582211310
        },
        {
            "id": "dtmi:smartVitalsPatch:Smart_Vitals_Patch_37p:HeartRateVariability;1",
            "name": "HeartRateVariability",
            "value": -37514094
        },
        {
            "id": "dtmi:smartVitalsPatch:Smart_Vitals_Patch_37p:BodyTemperature;1",
            "name": "BodyTemperature",
            "value": 5.323322666478241e+307
        },
        {
            "id": "dtmi:smartVitalsPatch:Smart_Vitals_Patch_37p:FallDetection;1",
            "name": "FallDetection",
            "value": "Earum est nobis at voluptas id qui."
        },
        {
            "id": "dtmi:smartVitalsPatch:Smart_Vitals_Patch_37p:BloodPressure;1",
            "name": "BloodPressure",
            "value": {
                "Diastolic": 161438124,
                "Systolic": -966387879
            }
        }
    ],
    "device": {
        "id": "9xwhr7khkfri",
        "name": "wireless port",
        "templateId": "dtmi:hpzy1kfcbt2:umua7dplmbd",
        "templateName": "Smart Vitals Patch",
        "properties": {
            "reported": [
                {
                    "id": "dtmi:smartVitalsPatch:Smart_Vitals_Patch_wr:DeviceStatus;1",
                    "name": "DeviceStatus",
                    "value": "Id optio iste vero et neque sit."
                }
            ]
        },
        "cloudProperties": [],
        "simulated": true,
        "approved": true,
        "blocked": false,
        "provisioned": false
    }
}

Následující dotaz JQ transformuje vstupní zprávu na samostatnou výstupní zprávu pro každou hodnotu telemetrie. Tato transformace vytvoří výstup, který odpovídá schématu tabulky Azure Data Exploreru. Transformace používá schéma atributu entity, kde každý řádek obsahuje jednu hodnotu telemetrie a název telemetrie je hodnota v samostatném sloupci ve stejném řádku:

. as $in | .telemetry[] | {
  EnqueuedTime: $in.enqueuedTime,
  Message: $in.messageId,
  Application: $in.applicationId,
  Device: $in.device.id,
  Simulated: $in.device.simulated,
  Template: ($in.device.templateName // ""),
  Module: ($in.module // ""),
  Component: ($in.component // ""),
  Capability: .name,
  Value: .value
}

Výstup JSON:

{
  "Application": "570c2d7b-d72e-4ad1-aaf4-ad9b727daa47",
  "Capability": "HeartRate",
  "Component": "",
  "Device": "9xwhr7khkfri",
  "EnqueuedTime": "1909-10-10T07:11:56.078161042Z",
  "Message": null,
  "Module": "",
  "Simulated": true,
  "Template": "Smart Vitals Patch",
  "Value": -633994413
},
{
  "Application": "570c2d7b-d72e-4ad1-aaf4-ad9b727daa47",
  "Capability": "RespiratoryRate",
  "Component": "",
  "Device": "9xwhr7khkfri",
  "EnqueuedTime": "1909-10-10T07:11:56.078161042Z",
  "Message": null,
  "Module": "",
  "Simulated": true,
  "Template": "Smart Vitals Patch",
  "Value": 1582211310
},
{
  "Application": "570c2d7b-d72e-4ad1-aaf4-ad9b727daa47",
  "Capability": "HeartRateVariability",
  "Component": "",
  "Device": "9xwhr7khkfri",
  "EnqueuedTime": "1909-10-10T07:11:56.078161042Z",
  "Message": null,
  "Module": "",
  "Simulated": true,
  "Template": "Smart Vitals Patch",
  "Value": -37514094
},
{
  "Application": "570c2d7b-d72e-4ad1-aaf4-ad9b727daa47",
  "Capability": "BodyTemperature",
  "Component": "",
  "Device": "9xwhr7khkfri",
  "EnqueuedTime": "1909-10-10T07:11:56.078161042Z",
  "Message": null,
  "Module": "",
  "Simulated": true,
  "Template": "Smart Vitals Patch",
  "Value": 5.323322666478241e+307
},
{
  "Application": "570c2d7b-d72e-4ad1-aaf4-ad9b727daa47",
  "Capability": "FallDetection",
  "Component": "",
  "Device": "9xwhr7khkfri",
  "EnqueuedTime": "1909-10-10T07:11:56.078161042Z",
  "Message": null,
  "Module": "",
  "Simulated": true,
  "Template": "Smart Vitals Patch",
  "Value": "Earum est nobis at voluptas id qui."
},
{
  "Application": "570c2d7b-d72e-4ad1-aaf4-ad9b727daa47",
  "Capability": "BloodPressure",
  "Component": "",
  "Device": "9xwhr7khkfri",
  "EnqueuedTime": "1909-10-10T07:11:56.078161042Z",
  "Message": null,
  "Module": "",
  "Simulated": true,
  "Template": "Smart Vitals Patch",
  "Value": {
      "Diastolic": 161438124,
      "Systolic": -966387879
  }
}

Výstupní data se exportují do clusteru Azure Data Exploreru. Pokud chcete vizualizovat exportovaná data v Power BI, proveďte následující kroky:

  1. Nainstalujte aplikaci Power BI. Desktopovou aplikaci Power BI si můžete stáhnout z go z dat a získat přehled o akci pomocí Power BI Desktopu.
  2. Stáhněte si power BI desktopový soubor IoT Central ADX Připojení or.pbit z GitHubu.
  3. Pomocí aplikace Power BI Desktop otevřete soubor IoT Central ADX Připojení or.pbit, který jste stáhli v předchozím kroku. Po zobrazení výzvy zadejte informace o clusteru, databázi a tabulce Azure Data Exploreru, které jste si předtím poznamenali.

Teď můžete vizualizovat data v Power BI:

Screenshot of Power BI report that shows data from IoT Central.

Další kroky

Když teď víte, jak transformovat data v IoT Central, navrhovaným dalším krokem je naučit se používat analýzy v IoT Central.