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 enfalse
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
.
Contenu connexe
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour