Dela via


Konfigurera dataflöden i Azure IoT Operations

Viktigt!

Förhandsversion av Azure IoT Operations – aktiverad av Azure Arc är för närvarande i förhandsversion. Du bör inte använda den här förhandsgranskningsprogramvaran i produktionsmiljöer.

Du måste distribuera en ny Azure IoT Operations-installation när en allmänt tillgänglig version görs tillgänglig. Du kommer inte att kunna uppgradera en förhandsgranskningsinstallation.

Juridiska villkor för Azure-funktioner i betaversion, förhandsversion eller som av någon annan anledning inte har gjorts allmänt tillgängliga ännu finns i kompletterande användningsvillkor för Microsoft Azure-förhandsversioner.

Ett dataflöde är den sökväg som data tar från källan till målet med valfria transformeringar. Du kan konfigurera dataflödet genom att skapa en anpassad dataflödesresurs eller med hjälp av Azure IoT Operations Studio-portalen. Ett dataflöde består av tre delar: källan, omvandlingen och målet.

Diagram över ett dataflöde som visar flödet från källa till transformering och sedan mål.

För att definiera källan och målet måste du konfigurera dataflödesslutpunkterna. Omvandlingen är valfri och kan omfatta åtgärder som att berika data, filtrera data och mappa data till ett annat fält.

Viktigt!

Varje dataflöde måste ha standardslutpunkten för Azure IoT Operations lokal MQTT-koordinator som antingen källa eller mål.

Du kan använda driftupplevelsen i Azure IoT Operations för att skapa ett dataflöde. Driftupplevelsen tillhandahåller ett visuellt gränssnitt för att konfigurera dataflödet. Du kan också använda Bicep för att skapa ett dataflöde med en Bicep-mallfil eller använda Kubernetes för att skapa ett dataflöde med hjälp av en YAML-fil.

Fortsätt läsa för att lära dig hur du konfigurerar källan, omvandlingen och målet.

Förutsättningar

Du kan distribuera dataflöden så snart du har en instans av Azure IoT Operations Preview med hjälp av standardprofilen för dataflöde och slutpunkten. Du kanske dock vill konfigurera dataflödesprofiler och slutpunkter för att anpassa dataflödet.

Dataflödesprofil

Dataflödesprofilen anger antalet instanser för de dataflöden under den som ska användas. Om du inte behöver flera grupper med dataflöden med olika skalningsinställningar kan du använda standardprofilen för dataflöde. Information om hur du konfigurerar en dataflödesprofil finns i Konfigurera dataflödesprofiler.

Dataflödesslutpunkter

Dataflödesslutpunkter krävs för att konfigurera källan och målet för dataflödet. För att komma igång snabbt kan du använda standardslutpunkten för dataflöde för den lokala MQTT-koordinatorn. Du kan också skapa andra typer av dataflödesslutpunkter som Kafka, Event Hubs eller Azure Data Lake Storage. Information om hur du konfigurerar varje typ av dataflödesslutpunkt finns i Konfigurera dataflödesslutpunkter.

Kom igång

När du har förutsättningar kan du börja skapa ett dataflöde.

Om du vill skapa ett dataflöde i driftmiljön väljer du Dataflöde>Skapa dataflöde. Sedan ser du sidan där du kan konfigurera källan, omvandlingen och målet för dataflödet.

Skärmbild som använder driftsupplevelsen för att skapa ett dataflöde.

Läs följande avsnitt om du vill lära dig hur du konfigurerar åtgärdstyperna för dataflödet.

Källa

Om du vill konfigurera en källa för dataflödet anger du slutpunktsreferensen och en lista över datakällor för slutpunkten.

Använda tillgången som källa

Du kan använda en tillgång som källa för dataflödet. Användning av en tillgång som källa är endast tillgängligt i driftupplevelsen.

  1. Under Källinformation väljer du Tillgång.

  2. Välj den tillgång som du vill använda som källslutpunkt.

  3. Välj Fortsätt.

    En lista över datapunkter för den valda tillgången visas.

    Skärmbild som använder driftupplevelsen för att välja en tillgång som källslutpunkt.

  4. Välj Använd för att använda tillgången som källslutpunkt.

