Partager via


Partage de données avec Azure Data Explorer

Vous pouvez partager des données de plusieurs manières traditionnelles, telles que via des partages de fichiers, FTP, e-mail et API. Ces méthodes traditionnelles nécessitent que les deux parties créent et gèrent un pipeline de données qui déplace les données entre les équipes et les organisations. Azure Data Explorer vous permet de partager vos données de manière simple et sécurisée avec des personnes de votre entreprise ou des partenaires externes. Le partage se produit en quasi-temps réel, sans nécessiter la création ou la gestion d’un pipeline de données. Toutes les modifications apportées côté fournisseur à la base de données, notamment celles affectant le schéma et les données, sont instantanément disponibles côté client.

Vidéo Azure Friday.

Azure Data Explorer dissocie le stockage et le calcul, ce qui vous permet d’exécuter plusieurs instances de calcul (en lecture seule) sur le même stockage sous-jacent. Vous pouvez attacher une base de données en tant que base de données abonnée, c’est-à-dire une base de données en lecture seule sur un cluster distant.

Configurer le partage de données

Utilisez Azure Data Share pour envoyer et gérer des invitations et des partages au sein de l’entreprise ou avec des partenaires et clients externes. Azure Data Share utilise une base de données abonnée pour créer un lien symbolique entre les clusters Azure Data Explorer du fournisseur et du consommateur. Cette option vous permet de voir et de gérer dans un seul volet tous vos partages de données, qu’ils soient stockés dans des clusters Azure Data Explorer ou dans d’autres services de données. Azure Data Share vous permet également de partager des données entre les organisations dans différents locataires Microsoft Entra.

Remarque

Un administrateur sur les deux clusters peut configurer directement la base de données de suivi avec différentes API. Cette configuration est utile dans les scénarios où vous avez besoin d’un calcul supplémentaire pour effectuer un scale-out pour la création de rapports.

Vous pouvez configurer le partage de données pour les options suivantes :

Remarque

Quand la relation de partage est établie, Azure Data Share crée un lien symbolique entre le cluster Azure Data Explorer du fournisseur et celui du consommateur. Si le fournisseur de données révoque l’accès, le lien symbolique est supprimé et les bases de données partagées ne sont plus disponibles pour le consommateur de données.

Partage de données dans Azure Data Explorer.

Le fournisseur de données peut partager les données au niveau de la base de données ou du cluster. Le cluster qui partage la base de données est le cluster leader et celui qui reçoit le partage est le cluster abonné. Un cluster abonné peut suivre une ou plusieurs bases de données d’un cluster leader. Le cluster abonné se synchronise à intervalles réguliers pour vérifier si des modifications ont été apportées. Le décalage entre le leader et l’abonné varie de quelques secondes à quelques minutes en fonction de la taille globale des métadonnées et des données. Les données sont mises en cache sur le cluster consommateur et ne sont disponibles que pour les opérations de lecture ou d’interrogation, à l’exception du remplacement de la stratégie de mise en cache à chaud et des autorisations de base de données. Les requêtes s’exécutant sur le cluster abonné se servent du cache local et n’utilisent pas les ressources du cluster leader.

Prérequis

Flux du partage de données

  1. Le fournisseur utilise sa ressource Azure Data Share pour partager une base de données complète ou une table donnée, et pour spécifier l’adresse e-mail du destinataire.
  2. Azure Data Share envoie une invitation par e-mail au destinataire.
  3. Le destinataire ouvre l’invitation par e-mail et sélectionne sa ressource Azure Data Share.
  4. Le destinataire utilise Azure Data Share pour mapper la base de données ou la table partagée vers le cluster approprié.

Fournisseur de données

Le fournisseur de données peut partager une base de données complète ou une table spécifique avec le destinataire.

Partage d’une base de données complète

Suivez les instructions de la vidéo pour créer un compte Azure Data Share, ajouter un jeu de données et envoyer une invitation. Fournisseur de données : partager des données.

Partage de tables

Vous pouvez utiliser un modèle Azure Resource Manager pour partager une ou plusieurs tables via Azure Data Share.

Pour partager des tables, effectuez les étapes suivantes :

  1. Créez un modèle et définissez les paramètres appropriés pour le jeu de données et les restrictions de table, puis spécifiez le destinataire de l’invitation. Utilisez les informations du tableau suivant pour configurer le modèle.

Paramètres généraux

Paramètre Description Exemple
accountName Nom du compte Azure Data Share du fournisseur.
emplacement L’emplacement de toutes les ressources. Le responsable et l’abonné doivent se trouver au même emplacement.
shareName Nom du partage que vous créez sur le compte de partage de données.
recipientEmail Adresse e-mail du destinataire Azure Data Share.

Paramètres de base de données

Paramètre Description Exemple
databaseName Nom de la base de données du fournisseur.
databaseResourceId ID de ressource de la base de données du fournisseur.

Paramètres de table et d’affichage

