Używanie usługi Azure Data Share do udostępniania danych usłudze Azure Data Explorer

Istnieje wiele tradycyjnych sposobów udostępniania danych, takich jak udziały plików, FTP, poczta e-mail i interfejsy API. Te metody wymagają, aby obie strony tworzyły i obsługiwały potok danych, który przenosi dane między zespołami i organizacjami. Dzięki usłudze Azure Data Explorer możesz łatwo i bezpiecznie udostępniać dane osobom w firmie lub partnerach zewnętrznych. Udostępnianie odbywa się niemal w czasie rzeczywistym bez konieczności tworzenia ani utrzymywania potoku danych. Wszystkie zmiany bazy danych, w tym schemat i dane, po stronie dostawcy są natychmiast dostępne po stronie konsumenta.

Azure Friday Video.

Usługa Azure Data Explorer rozdziela magazyn i zasoby obliczeniowe, co umożliwia klientom uruchamianie wielu wystąpień obliczeniowych (tylko do odczytu) w tym samym magazynie bazowym. Bazę danych można dołączyć jako następującą bazę danych, która jest bazą danych tylko do odczytu w klastrze zdalnym.

Konfigurowanie udostępniania danych

Usługa Azure Data Share umożliwia wysyłanie zaproszeń i udziałów oraz zarządzanie nimi w firmie lub z partnerami zewnętrznymi i klientami. Usługa Azure Data Share używa bazy danych obserwowanej do utworzenia symbolicznego połączenia między dostawcą a klastrem usługi Azure Data Explorer klienta. Ta opcja umożliwia wyświetlenie wszystkich udziałów danych w klastrach usługi Azure Data Explorer i innych usługach danych oraz zarządzanie nimi. Usługa Azure Data Share umożliwia również udostępnianie danych między organizacjami w różnych dzierżawach Microsoft Entra.

Uwaga

Administracja w obu klastrach można bezpośrednio skonfigurować bazę danych obserwowanych przy użyciu różnych interfejsów API. Jest to przydatne w scenariuszach, w których potrzebne są dodatkowe zasoby obliczeniowe do skalowania w poziomie na potrzeby raportowania.

Udostępnianie danych można skonfigurować dla następujących elementów:

Uwaga

Po ustanowieniu relacji udostępniania usługa Azure Data Share tworzy symboliczne połączenie między dostawcą a klastrem usługi Azure Data Explorer odbiorcy. Jeśli dostawca danych odwołuje dostęp, link symboliczny zostanie usunięty, a udostępnione bazy danych nie będą już dostępne dla konsumenta danych.

Udostępnianie danych w usłudze Azure Data Explorer.

Dostawca danych może udostępniać dane na poziomie bazy danych lub na poziomie klastra. Klaster współużytkowania bazy danych jest klastrem lidera, a klaster odbierający udział jest klastrem obserwowanym. Klaster obserwowany może podążać za co najmniej jedną bazą danych klastra wiodącego. Klaster obserwowany okresowo synchronizuje się w celu sprawdzenia zmian. Czas opóźnienia między liderem a kontynuacją różni się od kilku sekund do kilku minut, w zależności od ogólnego rozmiaru metadanych i danych. Dane są buforowane w klastrze odbiorców i są dostępne tylko dla operacji odczytu lub zapytań, z wyjątkiem zastępowania zasad gorącego buforowania i uprawnień bazy danych. Zapytania uruchomione w klastrze obserwowanym używają lokalnej pamięci podręcznej i nie korzystają z zasobów klastra wiodącego.

Wymagania wstępne

Przepływ udostępniania danych

  1. Dostawca używa swojego zasobu usługi Azure Data Share do udostępniania pełnej bazy danych lub określonej tabeli i określa adres e-mail odbiorcy.
  2. Usługa Azure Data Share wysyła wiadomość e-mail z zaproszeniem do odbiorcy.
  3. Odbiorca otwiera zaproszenie e-mail i wybiera zasób usługi Azure Data Share.
  4. Odbiornik używa usługi Azure Data Share do mapowania udostępnionej bazy danych lub tabeli na odpowiedni klaster.

