Partager via


Travailler avec les données de clients dans Fabric

Microsoft Fabric OneLake est un lac de données logique unifié pour l’ensemble de l’organisation, conçu pour être l’emplacement unique de toutes les données d’analyse. Il est fourni automatiquement avec chaque locataire Microsoft Fabric et repose sur Azure Data Lake Storage (ADLS) Gen2. OneLake prend en charge n’importe quel type de fichier, structuré ou non structuré et stocke toutes les données tabulaires au format Delta Parquet. Il permet la collaboration entre différents groupes d’entreprises en fournissant un seul lac de données régi par défaut par défaut par la propriété distribuée pour la collaboration au sein des limites d’un locataire. Les espaces de travail au sein d’un client permettent à différentes parties de l’organisation de distribuer les stratégies de propriété et d’accès, et toutes les données dans OneLake peuvent être accessibles via des éléments de données tels que Lakehouses et Entrepôts.

En termes de magasins de données, OneLake sert d’emplacement de stockage commun pour l’ingestion, la transformation, les insights en temps réel et les visualisations Business Intelligence. Il centralise les différents services Fabric et est le stockage des éléments de données consommés par toutes les charges de travail dans Fabric.

Comment lire et écrire des données dans Microsoft Fabric

Microsoft Fabric est une plateforme qui permet le stockage et la gestion des données client. Pour lire et écrire des données dans Fabric, vous devez utiliser les API REST Fabric et les méthodes d’authentification appropriées.

Autorisations API

Certaines méthodes d’accès aux données client nécessitent l’utilisation d’autres services en dehors de Fabric, tels que Stockage Azure ou Azure SQL Database. Par exemple, dans l’exemple du kit de développement Microsoft Fabric, l’autorisation d’API Stockage Azure user_impersonation est utilisée conjointement avec l’autorisation Lakehouse.Read.All du service Power BI pour accéder aux données à partir de Lakehouses.

Vous pouvez utiliser Azure SQL Database pour accéder aux données de table à partir d’éléments d’entrepôt. Dans ce cas, configurez votre application avec user_impersonation d’Azure SQL Database pour interroger la base de données pour le compte de l’utilisateur et Warehouse.Read.All du service Power BI pour interroger le point de terminaison Get Warehouse de l’API REST Fabric.

Veillez à configurer votre application Microsoft Entra ID en fonction de vos besoins de développement.

Authentification

Avant de commencer à utiliser au nom de l’utilisateur les API REST Fabric ou d’autres services, tels que Stockage Azure et Azure SQL Database, vous devez vous authentifier à l’aide d’un jeton. Ce jeton peut être obtenu via un processus d’échange de jetons.

Le Kit de développement logiciel (SDK) Fabric fournit une méthode permettant d’acquérir un jeton d’accès dans le serveur front-end de charge de travail. Par exemple, consultez Exemple de contrôleur de charge de travail.

Ce jeton client doit être transmis au serveur principal de la charge de travail et échangé en utilisant le flux On-Behalf-Of d’un jeton avec les étendues nécessaires pour accéder aux ressources dont vous avez besoin, telles que OneLake. Par exemple, pour accéder à un Lakehouse et lire depuis ce Lakehouse, un utilisateur doit avoir autorisé l’application à effectuer des appels d’API en son nom à l’aide de l’autorisation Stockage Azure user_impersonation. Ensuite, le jeton d’accès doit être obtenu avec l’étendue déléguée https://storage.azure.com/user_impersonation afin d’utiliser Stockage Azure dans le serveur principal.

Si vous décidez d’utiliser SQL pour accéder à vos données client, le jeton d’accès doit être obtenu avec l’étendue https://database.windows.net//user_impersonation pour utiliser Azure SQL Database et l’espace de noms Microsoft.Data.SqlClient. Le jeton d’accès doit être utilisé comme écrit, avec deux barres obliques avant user_impersonation, pour être validé par la classe SQLConnection. Pour davantage d’exemples d’authentification par jeton, consultez l’exemple du Kit de développement Microsoft Fabric.

