Verwenden von Azure Data Share zum Freigeben von Daten für Azure Data Explorer

Es gibt viele herkömmliche Möglichkeiten zum Freigeben von Daten, z. B. über Dateifreigaben, FTP, E-Mail und APIs. Diese Methoden erfordern, dass beide Parteien eine Datenpipeline erstellen und verwalten, über die die Daten zwischen Teams und Organisationen ausgetauscht werden. Mit Azure Data Explorer können Sie Ihre Daten problemlos und sicher für Personen in Ihrem Unternehmen oder externe Partner freigeben. Die Freigabe erfolgt nahezu in Echtzeit, ohne dass eine Datenpipeline erstellt oder gewartet werden muss. Alle Datenbankänderungen, einschließlich Schema und Daten, auf Anbieterseite sind auf Consumerseite sofort verfügbar.

Azure Friday-Video

Azure Data Explorer entkoppelt Speicher und Compute, sodass Kunden mehrere Computeinstanzen (schreibgeschützt) mit demselben zugrunde liegenden Speicher ausführen können. Sie können eine Datenbank als Followerdatenbank anfügen, eine schreibgeschützte Datenbank in einem Remotecluster.

Konfigurieren der Datenfreigabe

Verwenden Sie Azure Data Share, um Einladungen und Freigaben innerhalb des Unternehmens oder an externe Partner und Kunden zu senden und zu verwalten. Zum Erstellen einer symbolischen Verknüpfung zwischen den Azure Data Explorer-Clustern des Anbieters und des Consumers verwendet Azure Data Share eine Followerdatenbank. Diese Option bietet Ihnen einen zentralen Bereich zum Anzeigen und Verwalten Ihrer Datenfreigaben in Azure Data Explorer-Clustern und anderen Datendiensten. Azure Data Share ermöglicht ihnen auch die gemeinsame Nutzung von Daten zwischen Organisationen in verschiedenen Microsoft Entra Mandanten.

Hinweis

Ein Administrator in beiden Clustern kann die Follower-Datenbank direkt mit verschiedenen APIs konfigurieren. Dies ist nützlich in Szenarien, in denen Sie zusätzliche Computeleistung benötigen, um eine Aufskalierung für die Berichterstellung vorzunehmen.

Sie können die Datenfreigabe für Folgendes konfigurieren:

Hinweis

Beim Herstellen einer Freigabebeziehung erstellt Azure Data Share eine symbolische Verknüpfung zwischen den Azure Data Explorer-Clustern des Anbieters und des Consumers. Wenn der Datenanbieter den Zugriff widerruft, wird die symbolische Verknüpfung gelöscht, und die freigegebenen Datenbanken sind nicht mehr für den Datenconsumer verfügbar.

Datenfreigabe in Azure Data Explorer

Der Datenanbieter kann die Daten auf Datenbankebene oder auf Clusterebene freigeben. Der Cluster, der die Datenbank freigibt, ist der übergeordnete Cluster (Leader), und der Cluster, der die Freigabe empfängt, ist der untergeordnete Cluster (Follower). Ein Followercluster kann einer oder mehreren übergeordneten Clusterdatenbanken untergeordnet sein. Der Followercluster wird regelmäßig synchronisiert, um Änderungen zu ermitteln. Die Verzögerungszeit zwischen Leader und Follower variiert in Abhängigkeit von der Gesamtgröße der Metadaten und der Daten zwischen einigen Sekunden und wenigen Minuten. Daten werden im Consumercluster zwischengespeichert und sind nur für Lese- oder Abfragevorgänge verfügbar. Die einzige Ausnahme bildet die Außerkraftsetzung der Richtlinie für das heiße Caching und der Datenbankberechtigungen. Bei den Abfragen im Followercluster wird der lokale Cache verwendet, es werden keine Ressourcen im Leadercluster genutzt.

Voraussetzungen

Datenfreigabeflow

  1. Der Anbieter verwendet seine Azure Data Share-Ressource, um eine gesamte Datenbank oder eine bestimmte Tabelle freizugeben und die E-Mail-Adresse des Empfängers anzugeben.
  2. Azure Data Share sendet eine E-Mail-Einladung an den Empfänger.
  3. Der Empfänger öffnet die E-Mail-Einladung und wählt seine Azure Data Share-Ressource aus.
  4. Der Empfänger verwendet Azure Data Share, um die freigegebene Datenbank oder Tabelle dem entsprechenden Cluster zuzuordnen.