När du använder en tillgång som källa används tillgångsdefinitionen för att härleda schemat för dataflödet. Tillgångsdefinitionen innehåller schemat för tillgångens datapunkter. Mer information finns i Hantera tillgångskonfigurationer via fjärranslutning.

När data från tillgången har konfigurerats nådde de dataflödet via den lokala MQTT-koordinatorn. När du använder en tillgång som källa använder dataflödet därför den lokala standardslutpunkten för MQTT-koordinatorn som källa i verkligheten.

Använda MQTT-standardslutpunkten som källa

  1. Under Källinformation väljer du MQTT.

    Skärmbild som använder driftupplevelsen för att välja MQTT som källslutpunkt.

  2. Ange följande inställningar för MQTT-källan:

    Inställning beskrivning
    MQTT-ämne MQTT-ämnesfiltret som du vill prenumerera på för inkommande meddelanden. Se Avsnittet Konfigurera MQTT eller Kafka.
    Meddelandeschema Schemat som ska användas för att deserialisera inkommande meddelanden. Se Ange schema för att deserialisera data.
  3. Välj Använd.

Om standardslutpunkten inte används som källa måste den användas som mål. Mer information finns i Dataflöden måste använda den lokala MQTT-koordinatorslutpunkten.

Använda anpassad MQTT- eller Kafka-dataflödesslutpunkt som källa

Om du har skapat en anpassad MQTT- eller Kafka-dataflödesslutpunkt (till exempel för användning med Event Grid eller Event Hubs) kan du använda den som källa för dataflödet. Kom ihåg att slutpunkter av lagringstyp, till exempel Data Lake eller Fabric OneLake, inte kan användas som källa.

För att konfigurera använder du Kubernetes YAML eller Bicep. Ersätt platshållarvärden med ditt anpassade slutpunktsnamn och ämnen.

Användning av en anpassad MQTT- eller Kafka-slutpunkt som källa stöds för närvarande inte i driftupplevelsen.

Konfigurera datakällor (MQTT- eller Kafka-ämnen)

Du kan ange flera MQTT- eller Kafka-ämnen i en källa utan att behöva ändra dataflödesslutpunktskonfigurationen. Den här flexibiliteten innebär att samma slutpunkt kan återanvändas i flera dataflöden, även om ämnena varierar. Mer information finns i Återanvända dataflödesslutpunkter.

MQTT-ämnen

När källan är en MQTT-slutpunkt (Event Grid ingår) kan du använda MQTT-ämnesfiltret för att prenumerera på inkommande meddelanden. Ämnesfiltret kan innehålla jokertecken för att prenumerera på flera ämnen. Till exempel thermostats/+/telemetry/temperature/# prenumererar på alla temperaturtelemetrimeddelanden från termostater. Så här konfigurerar du MQTT-ämnesfilter:

I informationen om dataflödets driftupplevelse väljer du MQTT och använder sedan fältet MQTT-ämne för att ange MQTT-ämnesfiltret för att prenumerera på inkommande meddelanden.

Kommentar

Endast ett MQTT-ämnesfilter kan anges i driftupplevelsen. Om du vill använda flera MQTT-ämnesfilter använder du Bicep eller Kubernetes.

Delade prenumerationer

Om du vill använda delade prenumerationer med MQTT-källor kan du ange det delade prenumerationsavsnittet i form av $shared/<GROUP_NAME>/<TOPIC_FILTER>.

I operations experience dataflow Source details (Dataflödeskälla ) väljer du MQTT och använder fältet MQTT-ämne för att ange den delade prenumerationsgruppen och ämnet.

