Share via


Filtrera 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.

Använd ett filtersteg för att filtrera bort meddelanden som du inte behöver för ytterligare bearbetning i pipelinen. Fasen genererar det ursprungliga meddelandet till filtersteget oförändrat om filtervillkoren uppfylls, annars släpper fasen meddelandet från pipelinen.

  • Varje pipelinepartition filtrerar ut meddelanden oberoende av andra partitioner.
  • Utdata från filtersteget är det ursprungliga meddelandet om fasen inte filtrerar bort den.

Förutsättningar

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

Konfigurera fasen

JSON-konfigurationen för filtersteget 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 :

Name Värde Obligatoriskt Standardvärde Exempel
Visningsnamn Ett namn som ska visas i användargränssnittet för dataprocessorn. Ja - Filter1
beskrivning En användarvänlig beskrivning av vad filtersteget gör. Nej - Filter out anomalies
Fråga JQ-uttrycket Ja - .payload.temperature > 0 and .payload.pressure < 50

jq-uttryck

Filterfrågor i dataprocessorn använder jq-språket för att definiera filtervillkoret:

  • Jq som anges i frågan måste vara syntaktiskt giltig.
  • Resultatet av filterfrågan måste vara ett booleskt värde.
  • Meddelanden som utvärderas till true genereras oförändrade från filtersteget till efterföljande steg för vidare bearbetning. Meddelanden som utvärderas till false tas bort från pipelinen.
  • Alla meddelanden som filtret inte returnerar ett booleskt resultat för behandlas som ett felfall och tas bort från pipelinen.
  • Filtersteget följer samma begränsning för jq-användning som definierats i jq-uttrycksguiden .

När du skapar en filterfråga som ska användas i filterfasen:

  • Testa filterfrågan med dina meddelanden för att se till att ett booleskt resultat returneras.
  • Konfigurera filterfrågan baserat på hur meddelandet tas emot i filterfasen.
  • Mer information om hur du skapar filteruttryck finns iguiden jq-uttryck .

Exempelkonfiguration

I följande JSON-exempel visas en fullständig konfiguration av filtersteg:

{ 
    "displayName": "Filter name", 
    "description": "Filter description", 
    "query": "(.properties.responseTopic | contains(\"bar\")) or (.properties.responseTopic | contains(\"baz\")) and (.payload | has(\"temperature\")) and (.payload.temperature > 0)"
}

Det här filtret söker efter meddelanden där .properties.responseTopic innehåller bar eller baz och meddelandenyttolasten har en egenskap som heter temperature med ett värde som är större än 0.