Pour plus d’informations sur la façon d’obtenir un jeton, consultez la documentation de l’API REST développement de charge de travail Microsoft Fabric.

Lire les métadonnées

Les API REST Fabric vous permettent également d’accéder aux propriétés des éléments. Par exemple, l’interrogation de l’API Get Lakehouse vous fournit les métadonnées d’un certain Lakehouse, y compris des propriétés utiles telles que des chemins OneLake et des chaîne de connexion SQL. Un autre point de terminaison utile est l’API Get Warehouse, qui retourne les informations suivantes :

    {
        Id: Guid
        Type: string
        DisplayName: string
        Description: string
        WorkspaceId: Guid
        Properties {
            ConnectionInfo: string
            CreatedDate: DateTime
            LastUpdatedTime: DateTime
        }
    }

Ici, la propriété « ConnectionInfo » est le nom de domaine complet (FQDN) de l’entrepôt SQL Server. Avec ce nom de domaine complet, vous pouvez établir une connexion SQL. Plus d’informations, consultez Connectivité à l’entrepôt de données dans Microsoft Fabric. Pour obtenir des exemples d’implémentation, consultez Kit de développement de charge de travail Microsoft Fabric.

Lecture des données en cours

Une fois que vous vous authentifiez, vous pouvez vous connecter à OneLake à l’aide d’Azure Data Lake Storage API REST pour lire différents types de données. Nous vous recommandons d’utiliser le protocole Delta Lake pour lire les tables.

Sinon, si vous choisissez d’utiliser Azure SQL Database, vous pouvez implémenter la procédure suivante pour lire des données à partir d’un entrepôt.

  1. Créez un contexte d’autorisation. Pour obtenir un exemple de création d’un contexte d’autorisation, consultez la méthode AuthenticateDataPlaneCall.

  2. Acquérir un jeton avec l’étendue Warehouse.Read.All pour le compte de l’utilisateur à l’aide du jeton du porteur transmis à partir du front-end.

  3. Utilisez le jeton Fabric pour appeler l’API Get Warehouse. Il est nécessaire d’accéder aux informations de connexion et au nom complet de l’entrepôt, qui est le catalogue initial du serveur.

  4. Acquérir un jeton avec des étendues SQL pour le compte de l’utilisateur. Pour réussir à établir une connexion SQL, utilisez l’étendue https://database.windows.net//user_impersonation.

  5. Utilisez le jeton SQL et les informations de connexion pour ouvrir une connexion SQL :

    private SqlConnection GetSqlConnection(string token, string databaseFqdn, string initialCatalog)
            {
                var builder = new SqlConnectionStringBuilder();
                builder.DataSource = databaseFqdn; // ConnectionInfo from Get Warehouse API
                builder.InitialCatalog = initialCatalog; //display name of the Warehouse
                builder.ConnectTimeout = 120;
    
                var connection = new SqlConnection();
                connection.AccessToken = token; // SQL token acquired with the Azure SQL Database user_impersonation scope
                connection.ConnectionString = builder.ConnectionString;
                connection.Open();
                return connection;
            }
    
  6. Cette connexion peut maintenant être interrogée pour accéder aux données à partir de l’entrepôt. Pour plus d’informations sur l’utilisation de l’espace de noms Microsoft.Data.SqlClient, consultez la documentation sur l’espace de noms Microsoft.Data.SqlClient.

Écriture de données

En plus de lire des données à l’aide du jeton, vous pouvez également utiliser les API ADLS pour écrire des données dans des tables, comme décrit par le protocole Delta Lake.

Vous pouvez également utiliser les API pour créer des fichiers et des répertoires.

Vous pouvez également utiliser d’autres charges de travail Fabric pour écrire des données dans la plateforme. Par exemple, vous pouvez utiliser l’API de charge de travail Lakehouse de Fabric pour charger efficacement les types de fichiers courants dans une table Delta optimisée. Pour ce faire, envoyez une requête POST au point de terminaison d'API Tables - Load Table.

La connexion SQL peut également être utilisée pour exécuter des commandes qui insèrent des données dans des tables.