Configurer une étape source SQL Server dans le 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.
L’étape source est la première étape requise dans un pipeline de processeur de données. L’index source obtient des données dans le pipeline de traitement des données et la prépare pour un traitement ultérieur. L’index source de SQL Server vous permet de lire les données d’une base de données Microsoft SQL Server à intervalle défini par l’utilisateur.
Dans l’index source, vous définissez :
- Détails de connexion pour SQL Server.
- Intervalle auquel interroger la base de données SQL Server. L’index attend une réponse avant de réinitialiser le minuteur d’intervalle.
- Configuration de partitionnement basée sur vos besoins spécifiques en matière de traitement des données.
Prérequis
- Instance déployée du processeur de données qui inclut le composant facultatif du processeur de données.
- Une base de données SQL Server avec toutes les données brutes nécessaires disponibles est opérationnel et accessible.
Préparer la base de données SQL Server
Avant de pouvoir lire dans votre base de données SQL Server, vous devez accorder l’accès à la base de données à partir du pipeline. Vous pouvez utiliser Username/Password
, Managed identity
ou Service principal
pour authentifier le pipeline sur 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 ou les détails de mot de passe. 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’accès à l’ID de principal dans votre base de données SQL Server, exécutez la commande suivante dans la base de données :
CREATE USER processor FROM EXTERNAL PROVIDER WITH OBJECT_ID=<principalId>;
Remarque
Pour exécuter la commande précédente, vous devez utiliser l’Entra ID listé comme administrateur dans SQL Server.
Pour que la phase source se connecte à votre base de données SQL Server, elle 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.
Configurer la source SQL Server
Pour configurer la source SQL Server :
- Fournissez des détails sur la base de données SQL Server. Cette configuration inclut le nom du serveur et une requête pour récupérer les données.
- Spécifiez la méthode d'authentification. Actuellement limité à l’authentification par nom d’utilisateur/mot de passe ou par l’authentification basée sur le principal de service.
Le tableau suivant décrit les paramètres de configuration source SQL Server :
Champ | Type | Description | Obligatoire | Par défaut | Exemple |
---|---|---|---|---|---|
Nom | Chaîne | Nom visible par le client pour l’étape source. | Requis | NA | erp-database |
Description | Chaîne | Description visible par le client de l’étape source. | Facultatif | NA | Enterprise database |
Hôte serveur | Chaîne | L’URL à utiliser pour se connecter au serveur. | Requis | NA | https://contoso.com/some/url/path |
Port du serveur | Entier | Numéro de port auquel se connecter sur le serveur. | Requis | 1433 |
1433 |
Authentification | Type d'authentification | Méthode d’authentification pour la connexion au serveur. Valeurs possibles : None , Username/Password , Managed identity ou Service principal . |
Facultatif | NA |
Username/Password |
Nom d’utilisateur/mot de passe > Nom d’utilisateur | Chaîne | Nom d’utilisateur de l’authentification par nom d’utilisateur/mot de passe | Oui | N/D | myuser |
Nom d’utilisateur/mot de passe > secret | Chaîne | Référence au mot de passe stocké dans Azure Key Vault. | Oui | Oui | AKV_USERNAME_PASSWORD |
ID de locataire > principal de service | Chaîne | ID locataire du principal de service. | Oui | N/D | <Tenant ID> |
ID client > principal de service | Chaîne | ID client du principal de service. | Oui | N/D | <Client ID> |
Secret > principal de service | Chaîne | Référence à la clé secrète client du principal de service stockée dans Azure Key Vault. | Oui | N/D | AKV_SERVICE_PRINCIPAL |
Base de données | Chaîne | Nom de la base de données SQL Server à interroger. | Requis | NA | erp_db |
Requête de données | Chaîne | Requête à exécuter sur la base de données. | Requis | NA | SELECT * FROM your_table WHERE column_name = foo |
Intervalle entre les requêtes | Durée | Représentation sous forme de chaîne du temps d’attente avant l’appel d’API suivant. | Requis | 10s |
24h |
Format de données | Format | Format de données des données entrantes | Requis | NA | {"type": "json"} |
Partitionnement | Partitionnement | Configuration du partitionnement pour l’étape source. | Requis | NA | Consultez Partitionnement |
Pour en savoir plus sur les secrets, consultez Gérer les secrets pour votre déploiement Opérations Azure IoT (préversion).
Remarque
Demande un délai d’expiration en 30 secondes s’il n’y a pas de réponse du serveur SQL.
Sélectionner le format de données
Dans un pipeline de processeur de données, le champ de format de l’étape source spécifie comment désérialiser les données entrantes. Par défaut, le pipeline du processeur de données utilise le raw
format qui signifie qu’il ne convertit pas les données entrantes. Pour utiliser de nombreuses fonctionnalités de processeur de données telles que Filter
des phases dans Enrich
un pipeline, vous devez désérialiser vos données à l’étape d’entrée. Vous pouvez choisir de désérialiser vos données entrantes à partir de JSON
, , MessagePack
jsonStream
, , CBOR
ou CSV
Protobuf
de mettre en forme un message lisible par le processeur de données afin d’utiliser la fonctionnalité complète du processeur de données.
Les tableaux suivants décrivent les différentes options de configuration de désérialisation :
Champ | Description | Obligatoire | Default | Valeur |
---|---|---|---|---|
Format de données | Type du format de données. | Oui | Raw |
Raw JSON jsonStream MessagePack CBOR CSV Protobuf |
Le champ Data Format
est obligatoire et sa valeur détermine les autres champs requis.
Pour désérialiser les messages CSV, vous devez également spécifier les champs suivants :
Champ | Description | Obligatoire | Valeur | Exemple |
---|---|---|---|---|
En-tête | Indique si les données CSV incluent une ligne d’en-tête. | Oui | Yes No |
No |
Nom | Nom de la colonne au format CSV | Oui | - | temp , asset |
Chemin d’accès | Le chemin d’accès jq dans le message où les informations de colonne sont ajoutées. | Non | - | Le chemin jq par défaut est le nom de colonne |
Type de données | Type de données des données de la colonne et façon dont elles sont représentées à l’intérieur du pipeline du processeur de données. | Non | String , , Float Integer , , Boolean Bytes |
Valeur par défaut : String |
Pour désérialiser les messages Protobuf, vous devez également spécifier les champs suivants :
Champ | Description | Obligatoire | Valeur | Exemple |
---|---|---|---|---|
Descripteur | Descripteur codé en base64 pour la définition protobuf. | Oui | - | Zhf... |
Message | Nom du type de message utilisé pour mettre en forme les données. | Oui | - | pipeline |
Package | Nom du package dans le descripteur où le type est défini. | Oui | - | schedulerv1 |
Remarque
Le processeur de données ne prend en charge qu’un seul type de message dans chaque fichier .proto .
Configurer le partitionnement
Le partitionnement dans un pipeline divise les données entrantes en partitions distinctes. Le partitionnement permet le parallélisme des données dans le pipeline, ce qui peut améliorer le débit et réduire la latence. Les stratégies de partitionnement affectent la façon dont les données sont traitées dans les autres étapes du pipeline. Par exemple, la dernière étape de valeur connue et l’étape d’agrégation fonctionnent sur chaque partition logique.
Pour partitionner vos données, spécifiez une stratégie de partitionnement et le nombre de partitions à utiliser :
Champ | Description | Obligatoire | Par défaut | Exemple |
---|---|---|---|---|
Type de partition | Type de partitionnement à utiliser : partition ID ou partition Key |
Requis | ID |
ID |
Expression de partition | L’expression jq à utiliser sur le message entrant pour calculer la partition ID ou la partition Key |
Requis | 0 |
.payload.header |
Nombre de partitions | Nombre de partitions dans un pipeline de processeur de données. | Requis | 1 |
1 |
Le processeur de données ajoute des métadonnées au message entrant. Consultez la vue d’ensemble de la structure des messages du processeur de données pour comprendre comment spécifier correctement l’expression de partitionnement qui s’exécute sur le message entrant. Par défaut, l’expression de partitionnement est définie sur 0
avec le Type de partition sur ID
pour envoyer toutes les données entrantes à une seule partition.
Pour obtenir des suggestions et en savoir plus, consultez Qu’est-ce que le partitionnement ?.