Share via


Utöka data i en azure IoT Data Processor Preview-pipeline

Viktigt!

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

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.

Berikningssteget är ett valfritt, mellanliggande pipelinesteg som gör att du kan utöka pipelinens data med kontextuell information och referensinformation från datauppsättningar för referensdatalager. Berikningssteget hjälper dig att kontextualisera data från olika datakällor för att göra data i den här pipelinen mer meningsfulla och användbara.

Du kan koppla pipelinens data till en referensdatauppsättnings data med hjälp av vanliga taggar, ID:er eller tidsstämplar.

Förutsättningar

För att konfigurera och använda en berikande pipelinefas behöver du en distribuerad instans av Azure IoT Data Processor Preview.

Konfigurera fasen

Den berikande JSON-fasens konfiguration definierar detaljerna i fasen. Om du vill skapa fasen kan du antingen interagera med det formulärbaserade användargränssnittet eller ange JSON-konfigurationen på fliken Avancerat :

Fält beskrivning Obligatoriskt Alternativ Exempel
Name Ett namn som ska visas i användargränssnittet för dataprocessorn. Ja - ERP Context
beskrivning En användarvänlig beskrivning av vad berikningssteget gör. Nej - Enrich with vendor dataset
Datamängd Välj datauppsättningen med referensdata för berikningen. Ja - Vendor dataset
Utmatningssökväg Sökväg till platsen i det utgående meddelandet för att placera referensdata. Ja - .payload.erp
Berika som matris Om sant är den berikade posten alltid en matris. Nej No/Yes Yes
Gräns Begränsa antalet poster som returneras från referensdatauppsättningen. Den här inställningen styr antalet poster som utökas i meddelandet. Nej - 100
Villkorsoperator > Kopplingsvillkorsoperatorn för databerikning. Nej Key match/Past nearest/Future nearest Key match
Indatasökväg för villkor > Sökväg till nyckeln som ska användas för att matcha mot varje villkor. Nej - .payload.asset
Villkorsegenskap > Egenskapsnamn eller tidsstämpel för kopplingsvillkorsåtgärden som tillhandahålls vid konfiguration av datauppsättning Nej Välj ett egenskapsnamn eller tidsstämpel i listrutan. equipmentName

Villkorsoperatorer

Kopplingsvillkor beskrivning
Key match En ID-baserad koppling som kopplar samman data för vilka det finns en exakt matchning mellan nyckelns eller egenskapens namn som anges i berikningssteget och referensdatalagret.
Past nearest En tidsstämpelbaserad koppling som sammanfogar referensdata med närmaste tidigare tidsstämpel i referensdatalagret i förhållande till den meddelandetidsstämpel som anges i berikande fasen.
Future nearest En tidsstämpelbaserad koppling som kopplar referensdata med närmaste framtida tidsstämpel i referensdatalagret i förhållande till meddelandetidsstämpeln som tillhandahålls i berikande fasen.

Anteckningar:

  • Om du inte anger något villkor utökas alla referensdata från datamängden.
  • Om indatasökvägen refererar till en tidsstämpel måste tidsstämplarna vara i RFC3339 format.
  • Key match är skiftlägeskänsligt.
  • Varje berikande steg kan ha upp till 10 villkor.
  • Varje berikande steg kan bara ha ett tidsbaserat kopplingsvillkor: Past nearest eller Future nearest.
  • Om en Key match ID-baserad koppling kombineras med Past nearest eller Future nearest tidsstämpelbaserade kopplingsvillkor Key match tillämpas först för att filtrera de returnerade posterna före Past nearest eller Future nearest tillämpas.
  • Du kan tillämpa flera Key match villkor på de returnerade posterna. En logisk AND åtgärd utförs mellan flera Key match villkor.

Om podden för pipelinen oväntat slutar fungera finns det en risk att kopplingen till den efterloggade händelsedatapipelinen använder ogiltiga eller framtida värden från datauppsättningen för referensdatalagret. Den här situationen kan leda till oönstrade dataanrikning. Använd villkoret Past nearest för att åtgärda problemet och filtrera bort sådana data.

Genom att använda villkoret Past nearest i berikningssteget beaktas endast tidigare värden från referensdata för berikning. Den här metoden säkerställer att data som kopplas inte innehåller några framtida värden från datauppsättningen för referensdatalager. Villkoret Past nearest filtrerar bort framtida värden, vilket möjliggör mer exakt och tillförlitlig databerikning.

Exempelkonfiguration

I konfigurationen för berikningssteget definierar du följande egenskaper:

Fält Exempel
Name Anrikning
beskrivning berika med utrustningsdata
Datamängd equipment
Utmatningssökväg .payload
Berika som matris Ja
Villkorsoperator > Key match
Villkorsindatasökväg > .payload.assetid
Villkorsegenskap > equipment name

Kopplingen använder ett villkor som matchar assetid värdet i det inkommande meddelandet med fältet equipment name i referensdatauppsättningen. Den här konfigurationen berikar meddelandet med relevanta data från datauppsättningen. När anrikningssteget tillämpar kopplingsvillkoret lägger det till kontextuella data från referensdatauppsättningen till meddelandet när det flödar genom pipelinen.

Exempel

Det här exemplet bygger på exemplet med referensdatauppsättningar . Du vill utöka tidsseriedata som en pipeline tar emot data från en tillverkningsanläggning med referensdata med hjälp av berikningssteget. I det här exemplet används en inkommande nyttolast som ser ut som följande JSON:

payload: {
      { 
        "assetid": "Oven", 
        "timestamp": "T05:15:00.000Z", 
        "temperature": 120, 
        "humidity": 99 
    }, 
      { 
        "assetid": "Oven", 
        "timestamp": "T05:16:00.000Z", 
        "temperature": 127, 
        "humidity": 98 
    }, 
      { 
        "AssetID": "Mixer", 
        "timestamp": "T05:17:00.000Z", 
        "temperature": 89, 
        "humidity": 95 
    }, 
      { 
        "AssetID": "Slicer", 
        "timestamp": "T05:19:00.000Z", 
        "temperature": 56, 
        "humidity": 30 
    } 
} 

Följande JSON visar ett exempel på ett utökat utdatameddelande baserat på den tidigare konfigurationen:

payload: {
      { 
        "assetid": "Oven", 
        "timestamp": "2023-05-25T05:15:00.000Z", 
        "temperature": 120, 
        "humidity": 99, 
        "location": "Seattle", 
        "installationDate": "2002-03-05T00:00:00Z",  
        "isSpare": false  
    }, 
      { 
        "assetid": "Oven", 
        "timestamp": "2023-05-25T05:16:00.000Z", 
        "temperature": 127, 
        "humidity": 98, 
        "location": "Seattle", 
        "installationDate": "2002-03-05T00:00:00Z",  
        "isSpare": false  
    }, 
      { 
        "assetid": "Mixer", 
        "timestamp": "2023-05-25T05:17:00.000Z", 
        "temperature": 89, 
        "humidity": 95, 
        "location": "Tacoma",  
        "installationDate": "2005-11-15T00:00:00Z",  
        "isSpare": false  
    }, 
      { 
        "assetid": "Slicer", 
        "Timestamp": "2023-05-25T05:19:00.000Z", 
        "Temperature": 56, 
        "humidity": 30, 
        "location": "Seattle",  
        "installationDate": "2021-04-25T00:00:00Z",  
        "isSpare": true  
    } 
}