Partager via


Enrichir les 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.

L’index d’enrichissement est un index de pipeline intermédiaire facultatif qui vous permet d’enrichir les données du pipeline avec des informations contextuelles et de référence à partir de jeux de données du Magasin de données de référence. L’index d’enrichissement vous permet de contextualiser les données provenant de sources de données disparates, afin de rendre les données dans le pipeline plus explicites et exploitables.

Vous pouvez joindre les données du pipeline aux données d’un jeu de données de référence à l’aide de balises, d’identifiants ou de timestamps courants.

Prérequis

Pour configurer et utiliser une phase de pipeline enrichie, vous avez besoin d’une instance déployée d’Azure IoT Data Processor (préversion) qui inclut le composant Data Processor facultatif.

Configurer l’index

La configuration JSON de l’index d’enrichissement 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é :

Champ Description Obligatoire Options Exemple
Nom Nom à afficher dans l’interface utilisateur du processeur de données. Oui - ERP Context
Description Description conviviale de ce que fait l’index d’enrichissement. Non - Enrich with vendor dataset
Dataset Sélectionnez le jeu de données avec les données de référence pour l’enrichissement. Oui - Vendor dataset
Chemin de sortie Chemin d’accès à l’emplacement dans le message sortant pour placer les données de référence. Oui - .payload.erp
Enrichir en tant que tableau Si la valeur est « true », l’entrée enrichie est toujours un tableau. Non No/Yes Yes
Limite Limite le nombre d’entrées renvoyées à partir du jeu de données de référence. Ce paramètre contrôle le nombre d’enregistrements qui sont enrichis dans le message. Non - 100
Conditions > Opérateur La jointure de l’opérateur de condition pour l’enrichissement des données. Non Key match/Past nearest/Future nearest Key match
Conditions > Chemin d’accès entrant Chemin d’accès à la clé à utiliser pour vérifier chaque condition. Non - .payload.asset
Conditions > Propriété Nom de propriété ou timestamp pour l’opération de condition de jointure fournie à la configuration du jeu de données Non Sélectionnez un nom de propriété ou un timestamp dans la liste déroulante. equipmentName

Opérateurs de condition

Condition de jointure Description
Key match Jointure basée sur un identifiant qui joint les données pour lesquelles il existe une correspondance exacte entre le nom de la clé ou de la propriété spécifié dans l’index d’enrichissement et le magasin de données de référence.
Past nearest Jointure basée sur un timestamp qui joint les données de référence avec le timestamp passé le plus proche dans le magasin de données de référence par rapport au timestamp de message fourni dans l’index d’enrichissement.
Future nearest Jointure basée sur un timestamp qui joint les données de référence avec le timestamp futur le plus proche dans le magasin de données de référence par rapport au timestamp de message fourni dans l’index d’enrichissement.

Remarques :

  • Si vous ne fournissez pas de condition, toutes les données de référence du jeu de données sont enrichies.
  • Si le chemin d’accès entrant fait référence à un timestamp, les timestamps doivent être au format RFC3339.
  • Key match respecte la casse.
  • Chaque index d’enrichissement peut avoir jusqu’à 10 conditions.
  • Chaque index d’enrichissement ne peut avoir qu’une seule condition de jointure basée sur le temps : Past nearest ou Future nearest.
  • Si une jointure basée sur un identifiant Key match est combinée avec des conditions de jointure basées sur un timestamp Past nearest ou Future nearest, alors la Key match est appliquée en premier pour filtrer les entrées retournées avant que Past nearest ou Future nearest ne soient appliquées.
  • Vous pouvez appliquer plusieurs conditions Key match aux entrées retournées. Une opération AND logique est effectuée entre plusieurs conditions Key match.

Si le pod du pipeline s’interrompt de façon inattendue, il est possible que la jointure avec le pipeline de données d’index backlogged utilise des valeurs non valides ou futures à partir du jeu de données du magasin de données de référence. Cette situation peut entraîner un enrichissement des données non souhaité. Pour résoudre ce problème et filtrer ces données, utilisez la condition Past nearest.

En utilisant la condition Past nearest dans l’index d’enrichissement, seules les valeurs passées des données de référence sont prises en compte pour l’enrichissement. Cette approche garantit que les données jointes n’incluent aucune valeur future du jeu de données du magasin de données de référence. La condition Past nearest filtre les valeurs futures, ce qui permet un enrichissement des données plus précis et fiable.

Exemple de configuration

Dans la configuration de l’index d’enrichissement, vous définissez les propriétés suivantes :

Champ Exemple
Nom Enrichissement
Description enrichir avec des données d’équipement
Dataset equipment
Chemin de sortie .payload
Enrichir en tant que tableau Oui
Condition > Opérateur Key match
Condition > Chemin d’accès entrant .payload.assetid
Condition > Propriété equipment name

La jointure utilise une condition qui correspond à la valeur assetid du message entrant avec le champ equipment name du jeu de données de référence. Cette configuration enrichit le message avec les données pertinentes du jeu de données. Lorsque l’index d’enrichissement applique la condition de jointure, il ajoute les données contextuelles du jeu de données de référence au message au fur et à mesure qu’il transite par le pipeline.

Exemple

Cet exemple s’appuie sur l’exemple de jeux de données de référence. Vous souhaitez enrichir les données de série chronologique qu’un pipeline reçoit d’une usine de fabrication avec des données de référence à l’aide de l’index d’enrichissement. Cet exemple utilise une charge utile entrante qui ressemble au JSON suivant :

payload: {
      { 
        "assetid": "Oven", 
        "timestamp": "T05:15:00.000Z", 
        "temperature": 120, 
        "humidity": 99 
    }, 
      { 
        "assetid": "Oven", 
        "timestamp": "T05:16:00.000Z", 
        "temperature": 127, 
        "humidity": 98 
    }, 
      { 
        "AssetID": "Mixer", 
        "timestamp": "T05:17:00.000Z", 
        "temperature": 89, 
        "humidity": 95 
    }, 
      { 
        "AssetID": "Slicer", 
        "timestamp": "T05:19:00.000Z", 
        "temperature": 56, 
        "humidity": 30 
    } 
} 

Le JSON suivant illustre un exemple de message de sortie enrichi basé sur la configuration précédente :

payload: {
      { 
        "assetid": "Oven", 
        "timestamp": "2023-05-25T05:15:00.000Z", 
        "temperature": 120, 
        "humidity": 99, 
        "location": "Seattle", 
        "installationDate": "2002-03-05T00:00:00Z",  
        "isSpare": false  
    }, 
      { 
        "assetid": "Oven", 
        "timestamp": "2023-05-25T05:16:00.000Z", 
        "temperature": 127, 
        "humidity": 98, 
        "location": "Seattle", 
        "installationDate": "2002-03-05T00:00:00Z",  
        "isSpare": false  
    }, 
      { 
        "assetid": "Mixer", 
        "timestamp": "2023-05-25T05:17:00.000Z", 
        "temperature": 89, 
        "humidity": 95, 
        "location": "Tacoma",  
        "installationDate": "2005-11-15T00:00:00Z",  
        "isSpare": false  
    }, 
      { 
        "assetid": "Slicer", 
        "Timestamp": "2023-05-25T05:19:00.000Z", 
        "Temperature": 56, 
        "humidity": 30, 
        "location": "Seattle",  
        "installationDate": "2021-04-25T00:00:00Z",  
        "isSpare": true  
    } 
}