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.
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.
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.
Under Källinformation väljer du Tillgång.
Välj den tillgång som du vill använda som källslutpunkt.
Välj Fortsätt.
En lista över datapunkter för den valda tillgången visas.
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
Under Källinformation väljer du MQTT.
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. 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 topic2
konverteras 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 humidifiers
kan 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:
- 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.
- Filter: Filtrera data baserat på ett villkor.
- 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).
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.
I driftupplevelsen väljer du ett dataflöde och sedan Lägg till transformering (valfritt).
Välj Byt namn eller Nya egenskapstransformeringar och välj sedan Lägg till.
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.
Under Transformera (valfritt) väljer du Filtrera>lägg till.
Välj de datapunkter som ska ingå i datauppsättningen.
Lägg till ett filtervillkor och en beskrivning.
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 .
Under Transformera (valfritt) väljer du Beräkningstillägg>.
Ange de obligatoriska fälten och uttrycken.
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.
Välj den dataflödesslutpunkt som ska användas som mål.
Välj Fortsätt för att konfigurera målet.
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.
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.
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.