Partager via


Filtrer des données dans un pipeline Processeur de données Azure IoT (préversion)

Important

Opérations Azure IoT (préversion) – activé parc Azure Arc est actuellement en PRÉVERSION. Vous ne devez pas utiliser ce logiciel en préversion dans des environnements de production.

Pour connaître les conditions juridiques qui s’appliquent aux fonctionnalités Azure en version bêta, en préversion ou plus généralement non encore en disponibilité générale, consultez l’Avenant aux conditions d’utilisation des préversions de Microsoft Azure.

Utilisez un index de filtrage pour filtrer les messages dont vous n’avez pas besoin pour un traitement supplémentaire dans le pipeline. L’index envoie le message d’origine à l’index de filtrage inchangé si les critères de filtrage sont remplis, sinon l’index supprime le message du pipeline.

  • Chaque partition de pipeline filtre les messages indépendamment des autres partitions.
  • La sortie de l’index de filtrage est le message d’origine si l’index ne le filtre pas.

Prérequis

Pour configurer et utiliser un filtre de pipeline agrégé, vous aurez besoin d’une instance déployée du processeur de données Azure IoT Data Processor – Préversion qui inclut le composant Data Processor en option.

Configurer l’index

La configuration JSON de l’index de filtrage définit les détails de l’index. Pour créer l’index, vous pouvez interagir avec l’interface utilisateur basée sur le formulaire ou fournir la configuration JSON sous l’onglet Avancé :

Nom Valeur Requis Par défaut Exemple
Nom d’affichage Nom à afficher dans l’interface utilisateur Data Processor. Oui - Filter1
Description Description conviviale de l’action réalisée par l’index de filtrage. Non - Filter out anomalies
Requête Expression jq Oui - .payload.temperature > 0 and .payload.pressure < 50

expressions jq

Les requêtes de filtrage dans Data Processor utilisent le langage jq pour définir la condition de filtrage :

  • Le paramètre jq fourni dans la requête doit être syntaxiquement valide.
  • Le résultat de la requête de filtrage doit être une valeur booléenne.
  • Les messages évalués en true sont émis inchangés de l’index de filtrage aux index suivants pour un traitement supplémentaire. Les messages évalués en false sont supprimés du pipeline.
  • Tous les messages pour lesquels le filtre ne retourne pas de résultat booléen sont traités comme des cas d’erreur et supprimés du pipeline.
  • L’index de filtrage respecte la même restriction sur l’utilisation de jq que la restriction définie dans le guide relatif aux expressions jq.

Lors de la création d’une requête de filtrage à utiliser dans l’index de filtrage :

  • Testez votre requête de filtrage avec vos messages pour vous assurer qu’un résultat booléen est retourné.
  • Configurez la requête de filtrage en fonction de l’arrivée du message à l’index de filtrage.
  • Pour en savoir plus sur la création de vos expressions de filtrage, consultez le guide relatif aux expressions jq.

Exemple de configuration

L’exemple JSON suivant montre une configuration complète d’index de filtrage :

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

Ce filtre vérifie les messages où .properties.responseTopic contient bar ou baz et la charge utile de messages a une propriété appelée temperature avec une valeur supérieure à 0.