Om instansantalet i dataflödesprofilen är större än 1 aktiveras den delade prenumerationen automatiskt för alla dataflöden som använder MQTT-källa. I det här fallet läggs prefixet $shared till och namnet på den delade prenumerationsgruppen genereras automatiskt. Om du till exempel har en dataflödesprofil med instansantalet 3 och ditt dataflöde använder en MQTT-slutpunkt som källa konfigurerad med ämnen topic1 och topic2konverteras de automatiskt till delade prenumerationer som $shared/<GENERATED_GROUP_NAME>/topic1 och $shared/<GENERATED_GROUP_NAME>/topic2. Om du vill använda ett annat grupp-ID för delad prenumeration kan du åsidosätta det i ämnet, till exempel $shared/mygroup/topic1.

Viktigt!

Dataflöden som kräver delad prenumeration när antalet instanser är större än 1 är viktigt när du använder Event Grid MQTT-koordinator som källa eftersom det inte stöder delade prenumerationer. Om du vill undvika att meddelanden saknas anger du antalet instanser av dataflödesprofilen till 1 när du använder Event Grid MQTT-koordinatorn som källa. Det är då dataflödet är prenumeranten och tar emot meddelanden från molnet.

Kafka-ämnen

När källan är en Kafka-slutpunkt (inklusive Event Hubs) anger du de enskilda kafka-ämnen som ska prenumerera på inkommande meddelanden. Jokertecken stöds inte, så du måste ange varje ämne statiskt.

Kommentar

När du använder Event Hubs via Kafka-slutpunkten är varje enskild händelsehubb i namnområdet Kafka-ämnet. Om du till exempel har ett Event Hubs-namnområde med två händelsehubbar thermostats och humidifierskan du ange varje händelsehubb som ett Kafka-ämne.

Så här konfigurerar du Kafka-ämnena:

Användning av en Kafka-slutpunkt som källa stöds för närvarande inte i driftupplevelsen.

Ange schema för att deserialisera data

Om källdata har valfria fält eller fält med olika typer anger du ett deserialiseringsschema för att säkerställa konsekvens. Data kan till exempel ha fält som inte finns i alla meddelanden. Utan schemat kan transformeringen inte hantera dessa fält eftersom de skulle ha tomma värden. Med schemat kan du ange standardvärden eller ignorera fälten.

Att ange schemat är bara relevant när du använder MQTT- eller Kafka-källan. Om källan är en tillgång härleds schemat automatiskt från tillgångsdefinitionen.

Så här konfigurerar du schemat som används för att deserialisera inkommande meddelanden från en källa:

I information om dataflödets dataflöde väljer du MQTT och använder fältet Meddelandeschema för att ange schemat. Du kan använda knappen Ladda upp för att ladda upp en schemafil först. Mer information finns i Förstå meddelandescheman.

Transformering

Transformeringsåtgärden är den plats där du kan transformera data från källan innan du skickar dem till målet. Transformeringar är valfria. Om du inte behöver göra ändringar i data ska du inte inkludera transformeringsåtgärden i dataflödeskonfigurationen. Flera transformeringar länkas samman i steg oavsett i vilken ordning de anges i konfigurationen. Stegens ordning är alltid:

  1. Berika, byt namn på eller lägg till en ny egenskap: Lägg till ytterligare data i källdata med en datauppsättning och ett villkor som ska matchas.
  2. Filter: Filtrera data baserat på ett villkor.
  3. Mappa eller beräkna: Flytta data från ett fält till ett annat med en valfri konvertering.

I driftupplevelsen väljer du Dataflöde>Lägg till transformering (valfritt).

Skärmbild som använder driftsupplevelsen för att lägga till en transformering i ett dataflöde.

Berika: Lägga till referensdata

Om du vill utöka data kan du använda referensdatauppsättningen i Azure IoT Operations distributed state store (DSS). Datauppsättningen används för att lägga till extra data i källdata baserat på ett villkor. Villkoret anges som ett fält i källdata som matchar ett fält i datamängden.

Du kan läsa in exempeldata i DSS med hjälp av DSS-uppsättningens verktygsexempel. Nyckelnamn i det distribuerade tillståndslagret motsvarar en datauppsättning i dataflödeskonfigurationen.

