Partager via


Envoyez des données à Microsoft Fabric à partir d’un pipeline de traitement 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.

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 Fabric Lakehouse pour rédiger des données dans un lakehouse de Microsoft Fabric à partir d’un pipeline de traitement de données Azure IoT préversion. L’étape de destination écrit des fichiers Parquet dans un lakehouse qui vous permet d’afficher les données dans les tables delta. L’étape de destination traite les messages avant de les envoyer à Microsoft Fabric.

Prérequis

Pour configurer et utiliser une phase de destination de pipeline vers Microsoft Fabric, vous avez besoin des éléments suivants :

Configurer Microsoft Fabric

Avant de pouvoir écrire dans Microsoft Fabric à partir d’un pipeline de données, vous devez accorder l’accès au lac de données à partir du pipeline. Vous pouvez utiliser un principal de service ou une identité managée pour authentifier le pipeline. 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.

Avant de configurer l’accès du principal de service ou de l’identité managée à un lac de données, activez l’authentification du principal de service.

Pour créer un principal de service avec une clé secrète client :

  1. Exécutez la commande Azure CLI suivante pour créer un principal de service :

    az ad sp create-for-rbac --name <YOUR_SP_NAME> 
    
  2. Les sorties de cette commande incluent les éléments suivants : appId, displayName, password et tenant. 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 ajouter le principal de service à votre espace de travail Microsoft Fabric :

  1. Notez l’ID de votre espace de travail et l’ID de votre lakehouse. Vous trouverez ces valeurs dans l’URL que vous utilisez pour accéder à votre lakehouse :

    https://msit.powerbi.com/groups/<your workspace ID>/lakehouses/<your lakehouse ID>?experience=data-engineering

  2. Dans votre espace de travail, sélectionnez Gérer les accès :

    Capture d’écran montrant comment rechercher le lien Gérer l’accès.

  3. Sélectionnez Ajouter des personnes ou des groupes :

    Capture d’écran montrant comment ajouter un utilisateur.

  4. Recherchez votre principal de service par nom. Commencez à taper pour obtenir une liste des principaux de service correspondants. Sélectionnez le principal de service que vous avez créé précédemment :

    Capture d’écran montrant comment ajouter un principal de service.

  5. Accordez à l’administrateur de votre principal de service l’accès à l’espace de travail.

Configurez votre secret

Pour que la phase de destination se connecte à Microsoft Fabric, elle doit accéder à un secret qui contient les détails de l’authentification. Pour créer un secret :

  1. 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 AccessFabricSecret --value <client-secret>
    
  2. 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).

Configurez l’étape de destination

La configuration JSON de l’étape de destination vers Fabric Lakehousedéfinit les détails de l’étape. Pour créer cette étape, vous pouvez interagir avec l’interface utilisateur basée sur des formulaires ou fournir la configuration JSON sous l’onglet Advanced (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 - Azure IoT MQ output
Description Chaîne Description conviviale de ce que fait l’index. Non Write to topic default/topic1
WorkspaceId Chaîne L’ID de l’espace de travail du lakehouse. Oui -
L’ID du Lakehouse Chaîne L’ID du lakehouse de Lakehouse. Oui -
Table Chaîne Nom de la table dans laquelle écrire. Oui -
Le chemin d’accès au fichier1 Modèle Le chemin d’accès au fichier dans lequel écrire le fichier Parquet. Non {{{instanceId}}}/{{{pipelineId}}}/{{{partitionId}}}/{{{YYYY}}}/{{{MM}}}/{{{DD}}}/{{{HH}}}/{{{mm}}}/{{{fileNumber}}}
Lot2 Batch Procédure pour regrouper les données. Non 60s 10s
Authentification4 Chaîne Détails de l’authentification pour se connecter à Azure Data Explorer. Service principal ou Managed identity Principal du service Oui -
Réessayer Réessayer La stratégie de nouvelles tentatives à utiliser. Non default fixed
Nom> des colonnes string Nom de la colonne. Oui temperature
Colonnes > Type3 énumération de chaînes Le type de données conservées dans la colonne, à l’aide de l’un des types primitifs Delta. Oui integer
Chemin d’accès > des colonnes Chemin d’accès L’emplacement à l’intérieur de chaque enregistrement de donnée où lire la valeur d’une colonne. Non .{{name}} .temperature

1Chemin de fichier : pour écrire des fichiers dans Microsoft Fabric, vous avez besoin d’un chemin de fichier. Vous pouvez utiliser des modèles pour configurer les chemins d’accès aux fichiers. Les chemins d’accès aux fichiers doivent contenir les composants suivants dans n’importe quel ordre :

  • instanceId
  • pipelineId
  • partitionId
  • YYYY
  • MM
  • DD
  • HH
  • mm
  • fileNumber

Les noms de fichiers sont des valeurs d’entier incrémentielles, comme indiqué par fileNumber. Veillez à inclure une extension de fichier si vous souhaitez que votre système reconnaisse le type de fichier.

2Traitement par lot : le traitement par lot est obligatoire quand vous écrivez des données dans Microsoft Fabric. L’étape de destination regroupe des messages sur un intervalle de temps configurable.

Si vous ne configurez pas d’intervalle de traitement par lots, l’étape utilise une valeur par défaut de 60 secondes.

3Type : le processeur de données écrit dans Microsoft Fabric en utilisant le format delta. Le processeur de données prend en charge tous les types primitifs de données delta à l’exception des types decimal et timestamp without time zone.

Pour vous assurer que toutes les dates et heures sont représentées correctement dans Microsoft Fabric, vérifiez que la valeur de la propriété est une chaîne RFC 3339 valide et que le type de données est date ou timestamp.

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 à Microsoft Fabric.

Authentification basée sur le principal de service

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’étape de destination vers Microsoft Fabric Lakehouse qui écrit l’intégralité du message dans la tablequickstart de la base de données :

{
    "displayName": "Fabric Lakehouse - 520f54",
    "type": "output/fabric@v1",
    "viewOptions": {
        "position": {
            "x": 0,
            "y": 784
        }
    },
    "workspace": "workspaceId",
    "lakehouse": "lakehouseId",
    "table": "quickstart",
    "columns": [
        {
            "name": "Timestamp",
            "type": "timestamp",
            "path": ".Timestamp"
        },
        {
            "name": "AssetName",
            "type": "string",
            "path": ".assetname"
        },
        {
            "name": "Customer",
            "type": "string",
            "path": ".Customer"
        },
        {
            "name": "Batch",
            "type": "integer",
            "path": ".Batch"
        },
        {
            "name": "CurrentTemperature",
            "type": "float",
            "path": ".CurrentTemperature"
        },
        {
            "name": "LastKnownTemperature",
            "type": "float",
            "path": ".LastKnownTemperature"
        },
        {
            "name": "Pressure",
            "type": "float",
            "path": ".Pressure"
        },
        {
            "name": "IsSpare",
            "type": "boolean",
            "path": ".IsSpare"
        }
    ],
    "authentication": {
        "type": "servicePrincipal",
        "tenantId": "tenantId",
        "clientId": "clientId",
        "clientSecret": "secretReference"
    },
    "batch": {
        "time": "5s",
        "path": ".payload"
    },
    "retry": {
        "type": "fixed",
        "interval": "20s",
        "maxRetries": 4
    }
}

Cette configuration définit que :

  • 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 présente un exemple de message d’entrée vers l’étape de destination d’un lakehouse de Microsoft Fabric :

{
  "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"
}