Använda Azure Data Share för att dela data med Azure Data Explorer

Det finns många traditionella sätt att dela data, till exempel via filresurser, FTP, e-post och API:er. Dessa metoder kräver att båda parter skapar och underhåller en datapipeline som flyttar data mellan team och organisationer. Med Azure Data Explorer kan du enkelt och säkert dela dina data med personer i företaget eller externa partner. Delning sker nästan i realtid, utan att du behöver skapa eller underhålla en datapipeline. Alla databasändringar, inklusive schema och data, på providersidan är omedelbart tillgängliga på konsumentsidan.

Azure Friday Video.

Azure Data Explorer frikopplar lagring och beräkning, vilket gör att kunderna kan köra flera beräkningsinstanser (skrivskyddade) på samma underliggande lagring. Du kan koppla en databas som en uppföljningsdatabas, som är en skrivskyddad databas i ett fjärrkluster.

Konfigurera datadelning

Använd Azure Data Share för att skicka och hantera inbjudningar och resurser i företaget eller med externa partner och kunder. Azure Data Share använder en uppföljningsdatabas för att skapa en symbolisk länk mellan providern och konsumentens Azure Data Explorer-kluster. Det här alternativet ger dig ett enda fönster för att visa och hantera alla dina dataresurser i Azure Data Explorer kluster och andra datatjänster. Med Azure Data Share kan du också dela data mellan organisationer i olika Microsoft Entra klientorganisationer.

Anteckning

En Admin på båda klustren kan konfigurera uppföljningsdatabasen direkt med olika APIS. Detta är användbart i scenarier där du behöver ytterligare beräkning för att skala ut för rapportering.

Du kan konfigurera datadelning för följande:

Anteckning

När delningsrelationen upprättas skapar Azure Data Share en symbolisk länk mellan providern och konsumentens Azure Data Explorer-kluster. Om dataleverantören återkallar åtkomsten tas den symboliska länken bort och de delade databaserna är inte längre tillgängliga för datakonsumenten.

Azure Data Explorer datadelning.

Dataprovidern kan dela data på databasnivå eller klusternivå. Klustret som delar databasen är det ledande klustret och klustret som tar emot resursen är efterföljarklustret. Ett följarkluster kan följa en eller flera leader-klusterdatabaser. Följeklustret synkroniseras regelbundet för att söka efter ändringar. Fördröjningen mellan ledaren och följaren varierar från några sekunder till några minuter, beroende på den totala storleken på metadata och data. Data cachelagras i konsumentklustret och är endast tillgängligt för läs- eller frågeåtgärder, med ett undantag för att åsidosätta principen för frekvent cachelagring och databasbehörigheterna. Frågorna som körs i det följande klustret använder lokal cache och använder inte resurserna i leaderklustret.

Förutsättningar

Dataresursflöde

  1. Providern använder sin Azure Data Share resurs för att dela en fullständig databas eller en specifik tabell och ange mottagarens e-postadress.
  2. Azure Data Share skickar en e-post inbjudan till mottagaren.
  3. Mottagaren öppnar e-post inbjudan och väljer sin Azure Data Share resurs.
  4. Mottagaren använder Azure Data Share för att mappa den delade databasen eller tabellen till lämpligt kluster.

Dataprovider – delar data

Dataprovidern kan dela en fullständig databas eller en specifik tabell med mottagaren.

Dela en fullständig databas

Följ anvisningarna i videon för att skapa ett Azure Data Share-konto, lägga till en datauppsättning och skicka en inbjudan. Dataprovider – dela data.

Dela tabeller

Du kan använda en Azure Resource Manager-mall för att dela en eller flera tabeller via Azure Data Share.

Använd följande steg för att dela tabeller:

  1. Skapa en mall och ange lämpliga parametrar för datauppsättningen, tabellbegränsningar och ange mottagaren för inbjudan. Använd informationen i följande tabell för att konfigurera mallen.

    Parameter Beskrivning Exempel
    accountName Namnet på leverantörens Azure Data Share-konto.
    Plats Platsen för alla resurser. Ledaren och följaren måste finnas på samma plats.
    Resursnamn Namnet på resursen som ska skapas på dataresurskontot.
    recipientEmail E-postmeddelandet från Azure Data Share-mottagaren.
    databaseName Namnet på providerns databas.
    databaseResourceId Resurs-ID för providerns databas.
    externalTablesToExclude Listan över externa tabeller som ska undantas. Om du vill exkludera alla externa tabeller använder du ["*"]. ["ExternalTable1ToExclude", "ExternalTable2ToExclude"]
    externalTablesToInclude Listan över externa tabeller som ska inkluderas. Om du vill inkludera alla externa tabeller som börjar med "Loggar" använder du ["Loggar*"]. ["ExternalTable1ToInclude", "ExternalTable2ToInclude"]
    materializedViewsToExclude Listan över materialiserade vyer som ska undantas. Om du vill exkludera alla materialiserade vyer använder du ["*"]. ["Mv11ToExclude", "Mv22ToExclude"]
    materializedViewsToInclude Listan över materialiserade vyer som ska inkluderas. Om du vill inkludera alla materialiserade vyer som börjar med "Loggar" använder du ["Loggar*"]. ["Mv1ToInclude", "Mv2ToInclude"]
    tablesToExclude Listan över tabeller som ska undantas. Om du vill exkludera alla tabeller använder du ["*"]. ["table1ToExclude", "table2ToExclude"]
    tablesToInclude Listan över tabeller som ska inkluderas. Om du vill inkludera alla tabeller använder du ["*"]. ["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. Distribuera Azure Resource Manager-mallen med hjälp av Azure Portal eller PowerShell.

    malldistribution.

Datakonsument – ta emot data

Följ anvisningarna i videon för att acceptera inbjudan, skapa ett dataresurskonto och mappa till konsumentklustret.

Datakonsument – ta emot data.

Datakonsumenten kan nu gå till sitt Azure Data Explorer-kluster för att bevilja användarbehörighet till de delade databaserna och komma åt data. Data som matas in med köad inmatning till Azure-källklustret Data Explorer visas i målklustret inom några sekunder till några minuter.

Begränsningar