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 :
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 tillfalse
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
.