I driftupplevelsen stöds för närvarande Enrich-fasen med hjälp av transformeringarna Byt namn och Ny.

  1. I driftupplevelsen väljer du ett dataflöde och sedan Lägg till transformering (valfritt).

  2. Välj Byt namn eller Nya egenskapstransformeringar och välj sedan Lägg till.

    Skärmbild som använder driftupplevelsen för att byta namn på en datapunkt och lägga till en ny egenskap.

Om datamängden har en post med fältet asset , ungefär som:

{
  "asset": "thermostat1",
  "location": "room1",
  "manufacturer": "Contoso"
}

Data från källan med deviceId fältmatchning thermostat1 har fälten location och manufacturer tillgängliga i filter- och kartfaser.

Mer information om villkorssyntax finns i Berika data med hjälp av dataflöden och Konvertera data med hjälp av dataflöden.

Filter: Filtrera data baserat på ett villkor

Om du vill filtrera data på ett villkor kan du använda filter fasen. Villkoret anges som ett fält i källdata som matchar ett värde.

  1. Under Transformera (valfritt) väljer du Filtrera>lägg till.

  2. Välj de datapunkter som ska ingå i datauppsättningen.

  3. Lägg till ett filtervillkor och en beskrivning.

    Skärmbild som använder driftsupplevelsen för att lägga till en filtertransformering.

  4. Välj Använd.

Du kan till exempel använda ett filtervillkor som temperature > 20 att filtrera data som är mindre än eller lika med 20 baserat på temperaturfältet.

Karta: Flytta data från ett fält till ett annat

Om du vill mappa data till ett annat fält med valfri konvertering kan du använda åtgärden map . Konverteringen anges som en formel som använder fälten i källdata.

I driftmiljön stöds mappning för närvarande med hjälp av Beräkningstransformeringar .

  1. Under Transformera (valfritt) väljer du Beräkningstillägg>.

  2. Ange de obligatoriska fälten och uttrycken.

    Skärmbild som använder driftsupplevelsen för att lägga till en beräkningstransformering.

  3. Välj Använd.

Mer information finns i Mappa data med hjälp av dataflöden och Konvertera data med hjälp av dataflöden.

Serialisera data enligt ett schema

Om du vill serialisera data innan du skickar dem till målet måste du ange ett schema- och serialiseringsformat. Annars serialiseras data i JSON med de typer som härleds. Lagringsslutpunkter som Microsoft Fabric eller Azure Data Lake kräver ett schema för att säkerställa datakonsekvens. Serialiseringsformat som stöds är Parquet och Delta.

För närvarande stöds inte att ange utdataschemat och serialiseringen i driftmiljön.

Mer information om schemaregistret finns i Förstå meddelandescheman.

Mål

Om du vill konfigurera ett mål för dataflödet anger du slutpunktsreferensen och datamålet. Du kan ange en lista över datamål för slutpunkten.

Om du vill skicka data till ett annat mål än den lokala MQTT-koordinatorn skapar du en dataflödesslutpunkt. Mer information finns i Konfigurera dataflödesslutpunkter. Om målet inte är den lokala MQTT-koordinatorn måste det användas som källa. Mer information finns i Dataflöden måste använda den lokala MQTT-koordinatorslutpunkten.

Viktigt!

Lagringsslutpunkter kräver en schemareferens. Om du har skapat slutpunkter för lagringsmål för Microsoft Fabric OneLake, ADLS Gen 2, Azure Data Explorer och Lokal lagring måste du ange schemareferens.

  1. Välj den dataflödesslutpunkt som ska användas som mål.

    Skärmbild som använder driftupplevelsen för att välja Händelsehubbars målslutpunkt.

  2. Välj Fortsätt för att konfigurera målet.

  3. Ange de inställningar som krävs för målet, inklusive det ämne eller den tabell som data ska skickas till. Mer information finns i Konfigurera datamål (ämne, container eller tabell).

Konfigurera datamål (ämne, container eller tabell)