Datenanbieter: gibt Daten frei

Der Datenanbieter kann eine gesamte Datenbank oder eine bestimmte Tabelle für den Empfänger freigeben.

Freigeben einer gesamten Datenbank

Befolgen Sie die Anweisungen im Video, um ein Azure Data Share-Konto zu erstellen, ein Dataset hinzuzufügen und eine Einladung zu senden. Datenanbieter: Freigeben von Daten

Freigeben von Tabellen

Sie können eine Azure Resource Manager-Vorlage verwenden, um eine oder mehrere Tabellen über Azure Data Share freizugeben.

Führen Sie die folgenden Schritte aus, um Tabellen freizugeben:

  1. Erstellen Sie eine Vorlage, und legen Sie die entsprechenden Parameter für das Dataset und die Tabelleneinschränkungen fest, und geben Sie den Empfänger der Einladung an. Verwenden Sie die Informationen in der folgenden Tabelle, um die Vorlage zu konfigurieren.

    Parameter Beschreibung Beispiel
    accountName Der Name des Azure Data Share-Kontos des Anbieters.
    location Der Speicherort aller Ressourcen. Der Leader und der Follower müssen sich am gleichen Speicherort befinden.
    shareName Der Name der Freigabe, die im Datenfreigabekonto erstellt wird.
    recipientEmail Die E-Mail des Azure Data Share-Empfängers.
    databaseName Der Name der Datenbank des Anbieters.
    databaseResourceId Die Ressourcen-ID der Datenbank des Anbieters.
    externalTablesToExclude Die Liste der auszuschließenden externen Tabellen. Verwenden Sie „["*"]“, um alle externen Tabellen auszuschließen. ["ExternalTable1ToExclude", "ExternalTable2ToExclude"]
    externalTablesToInclude Die Liste der einzuschließenden externen Tabellen. Verwenden Sie „["Logs*"]“, um alle externen Tabellen einzubeziehen, die mit „Logs“ beginnen. ["ExternalTable1ToInclude", "ExternalTable2ToInclude"]
    materializedViewsToExclude Die Liste der materialisierten Sichten, die ausgeschlossen werden sollen. Verwenden Sie „["*"]“, um alle materialisierten Sichten auszuschließen. ["Mv11ToExclude", "Mv22ToExclude"]
    materializedViewsToInclude Die Liste der materialisierten Sichten, die einbezogen werden sollen. Verwenden Sie „["Logs*"]“, um alle materialisierten Sichten einzubeziehen, die mit „Logs“ beginnen. ["Mv1ToInclude", "Mv2ToInclude"]
    tablesToExclude Die Liste der Tabellen, die ausgeschlossen werden sollen. Verwenden Sie „["*"]“, um alle Tabellen auszuschließen. ["table1ToExclude", "table2ToExclude"]
    tablesToInclude Die Liste der Tabellen, die einbezogen werden sollen. Verwenden Sie „["*"]“, um alle Tabellen einzuschließen. ["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')]"
            }
          }
        }
      ]
    }
    
  2. Bereitstellen der Azure Resource Manager-Vorlage mithilfe des Azure-Portals oder von PowerShell

    Vorlagenbereitstellung.

Datenconsumer: Empfangen von Daten

Befolgen Sie die Anweisungen im Video, um die Einladung anzunehmen, ein Datenfreigabekonto zu erstellen und es dem Consumercluster zuzuordnen.

Datenconsumer: Empfangen von Daten

Der Datenconsumer kann nun in seinem Azure Data Explorer-Cluster Benutzerberechtigungen für die freigegebenen Datenbanken und den Zugriff auf die Daten gewähren. Daten, die mithilfe der Erfassung in der Warteschlange im Azure Data Explorer-Quellcluster erfasst wurden, werden innerhalb weniger Sekunden bis wenige Minuten im Zielcluster angezeigt.

Einschränkungen