Usare Condivisione dati di Azure per condividere dati con Esplora dati di Azure
Esistono molti modi tradizionali per condividere dati, ad esempio tramite condivisioni file, FTP, posta elettronica e API. Questi metodi richiedono che entrambe le parti creino e mantengano una pipeline di dati che sposta i dati tra team e organizzazioni. Con Azure Esplora dati, è possibile condividere in modo semplice e sicuro i dati con persone dell'azienda o dei partner esterni. La condivisione avviene quasi in tempo reale, senza la necessità di compilare o gestire una pipeline di dati. Tutte le modifiche al database, inclusi lo schema e i dati, sul lato provider sono immediatamente disponibili sul lato consumer.
Azure Esplora dati disaccoppia 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 nell'azienda o con partner e clienti esterni. Azure Condivisione dati usa un database 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 tra cluster di Azure Esplora dati e altri servizi dati. Azure Condivisione dati consente anche di condividere dati tra organizzazioni in tenant Microsoft Entra diversi.
Nota
Un amministratore in entrambi i cluster può configurare direttamente il database follower con varie API. Ciò è utile negli scenari in cui è necessario un calcolo aggiuntivo per aumentare il numero di istanze per la creazione di report.
È possibile configurare la condivisione dei dati per quanto segue:
- Intero database (impostazione predefinita).
- Tabelle specifiche: condivisione a livello di tabella.
Nota
Quando viene stabilita la relazione di condivisione, Azure Condivisione dati crea un collegamento simbolico tra il provider e il cluster 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 di dati.
Il provider di dati può condividere i dati a livello di database o a livello di cluster. Il cluster che condivide il database è il cluster leader e il cluster che riceve la condivisione è il cluster follower. Un cluster follower può seguire uno o più database del cluster leader. Il cluster follower esegue periodicamente la sincronizzazione per verificare la presenza di 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 ed è disponibile solo per le operazioni di lettura o query, con un'eccezione per eseguire l'override dei criteri di memorizzazione nella cache ad accesso 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
- Una sottoscrizione di Azure. Creare un account Azure gratuito.
- Un cluster e un database di Azure Esplora dati per leader e follower. Creare un cluster e un database.
- Il database leader deve contenere dati. È possibile inserire dati usando uno dei metodi descritti nella panoramica dell'inserimento.
Flusso di condivisione dati
- 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.
- Azure Condivisione dati invia un invito tramite posta elettronica al ricevitore.
- Il ricevitore apre l'invito tramite posta elettronica e seleziona la risorsa azure Condivisione dati.
- Il ricevitore usa Azure Condivisione dati per eseguire il mapping del database o della tabella condivisa al cluster appropriato.
Provider di dati : condivide i 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 azure Condivisione dati, aggiungere un set di dati e inviare un invito.
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:
Creare un modello e impostare i parametri appropriati per il 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. shareName Nome della condivisione che verrà creata nell'account di condivisione dati. recipientEmail Messaggio di posta elettronica del ricevitore Condivisione dati di Azure. 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 che iniziano con "Logs", usare ["Logs*"]. ["ExternalTable1ToInclude", "ExternalTable2ToInclude"]
materializedViewsToExclude Elenco di visualizzazioni materializzate da escludere. Per escludere tutte le viste materializzate, usare ["*"]. ["Mv11ToExclude", "Mv22ToExclude"]
materializedViewsToInclude Elenco di 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')]" } } } ] }
Distribuire il modello di Azure Resource Manager usando il portale di Azure o PowerShell.
Consumer di dati : ricevere i dati
Seguire le istruzioni nel video per accettare l'invito, creare un account di condivisione dati ed eseguire il mapping al cluster consumer.
Il consumer di dati può ora passare al cluster di azure Esplora dati per concedere 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.