Share via


Använda senast kända värden 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.

Använd det senast kända värdesteget (LKV) i en databehandlingspipeline för att upprätthålla en uppdaterad och fullständig post för dina data. LKV-fasen spårar de senaste värdena för nyckel/värde-par för meddelanden i pipelinen. Fasen kan sedan utöka meddelanden med hjälp av de spårade LKV-värdena. Senast kända värdespårning och berikning är viktiga för nedströmsprocesser som är beroende av:

  • Flera tidsseriedatapunkter vid en viss tidsstämpel.
  • Nyttolaster som alltid har ett värde för en viss nyckel.

I en databearbetningspipeline är LKV-fasen ett valfritt steg. När du använder LKV-fasen kan du:

  • Lägg till flera LKV-steg i en pipeline. Varje LKV-fas kan spåra flera värden.
  • Utöka meddelanden med lagrade LKV-värden, vilket säkerställer att data förblir fullständiga och omfattande.
  • Håll LKV:er uppdaterade automatiskt med de senaste värdena från inkommande meddelanden.
  • Spåra LKV:er separat för varje logisk partition. LKV-fasen fungerar oberoende av varandra i varje logisk partition.
  • Konfigurera förfallotiden för varje spårad LKV för att hantera varaktigheten för den förblir giltig. Den här kontrollen hjälper till att säkerställa att meddelanden inte utökas med inaktuella värden.

LKV-fasen upprätthåller kronologisk dataintegritet. Fasen säkerställer att meddelanden med tidigare tidsstämplar inte åsidosätter eller ersätter LKV:er med meddelanden som har senare tidsstämplar.

LKV-fasen berikar inkommande meddelanden med de senast kända värden som den spårar. Dessa berikade värden representerar tidigare registrerade data och är inte nödvändigtvis de aktuella realtidsvärdena. Se till att det här beteendet överensstämmer med dina förväntningar på databehandling.

Förutsättningar

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

Konfigurera fasen

JSON-konfigurationen för LKV-stadiet definierar information om 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 Standardvärde Exempel
Name Användardefinierat namn för fasen. Ja - lkv1
beskrivning Användardefinierad beskrivning för fasen. Nej - lkv1
Indatasökväg för egenskaper > Sökvägen till nyckeln som ska spåras. Ja - .payload.temperature
Utdatasökväg för egenskaper > Sökvägen till platsen i utdatameddelandet för att skriva LKV. Ja - .payload.temperature_lkv
Förfallotid för egenskaper > Spårade LKV:er är endast giltiga för användardefinierat tidsintervall, varefter utdatameddelandet inte utökas med det lagrade värdet. Förfallodatum spåras för varje LKV-nyckel. Nej - 10h
Tidsstämpelsökväg för egenskaper > Sökvägen till platsen i utdatameddelandet för att skriva tidsstämpeln för när LKV senast uppdaterades. Nej Falsk -

Om du inkluderar tidsstämpelsökvägen hjälper det dig att förstå exakt när LKV:erna registrerades och förbättrar transparensen och spårbarheten.

inputPath Motsvarar outputPath

Det utgående meddelandet är antingen det faktiska meddelandevärdet eller LKV om den spårade nyckeln saknas i meddelandets nyttolast. Inkommande värden prioriteras och fasen åsidosätter det inte med en LKV. Om du vill identifiera om meddelandevärdet är ett LKV-värde använder du tidsstämpelsökvägen. Tidsstämpelsökvägen ingår endast i det utgående meddelandet om värdet i meddelandet är den spårade LKV:en.

inputPath är inte lika med outputPath

Fasen skriver LKV till outputPath för alla inkommande meddelanden. Använd den här konfigurationen för att spåra skillnaden mellan värden i efterföljande meddelandenyttolaster.

Exempelkonfiguration

I följande exempel visas ett exempelmeddelande för LKV-fasen med meddelandet som kommer 10:02 och med en nyttolast som innehåller det spårade .payload.temperature LKV-värdet:

{ 
  { 
    "systemProperties":{ 
        "partitionKey":"pump", 
        "partitionId":5, 
        "timestamp":"2023-01-11T10:02:07Z" 
    }, 
    "qos":1, 
    "topic":"/assets/pump/#" 
    }, 
    "payload":{ 
        "humidity": 10, 
        "temperature":250, 
        "pressure":30, 
        "runningState": true 
    } 
} 

LKV-konfiguration:

Fält Värde
Indatasökväg* .payload.temperature
Utdatasökväg .payload.lkvtemperature
Förfallotid 10h
Tidsstämpelsökväg .payload.lkvtemperature_timestamp

De spårade LKV-värdena är:

  • .payload.temperature är 250.
  • Tidsstämpeln för LKV är 2023-01-11T10:02:07Z

För ett meddelande som kommer klockan 11:05 med en nyttolast som inte har egenskapen temperature berikar LKV-fasen meddelandet med de spårade värdena:

Exempel på indata till LKV-fasen kl. 11:05:

{ 
    "systemProperties":{ 
        "partitionKey":"pump", 
        "partitionId":5, 
        "timestamp":"2023-01-11T11:05:00Z" 
    }, 
    "qos":1, 
    "topic":"/assets/pump/#" 
    }, 
    "payload":{ 
        "runningState": true 
    } 
} 

Exempel på utdata från LKV-fasen kl. 11:05:

{ 
    "systemProperties":{ 
        "partitionKey":"pump", 
        "partitionId":5, 
        "timestamp":"2023-01-11T11:05:00Z" 
    }, 
    "qos":1, 
    "topic":"/assets/pump/#" 
    }, 
    "payload":{ 
        "lkvtemperature":250, 
        "lkvtemperature_timestamp"":"2023-01-11T10:02:07Z" 
        "runningState": true 
    } 
}