Utiliser les dernières valeurs connues dans un pipeline de processeur de données
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.
Vous devrez déployer une nouvelle installation d’Azure IoT Operations lorsqu’une version en disponibilité générale est mise à disposition, vous ne pourrez pas mettre à niveau une installation en préversion.
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 l’index de dernières valeurs connues (LKV) dans un pipeline de processeur de données pour maintenir un enregistrement à jour et complet de vos données. L’index LKV suit les dernières valeurs des paires clés-valeurs pour les messages dans le pipeline. L’index peut ensuite enrichir les messages à l’aide des valeurs LKV suivies. Le suivi et l’enrichissement des dernières valeurs connues sont importants pour les processus en aval qui reposent sur :
- plusieurs points de données de série chronologique à un timestamp spécifique ;
- des charges utiles qui ont toujours une valeur pour une clé particulière.
Dans un pipeline de traitement des données, l’index LKV est facultatif. Lorsque vous utilisez l’index LKV, vous pouvez :
- ajouter plusieurs index LKV à un pipeline. Chaque index LKV peut suivre plusieurs valeurs ;
- enrichir les messages avec les valeurs LKV stockées, ce qui garantit que les données demeurent complètes ;
- conserver automatiquement les valeurs LKV mises à jour avec les valeurs les plus récentes des messages entrants ;
- suivre les valeurs LKV séparément pour chaque partition logique L’index LKV fonctionne de manière indépendante dans chaque partition logique.
- Configurez l’heure d’expiration de chaque valeur LKV suivie afin de gérer la durée pendant laquelle elle reste valide. Ce contrôle permet de garantir que les messages ne sont pas enrichis avec des valeurs obsolètes.
L’index LKV maintient l’intégrité chronologique des données. L’index garantit que les messages avec des timestamps antérieurs ne remplacent pas les valeurs LKV par des messages qui ont des timestamps ultérieurs.
L’index LKV enrichit les messages entrants avec les dernières valeurs connues qu’il suit. Ces valeurs enrichies représentent des données enregistrées précédemment et ne constituent pas nécessairement les valeurs en temps réel actuelles. Assurez-vous que ce comportement s’aligne sur vos attentes en matière de traitement des données.
Prérequis
Pour configurer et utiliser une phase de pipeline d’agrégation, vous avez besoin d’une instance déployée du processeur de données qui inclut le composant facultatif du processeur de données.
Configurer l’index
La configuration JSON de l’index LKV 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 Advanced (Avancé) :
Champ | Description | Obligatoire | Par défaut | Exemple |
---|---|---|---|---|
Nom | Nom de l’index défini par l’utilisateur. | Oui | - | lkv1 |
Description | Description de l’index définie par l’utilisateur. | Non | - | lkv1 |
Chemin d’accès entrant > des propriétés | Le chemin d’accès de la clé à suivre. | Oui | - | .payload.temperature |
Chemin d’accès sortant > des propriétés | Le chemin d’accès à l’emplacement dans le message sortant pour écrire la valeur LKV. | Oui | - | .payload.temperature_lkv |
Durée d’expiration > des propriétés | Les LKV suivies sont valides uniquement pour l’intervalle de temps défini par l’utilisateur. Au terme de ce délai, le message sortant n’est pas enrichi avec la valeur stockée. L’expiration est suivie pour chaque clé LKV. | Non | - | 10h |
Chemin d’accès de timestamp > des propriétés | Le chemin d’accès à l’emplacement dans le message sortant pour écrire le timestamp de la dernière mise à jour de la valeur LKV. | Non | False | - |
L’inclusion du chemin d’accès du timestamp vous aide à comprendre précisément quand les valeurs LKV ont été enregistrées, et améliore la transparence et la traçabilité.
inputPath
est égal à outputPath
Le message de sortie est soit la valeur réelle du message, soit la valeur LKV si la clé suivie est manquante dans la charge utile du message. Toute valeur entrante est prioritaire et l’index ne la remplace pas par une valeur LKV. Pour identifier si la valeur du message est une valeur LKV, utilisez le chemin d’accès du timestamp. Le chemin d’accès du timestamp est inclus uniquement dans le message sortant si la valeur du message est la valeur LKV suivie.
inputPath
n’est pas égal à outputPath
L’index écrit la valeur LKV dans outputPath
pour tous les messages entrants. Utilisez cette configuration pour suivre la différence entre les valeurs dans les charges utiles de messages suivantes.
Exemple de configuration
L’exemple suivant illustre un message pour l’index LKV avec le message arrivant à 10:02 et une charge utile qui contient la valeur LKV suivie .payload.temperature
:
{
{
"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
}
}
Configuration LKV :
Champ | Value |
---|---|
Chemin d’accès entrant* | .payload.temperature |
Chemin de sortie | .payload.lkvtemperature |
Heure d’expiration | 10h |
Chemin d’accès du timestamp | .payload.lkvtemperature_timestamp |
Les valeurs LKV suivies sont les suivantes :
.payload.temperature
est de 250.- Le timestamp de la valeur LKV est de
2023-01-11T10:02:07Z
Pour un message qui arrive à 11:05 avec une charge utile qui n’a pas la propriété de température, l’index LKV enrichit le message avec les valeurs suivies :
Exemple d’entrée à l’index LKV à 11:05 :
{
"systemProperties":{
"partitionKey":"pump",
"partitionId":5,
"timestamp":"2023-01-11T11:05:00Z"
},
"qos":1,
"topic":"/assets/pump/#"
},
"payload":{
"runningState": true
}
}
Exemple de sortie de l’index LKV à 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
}
}