Precis som datakällor är datamål ett begrepp som används för att hålla dataflödesslutpunkterna återanvändbara över flera dataflöden. I princip representerar den underkatalogen i konfigurationen av dataflödesslutpunkten. Om dataflödesslutpunkten till exempel är en lagringsslutpunkt är datamålet tabellen i lagringskontot. Om dataflödesslutpunkten är en Kafka-slutpunkt är datamålet Kafka-ämnet.

Slutpunktstyp Betydelse för datamål beskrivning
MQTT (eller Event Grid) Område MQTT-ämnet där data skickas. Endast statiska ämnen stöds, inga jokertecken.
Kafka (eller Event Hubs) Område Kafka-ämnet där data skickas. Endast statiska ämnen stöds, inga jokertecken. Om slutpunkten är ett Event Hubs-namnområde är datamålet den enskilda händelsehubben i namnområdet.
Azure Data Lake Storage Container Containern i lagringskontot. Inte tabellen.
Microsoft Fabric OneLake Tabell eller mapp Motsvarar den konfigurerade sökvägstypen för slutpunkten.
Öppna Azure-datautforskaren Register Tabellen i Azure Data Explorer-databasen.
Lokal lagring Mapp Mapp- eller katalognamnet i den lokala lagringsbeständiga volymmonteringen. När du använder Azure Container Storage som aktiveras av Azure Arc Cloud Ingest Edge-volymer måste detta matcha parametern spec.path för den delvolym som du skapade.

Så här konfigurerar du datamålet:

När du använder driftupplevelsen tolkas datamålfältet automatiskt baserat på slutpunktstypen. Om dataflödesslutpunkten till exempel är en lagringsslutpunkt uppmanas du på sidan med målinformation att ange containernamnet. Om dataflödesslutpunkten är en MQTT-slutpunkt uppmanar målinformationssidan dig att ange ämnet och så vidare.

Skärmbild som visar hur du uppmanar användaren att ange ett MQTT-ämne med tanke på slutpunktstypen.

Exempel

Följande exempel är en dataflödeskonfiguration som använder MQTT-slutpunkten för källan och målet. Källan filtrerar data från MQTT-ämnet azure-iot-operations/data/thermostat. Omvandlingen konverterar temperaturen till Fahrenheit och filtrerar data där temperaturen multiplicerat med fuktigheten är mindre än 100000. Målet skickar data till MQTT-ämnet factory.

Se flikarna Bicep eller Kubernetes för konfigurationsexemplet.

Mer information om dataflödeskonfigurationer finns i Azure REST API – Dataflöde och snabbstarten Bicep.

Kontrollera att ett dataflöde fungerar

Följ självstudie: Dubbelriktad MQTT-brygga till Azure Event Grid för att kontrollera att dataflödet fungerar.

Exportera dataflödeskonfiguration

Om du vill exportera dataflödeskonfigurationen kan du använda driftupplevelsen eller genom att exportera den anpassade dataflödesresursen.

Välj det dataflöde som du vill exportera och välj Exportera i verktygsfältet.

Skärmbild som använder driftsupplevelsen för att exportera ett dataflöde.

Korrekt dataflödeskonfiguration

Kontrollera följande för att säkerställa att dataflödet fungerar som förväntat:

  • Standardslutpunkten för MQTT-dataflöde måste användas som källa eller mål.
  • Dataflödesprofilen finns och refereras till i dataflödeskonfigurationen.
  • Källan är antingen en MQTT-slutpunkt, Kafka-slutpunkt eller en tillgång. Slutpunkter av lagringstyp kan inte användas som källa.
  • När du använder Event Grid som källa anges instansantalet för dataflödesprofilen till 1 eftersom Event Grid MQTT-asynkron meddelandekö inte stöder delade prenumerationer.
  • När du använder Event Hubs som källa är varje händelsehubb i namnområdet ett separat Kafka-ämne och måste anges som datakälla.
  • Transformering, om den används, konfigureras med rätt syntax, inklusive korrekt undflyende av specialtecken.
  • När du använder slutpunkter av lagringstyp som mål anges ett schema.

Nästa steg