Paramètre Description Exemple
tablesExternesÀExclure Liste des tables externes à exclure. Pour exclure toutes les tables externes, utilisez [« * »]. ["ExternalTable1ToExclude", "ExternalTable2ToExclude"]
externalTablesToInclude Liste des tables externes à inclure. Pour inclure toutes les tables externes commençant par « Logs », utilisez [« Logs* »]. ["ExternalTable1ToInclude", "ExternalTable2ToInclude"]
vues matérialisées à exclure Liste des vues matérialisées à exclure. Pour exclure toutes les vues matérialisées, utilisez [« * »]. ["Mv11ToExclude", "Mv22ToExclude"]
vuesMatérialiséesÀInclure Liste des vues matérialisées à inclure. Pour inclure toutes les vues matérialisées commençant par « Logs », utilisez [« Logs* »]. ["Mv1ToInclude", "Mv2ToInclude"]
tablesÀExclure Liste des tables à exclure. Pour exclure toutes les tables, utilisez [« * »]. ["table1ToExclude", "table2ToExclude"]
tablesÀInclure Liste des tables à inclure. Pour inclure toutes les tables, utilisez [« * »]. ["table1ToInclude", "table2ToInclude"]
    {
      "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
      "contentVersion": "1.0.0.0",
      "parameters": {
        "accountName": { "type": "String" },
        "location": { "defaultValue": "[resourceGroup().location]", "type": "String" },
        "shareName": { "type": "String" },
        "recipientEmail": { "type": "String" },
        "databaseName": { "type": "String" },
        "databaseResourceId": { "type": "String" },
        "externalTablesToExclude": { "type": "Array" },
        "externalTablesToInclude": { "type": "Array" },
        "materializedViewsToExclude": { "type": "Array" },
        "materializedViewsToInclude": { "type": "Array" },
        "tablesToExclude": { "type": "Array" },
        "tablesToInclude": { "type": "Array" }
      },
      "variables": {
        "invitationSuffix": "[replace(replace(parameters('recipientEmail'),'@', '_'), '.', '_')]"
      },
      "resources": [
        {
          "type": "Microsoft.DataShare/accounts",
          "apiVersion": "2021-08-01",
          "name": "[parameters('accountName')]",
          "location": "[parameters('location')]",
          "identity": {
            "type": "SystemAssigned"
          },
          "properties": {}
        },
        {
          "type": "Microsoft.DataShare/accounts/shares",
          "apiVersion": "2021-08-01",
          "name": "[concat(parameters('accountName'), '/' , parameters('shareName'))]",
          "dependsOn": [
            "[resourceId('Microsoft.DataShare/accounts', parameters('accountName'))]"
          ],
          "properties": {
            "shareKind": "InPlace"
          }
        },
        {
          "type": "Microsoft.DataShare/accounts/shares/invitations",
          "apiVersion": "2021-08-01",
          "name": "[concat(parameters('accountName'), '/',  parameters('shareName'), '/', concat(parameters('shareName'), variables('invitationSuffix')))]",
          "dependsOn": [
            "[resourceId('Microsoft.DataShare/accounts/shares', parameters('accountName'), parameters('shareName'))]",
            "[resourceId('Microsoft.DataShare/accounts', parameters('accountName'))]"
          ],
          "properties": {
            "targetEmail": "[parameters('recipientEmail')]"
          }
        },
        {
          "type": "Microsoft.DataShare/accounts/shares/dataSets",
          "apiVersion": "2021-08-01",
          "name": "[concat(parameters('accountName'), '/', parameters('shareName'), '/', parameters('databaseName'))]",
          "dependsOn": [
            "[resourceId('Microsoft.DataShare/accounts/shares', parameters('accountName'), parameters('shareName'))]",
            "[resourceId('Microsoft.DataShare/accounts', parameters('accountName'))]"
          ],
          "kind": "KustoTable",
          "properties": {
            "kustoDatabaseResourceId": "[parameters('databaseResourceId')]",
            "tableLevelSharingProperties": {
              "externalTablesToExclude": "[parameters('externalTablesToExclude')]",
              "externalTablesToInclude": "[parameters('externalTablesToInclude')]",
              "materializedViewsToExclude": "[parameters('materializedViewsToExclude')]",
              "materializedViewsToInclude": "[parameters('materializedViewsToInclude')]",
              "tablesToExclude": "[parameters('tablesToExclude')]",
              "tablesToInclude": "[parameters('tablesToInclude')]"
            }
          }
        }
      ]
    }
  1. Déployez le modèle Azure Resource Manager à l’aide du portail Azure ou de PowerShell.

    déploiement de modèle.

Consommateur de données : recevoir des données

Suivez les instructions de la vidéo pour accepter l’invitation, créer un compte de partage de données et mapper au cluster consommateur.

Consommateur de données : recevoir des données.

Le consommateur de données peut maintenant accéder à son cluster Azure Data Explorer pour accorder des autorisations utilisateur aux bases de données partagées et accéder aux données. Les données ingérées à l’aide de l’ingestion en file d’attente dans le cluster source Azure Data Explorer apparaissent sur le cluster cible en quelques secondes à quelques minutes.

Limites