Ajouter du contexte aux lectures

Recherchez le décalage d’étalonnage d’une ressource et ajoutez-le à chaque mesure. Cet exemple ajoute un décalage de 2 à une valeur de 20, produisant correctedValue: 22.

Prerequisites

Compléter les prérequis de l’exemple partagé, y compris le factory-mqtt profil et le default point de terminaison. Utilisez YAML pour le débogage et Azure CLI ou Bicep pour la gestion de production.

Utilisez le point de terminaison intégré du registre existant nommé default. Pour les variables d’environnement, définissez AIO_INSTANCE_NAME et RESOURCE_GROUP sur le nom de votre instance existante et celui de votre groupe de ressources. Pour Bicep, définissez également CUSTOM_LOCATION_NAME sur le nom de votre emplacement personnalisé existant.

Synchronisez l’horloge du rédacteur du magasin d’état avec celle du broker. Confirmez une réponse réussie +OK lors du remplissage de l’enregistrement d’étalonnage avant de publier les lectures.

Configurez une table d’étalonnage

Schéma illustrant une mesure de valeur 20 entrant dans une transformation de type carte. La transformation recherche le décalage 2 de la même ressource dans le magasin d’état et émet la valeur corrigée 22.

Utilisez enrichment pour lire les enregistrements d’étalonnage qu’une application conserve dans le state store. La recherche utilise le contexte disponible pendant le traitement, qui ne correspond pas nécessairement au contexte valide au moment de l’échantillonnage de la mesure. Dans ce cas, associez le contexte par horodatage.

Déploiez le graphique d’étalonnage :

  1. Dans l’expérience d’opérations, ouvrez votre instance et sélectionnez Graphique de Data Flow>Créer un graphique de Data Flow.

  2. Nommez le graphique add-calibration et sélectionnez le default profil.

  3. Ajoutez une source nommée source à l’aide du point de terminaison factory-mqtt et de la rubrique factory/readings.

  4. Ajouter une transformation de mappage nommée calibrate, en utilisant azureiotoperations/graph-dataflow-map:1.0.0 depuis le point de terminaison default du registre.

  5. Dans la configuration de la transformation de type carte, ajoutez un jeu de données avec, dans cet ordre, Clé du magasin d’étatfactory-calibration as calibration, Faire correspondre les entrées$source.assetId et $context.assetId, puis Expression match$1 == $2.

  6. Ajoutez ces règles de carte :

    Entrées (dans l’ordre) Output Expression
    * * Laissez ce champ vide
    value, $context(calibration).offset correctedValue $1 + $2
  7. Ajoutez une destination nommée destination à l’aide du point de terminaison factory-mqtt et de la rubrique factory/calibrated.

  8. Reliez source → calibrate → destination, puis sélectionnez Enregistrer pour déployer le graphe activé.

Avant d’envoyer les mesures, écrivez cet enregistrement NDJSON synthétique sous la clé de magasin d’état factory-calibration. Utilisez la procédure de state-store SET dans Renseigner la clé du state-store.

{"assetId":"line-1","offset":2}

Publiez cette mesure sur factory/readings :

{"assetId":"line-1","value":20}

Attendez-vous à recevoir cette charge utile sur factory/calibrated. La carte préserve les champs originaux et ajoute 20 + 2:

{"assetId":"line-1","value":20,"correctedValue":22}

Ce graphique suppose un enregistrement d’étalonnage correspondant avec un décalage numérique. Avant de l’utiliser en production, définissez comment gérer le contexte manquant et surveiller les erreurs de recherche ; l’exemple n’inclut pas de route pour contexte invalide.