Usare Condivisione dati di Azure per condividere dati con Esplora dati di Azure

Esistono molti modi tradizionali per condividere i dati, ad esempio tramite condivisioni file, FTP, posta elettronica e API. Questi metodi richiedono a entrambe le parti di compilare e gestire una pipeline di dati che sposta i dati tra team e organizzazioni. Con Azure Esplora dati, è possibile condividere facilmente e in modo sicuro i dati con persone dell'azienda o dei partner esterni. La condivisione si verifica in tempo quasi in tempo reale, senza dover compilare o gestire una pipeline di dati. Tutte le modifiche del database, inclusi lo schema e i dati, sul lato provider sono immediatamente disponibili sul lato consumer.

Video di Venerdì di Azure.

Azure Esplora dati disaccoppiare l'archiviazione e il calcolo, che consente ai clienti di eseguire più istanze di calcolo (di sola lettura) nella stessa risorsa di archiviazione sottostante. È possibile collegare un database come database follower, ovvero un database di sola lettura in un cluster remoto.

Configurare la condivisione dei dati

Usare Azure Condivisione dati per inviare e gestire inviti e condivisioni all'interno dell'azienda o con partner esterni e clienti. Azure Condivisione dati usa un database di follower per creare un collegamento simbolico tra il provider e il cluster di Azure Esplora dati del consumer. Questa opzione offre un unico riquadro per visualizzare e gestire tutte le condivisioni dati in cluster di Azure Esplora dati e altri servizi dati. Azure Condivisione dati consente anche di condividere i dati tra organizzazioni in tenant di Microsoft Entra diversi.

Nota

Un Amministrazione in entrambi i cluster può configurare direttamente il database follower con varie API. Questo è utile negli scenari in cui è necessario un calcolo aggiuntivo per aumentare la scalabilità per la creazione di report.

È possibile configurare la condivisione dei dati per quanto segue:

Nota

Quando viene stabilita la relazione di condivisione, Azure Condivisione dati crea un collegamento simbolico tra il provider e il cluster di Azure Esplora dati del consumer. Se il provider di dati revoca l'accesso, il collegamento simbolico viene eliminato e i database condivisi non sono più disponibili per il consumer dei dati.

Condivisione dei dati di Azure Esplora dati.

Il provider di dati può condividere i dati a livello di database o a livello di cluster. La condivisione del cluster è il cluster leader e il cluster che riceve la condivisione è il cluster follower. Un cluster di follower può seguire uno o più database del cluster leader. Il cluster follower sincronizza periodicamente per verificare le modifiche. Il tempo di ritardo tra il leader e il follower varia da pochi secondi a pochi minuti, a seconda delle dimensioni complessive dei metadati e dei dati. I dati vengono memorizzati nella cache nel cluster consumer e sono disponibili solo per operazioni di lettura o query, con un'eccezione per eseguire l'override dei criteri di memorizzazione nella cache frequente e delle autorizzazioni del database. Le query in esecuzione nel cluster follower usano la cache locale e non usano le risorse del cluster leader.

Prerequisiti

Flusso di condivisione dati

  1. Il provider usa la risorsa azure Condivisione dati per condividere un database completo o una tabella specifica e specificare l'indirizzo di posta elettronica del destinatario.
  2. Azure Condivisione dati invia un messaggio di posta elettronica al ricevitore.
  3. Il ricevitore apre l'invito alla posta elettronica e seleziona la risorsa di Azure Condivisione dati.
  4. Il ricevitore usa Azure Condivisione dati per eseguire il mapping del database o della tabella condivisa al cluster appropriato.

Provider di dati - condivisioni dati

Il provider di dati può condividere un database completo o una tabella specifica con il ricevitore.

Condivisione di un database completo

Seguire le istruzioni nel video per creare un account di Azure Condivisione dati, aggiungere un set di dati e inviare un invito. Provider di dati : condividere i dati.

Condivisione di tabelle

È possibile usare un modello di Azure Resource Manager per condividere una o più tabelle tramite Azure Condivisione dati.

Per condividere le tabelle, seguire questa procedura:

  1. Creare un modello e impostare i parametri appropriati nel set di dati, le restrizioni della tabella e specificare il destinatario dell'invito. Usare le informazioni nella tabella seguente per configurare il modello.

    Parametro Descrizione Esempio
    accountName Nome dell'account Azure Condivisione dati del provider.
    location Posizione di tutte le risorse. Il leader e il follower devono trovarsi nella stessa posizione.
    Nomecondivisione Nome della condivisione che verrà creata nell'account di condivisione dati.
    recipientEmail Messaggio di posta elettronica del ricevitore di Azure Condivisione dati.
    databaseName Nome del database del provider.
    databaseResourceId ID risorsa del database del provider.
    externalTablesToExclude Elenco di tabelle esterne da escludere. Per escludere tutte le tabelle esterne, usare ["*"]. ["ExternalTable1ToExclude", "ExternalTable2ToExclude"]
    externalTablesToInclude Elenco di tabelle esterne da includere. Per includere tutte le tabelle esterne a partire da 'Logs', usare ["Logs*"]. ["ExternalTable1ToInclude", "ExternalTable2ToInclude"]
    materializedViewsToExclude Elenco di visualizzazioni materializzate da escludere. Per escludere tutte le viste materializzate, usare ["*"]. ["Mv11ToExclude", "Mv22ToExclude"]
    materializedViewsToInclude Elenco delle visualizzazioni materializzate da includere. Per includere tutte le viste materializzate a partire da 'Logs', usare ["Logs*"]. ["Mv1ToInclude", "Mv2ToInclude"]
    tablesToExclude Elenco di tabelle da escludere. Per escludere tutte le tabelle, usare ["*"]. ["table1ToExclude", "table2ToExclude"]
    tablesToInclude Elenco di tabelle da includere. Per includere tutte le tabelle, usare ["*"]. ["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. Distribuire il modello di Resource Manager di Azure usando il portale di Azure o PowerShell.

    distribuzione di modelli.

Consumer di dati - Ricevere dati

Seguire le istruzioni nel video per accettare l'invito, creare un account di condivisione dati e eseguire il mapping al cluster consumer.

Consumer di dati - Ricezione di dati.

Il consumer di dati può ora passare al cluster azure Esplora dati per concedere le autorizzazioni utente ai database condivisi e accedere ai dati. I dati inseriti usando l'inserimento in coda nel cluster di Azure Esplora dati di origine verranno visualizzati nel cluster di destinazione entro pochi secondi.

Limitazioni