Dostawca danych — udostępnia dane

Dostawca danych może udostępnić pełną bazę danych lub określoną tabelę odbiorcy.

Udostępnianie pełnej bazy danych

Postępuj zgodnie z instrukcjami w filmie wideo, aby utworzyć konto usługi Azure Data Share, dodać zestaw danych i wysłać zaproszenie. Dostawca danych — udostępnianie danych.

Udostępnianie tabel

Szablon usługi Azure Resource Manager umożliwia udostępnianie co najmniej jednej tabeli za pośrednictwem usługi Azure Data Share.

Aby udostępnić tabele, wykonaj następujące czynności:

  1. Utwórz szablon i ustaw odpowiednie parametry w zestawie danych, ograniczeniach tabeli i określ adresata zaproszenia. Skorzystaj z informacji w poniższej tabeli, aby ułatwić skonfigurowanie szablonu.

    Parametr Opis Przykład
    accountName Nazwa konta usługi Azure Data Share dostawcy.
    Lokalizacji Lokalizacja wszystkich zasobów. Lider i zwolennik muszą znajdować się w tej samej lokalizacji.
    Nazwaudziału Nazwa udziału, który zostanie utworzony na koncie udziału danych.
    recipientEmail Adres e-mail odbiorcy usługi Azure Data Share.
    databaseName Nazwa bazy danych dostawcy.
    databaseResourceId Identyfikator zasobu bazy danych dostawcy.
    externalTablesToExclude Lista tabel zewnętrznych do wykluczenia. Aby wykluczyć wszystkie tabele zewnętrzne, użyj polecenia ["*"]. ["ExternalTable1ToExclude", "ExternalTable2ToExclude"]
    externalTablesToInclude Lista tabel zewnętrznych do uwzględnienia. Aby uwzględnić wszystkie tabele zewnętrzne rozpoczynające się od ciągu "Logs", użyj polecenia ["Logs*"]. ["ExternalTable1ToInclude", "ExternalTable2ToInclude"]
    materializedViewsToExclude Lista zmaterializowanych widoków do wykluczenia. Aby wykluczyć wszystkie zmaterializowane widoki, użyj polecenia ["*"]. ["Mv11ToExclude", "Mv22ToExclude"]
    materializedViewsToInclude Lista zmaterializowanych widoków do uwzględnienia. Aby uwzględnić wszystkie zmaterializowane widoki rozpoczynające się od "Dzienniki", użyj polecenia ["Logs*".]. ["Mv1ToInclude", "Mv2ToInclude"]
    tablesToExclude Lista tabel do wykluczenia. Aby wykluczyć wszystkie tabele, użyj polecenia ["*"]. ["table1ToExclude", "table2ToExclude"]
    tablesToInclude Lista tabel do uwzględnienia. Aby dołączyć wszystkie tabele, użyj ciągu ["*"]. ["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. Wdróż szablon usługi Azure Resource Manager przy użyciu Azure Portal lub programu PowerShell.

    wdrożenie szablonu.

Odbiorca danych — odbieranie danych

Postępuj zgodnie z instrukcjami w filmie wideo, aby zaakceptować zaproszenie, utworzyć konto udziału danych i mapować je na klaster odbiorców.

Odbiorca danych — odbieranie danych.

Użytkownik danych może teraz przejść do klastra usługi Azure Data Explorer, aby udzielić użytkownikom uprawnień do udostępnionych baz danych i uzyskać dostęp do danych. Dane pozyskane przy użyciu pozyskiwania w kolejce do źródłowego klastra usługi Azure Data Explorer będą wyświetlane w klastrze docelowym w ciągu kilku sekund do kilku minut.

Ograniczenia