Envoyer des données à Azure Data Explorer à partir d’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 la destination Azure Data Explorer pour écrire des données dans une table dans Azure Data Explorer à partir d’un pipeline de processeur de données. L’index de destination traite les messages avant de les envoyer à Azure Data Explorer.
Prérequis
Pour configurer et utiliser un index de pipeline de destination Azure Data Explorer, il faut :
- Instance déployée du processeur de données.
- un cluster Azure Data Explorer ; et
- une base de données dans votre cluster Azure Data Explorer.
Configurer Azure Data Explorer
Avant de pouvoir écrire dans Azure Data Explorer à partir d’un pipeline de données, vous devez accorder l’accès à la base de données à partir du pipeline. Vous pouvez utiliser un principal de service ou une identité managée pour authentifier le pipeline auprès de la base de données. L’avantage d’une identité managée est que vous n’avez pas besoin de gérer le cycle de vie du principal de service. L’identité managée est automatiquement gérée par Azure et est liée au cycle de vie de la ressource à laquelle elle est attribuée.
Pour créer un principal de service avec une clé secrète client :
Exécutez la commande Azure CLI suivante pour créer un principal de service :
az ad sp create-for-rbac --name <YOUR_SP_NAME>
Les sorties de cette commande incluent les éléments suivants :
appId
,displayName
,password
ettenant
. Notez ces valeurs à utiliser lorsque vous configurez l’accès à votre ressource cloud, comme Microsoft Fabric, créez un secret et configurez une destination de pipeline :{ "appId": "<app-id>", "displayName": "<name>", "password": "<client-secret>", "tenant": "<tenant-id>" }
Pour accorder à l’administrateur l’accès à votre base de données Azure Data Explorer, exécutez la commande suivante dans l’onglet requête de votre base de données :
.add database <DatabaseName> admins (<ApplicationId>) <Notes>
Pour que l’index de destination se connecte à Azure Data Explorer, il doit accéder à un secret qui contient les détails de l’authentification. Pour créer un secret :
Utilisez la commande suivante pour ajouter un secret à votre Azure Key Vault qui contient la clé secrète client que vous avez notée lors de la création du principal de service :
az keyvault secret set --vault-name <your-key-vault-name> --name AccessADXSecret --value <client-secret>
Ajoutez la référence du secret à votre cluster Kubernetes en suivant les étapes décrites dans Gérer les secrets pour le déploiement de vos opérations Azure IoT (préversion).
Traitement par lot
Le processeur de données écrit dans Azure Data Explorer par lots. Pendant que vous lotez des données dans le processeur de données avant de l’envoyer, Azure Data Explorer a sa propre stratégie de traitement par lot d’ingestion par défaut. Par conséquent, vous ne voyez peut-être pas vos données dans Azure Data Explorer immédiatement après l’écriture du processeur de données dans la destination Azure Data Explorer.
Pour afficher les données dans Azure Data Explorer dès que le pipeline l’envoie, vous pouvez définir le nombre de stratégies de traitement par lot de l’ingestion sur 1
. Pour modifier la stratégie de traitement par lot de l’ingestion, exécutez la commande suivante dans l’onglet requête de votre base de données :
.alter database <your-database-name> policy ingestionbatching
```
{
"MaximumBatchingTimeSpan" : "00:00:30",
"MaximumNumberOfItems" : 1,
"MaximumRawDataSizeMB": 1024
}
```
Configuration de l’index de destination
La configuration JSON de l’index de destination Azure Data Explorer 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 | Type | Description | Obligatoire | Par défaut | Exemple |
---|---|---|---|---|---|
Nom d’affichage | Chaîne | Nom à afficher dans l’interface utilisateur du processeur de données. | Oui | - | MQTT broker output |
Description | Chaîne | Description conviviale de ce que fait l’index. | Non | Write to topic default/topic1 |
|
URL du cluster | Chaîne | URI (cette valeur n’est pas l’URI d’ingestion de données). | Oui | - | |
Sauvegarde de la base de données | Chaîne | Nom de la base de données. | Oui | - | |
Table | Chaîne | Nom de la table dans laquelle écrire. | Oui | - | |
Batch | Batch | Procédure pour regrouper les données. | Non | 60s |
10s |
Réessayer | Réessayer | La stratégie de nouvelles tentatives à utiliser. | Non | default |
fixed |
Authentification1 | Chaîne | Détails de l’authentification pour se connecter à Azure Data Explorer. Service principal ou Managed identity |
Principal du service | Oui | - |
Nom> des colonnes | string | Nom de la colonne. | Oui | temperature |
|
Chemin d’accès > des colonnes | Chemin d’accès | Emplacement dans chaque enregistrement des données à partir duquel la valeur de la colonne doit être lue. | Non | .{{name}} |
.temperature |
1Authentification : actuellement, la phase de destination prend en charge l’authentification basée sur le principal de service ou l’identité managée quand elle se connecte à Azure Data Explorer.
Pour configurer l’authentification basée sur le principal de service, fournissez les valeurs suivantes. Vous avez noté ces valeurs lorsque vous avez créé le principal de service et ajouté la référence secrète à votre cluster.
Champ | Description | Obligatoire |
---|---|---|
TenantId | L’ID de l’abonné. | Oui |
ClientId | L’ID de l’application que vous avez noté lors de la création du principal de service qui accède à la base de données. | Oui |
Secret | La référence secrète que vous avez créée dans votre cluster. | Oui |
Exemple de configuration
L’exemple JSON suivant montre une configuration complète de l’index de destination d’Azure Data Explorer qui écrit l’intégralité du message dans la table quickstart
de la base de données :
{
"displayName": "Azure data explorer - 71c308",
"type": "output/dataexplorer@v1",
"viewOptions": {
"position": {
"x": 0,
"y": 784
}
},
"clusterUrl": "https://clusterurl.region.kusto.windows.net",
"database": "databaseName",
"table": "quickstart",
"authentication": {
"type": "servicePrincipal",
"tenantId": "tenantId",
"clientId": "clientId",
"clientSecret": "secretReference"
},
"batch": {
"time": "5s",
"path": ".payload"
},
"columns": [
{
"name": "Timestamp",
"path": ".Timestamp"
},
{
"name": "AssetName",
"path": ".assetName"
},
{
"name": "Customer",
"path": ".Customer"
},
{
"name": "Batch",
"path": ".Batch"
},
{
"name": "CurrentTemperature",
"path": ".CurrentTemperature"
},
{
"name": "LastKnownTemperature",
"path": ".LastKnownTemperature"
},
{
"name": "Pressure",
"path": ".Pressure"
},
{
"name": "IsSpare",
"path": ".IsSpare"
}
],
"retry": {
"type": "fixed",
"interval": "20s",
"maxRetries": 4
}
}
La configuration définit ce qui suit :
- Les messages sont traités par lot pendant 5 secondes.
- Le chemin d’accès du lot
.payload
est utilisé pour localiser les données des colonnes.
Exemple
L’exemple suivant montre un exemple de message d’entrée à l’index de destination d’Azure Data Explorer :
{
"payload": {
"Batch": 102,
"CurrentTemperature": 7109,
"Customer": "Contoso",
"Equipment": "Boiler",
"IsSpare": true,
"LastKnownTemperature": 7109,
"Location": "Seattle",
"Pressure": 7109,
"Timestamp": "2023-08-10T00:54:58.6572007Z",
"assetName": "oven"
},
"qos": 0,
"systemProperties": {
"partitionId": 0,
"partitionKey": "quickstart",
"timestamp": "2023-11-06T23:42:51.004Z"
},
"topic": "quickstart"
}