Condividi tramite


Che cos'è Delta Sharing?

Questo articolo presenta Delta Sharing in Azure Databricks, la piattaforma di condivisione dei dati sicura che consente di condividere dati e risorse di IA in Azure Databricks con utenti esterni all'organizzazione, indipendentemente dal fatto che tali utenti usino o meno Databricks. La condivisione delta è anche la base per Databricks Marketplace, un forum aperto per lo scambio di prodotti dati e Clean Rooms, un ambiente sicuro e di protezione della privacy in cui più parti possono collaborare sui dati aziendali sensibili.

La condivisione differenziale è disponibile anche come progetto open source che è possibile usare per condividere tabelle Delta da altre piattaforme.

Nota

Per informazioni su come accedere ai dati condivisi con l'utente usando la condivisione Delta, vedere Accedere ai dati condivisi con l'utente usando la condivisione delta (per i destinatari).

Come funziona Delta Sharing?

Delta Sharing è un protocollo aperto sviluppato da Azure Databricks per la condivisione sicura dei dati con altre organizzazioni, indipendentemente dalle piattaforme di elaborazione usate.

Esistono tre modi per condividere i dati usando Delta Sharing:

  1. Il protocollo di condivisione da Databricks a Databricks, che consente di condividere i dati e le risorse di IA dall'area di lavoro abilitata per Unity Catalog con utenti che hanno anche accesso a un'area di lavoro di Databricks abilitata per Unity Catalog.

    Questo approccio usa il server Delta Sharing integrato in Azure Databricks. Supporta alcune funzionalità di Delta Sharing non supportate negli altri protocolli, tra cui la condivisione dei notebook, la condivisione dei volumi di Unity Catalog, la condivisione dei modelli di intelligenza artificiale di Unity Catalog, la governance dei dati di Unity Catalog, il controllo e il rilevamento dell'utilizzo per provider e destinatari. L'integrazione con Unity Catalog semplifica la configurazione e la governance sia per i provider che per i destinatari e migliora le prestazioni.

    Vedere Condividere i dati usando il protocollo Delta Sharing da Databricks a Databricks (per i provider).

  2. Il protocollo di condivisione aperta Databricks, che consente di condividere dati tabulari gestiti in un'area di lavoro di Databricks abilitata per Unity Catalog con gli utenti in qualsiasi piattaforma di elaborazione.

    Questo approccio usa il server di Delta Sharing integrato in Azure Databricks ed è utile quando si gestiscono i dati usando Unity Catalog e si vuole condividerlo con gli utenti che non usano Databricks o che non hanno accesso a un'area di lavoro di Databricks abilitata per Unity Catalog. L'integrazione con Unity Catalog sul lato del provider semplifica la configurazione e la governance per i provider.

    Vedere Condividere i dati usando il protocollo di condivisione aperto Delta Sharing (per i provider).

  3. Implementazione gestita dal cliente del server di Delta Sharing open source, che consente di condividere da qualsiasi piattaforma a qualsiasi piattaforma, indipendentemente da Databricks.

    La documentazione di Azure Databricks non illustra le istruzioni per configurare il proprio server di Delta Sharing. Vedere github.com/delta-io/delta-sharing.

Condivisioni, provider e destinatari

I concetti principali alla base di Delta Sharing in Azure Databricks sono condivisioni, provider e destinatari.

Che cos'è una condivisione?

In Delta Sharing, una condivisione è una raccolta di sola lettura di tabelle e partizioni di tabella che un provider vuole condividere con uno o più destinatari. Se il destinatario usa un'area di lavoro di Databricks abilitata per Unity Catalog, è anche possibile includere file di notebook, visualizzazioni (incluse visualizzazioni dinamiche che limitano l'accesso a livello di riga e colonna), volumi di Unity Catalog e modelli di Unity Catalog in una condivisione.

È possibile aggiungere o rimuovere in qualsiasi momento tabelle, viste, volumi, modelli e file di notebook da una condivisione ed è possibile assegnare o revocare in qualsiasi momento l'accesso del destinatario dei dati a una condivisione.

In un'area di lavoro di Azure Databricks abilitata per Unity Catalog, una condivisione è un oggetto a protezione diretta registrato in Unity Catalog. Se si rimuove una condivisione dal metastore di Unity Catalog, tutti i destinatari di tale condivisione perdono la possibilità di accedervi.

Vedere Creare e gestire le condivisioni in Delta Sharing.

Che cos'è un provider?

Un provider è un'entità che condivide i dati con un destinatario. Se si è un provider e si vuole sfruttare il server di Delta Sharing di Databricks predefinito e gestire condivisioni e destinatari usando Unity Catalog, è necessaria almeno un'area di lavoro di Azure Databricks abilitata per Unity Catalog. Non è necessario eseguire la migrazione di tutte le aree di lavoro per Unity Catalog. È sufficiente creare una nuova area di lavoro abilitata per Unity Catalog per le esigenze di Delta Sharing.

Se un destinatario si trova in un'area di lavoro di Databricks abilitata per Unity Catalog, il provider è anche un oggetto a protezione diretta di Unity Catalog che rappresenta l'organizzazione del provider e associa l'organizzazione a un insieme di condivisioni.

Che cos'è un destinatario?

Un destinatario è un'entità che riceve condivisioni da un provider. In Unity Catalog, una condivisione è un oggetto a protezione diretta che rappresenta un'organizzazione e la associa a una credenziale o a un identificatore di condivisione sicura e che consente all'organizzazione di accedere a una o più condivisioni.

In qualità di provider di dati (condivisore), è possibile definire più destinatari per qualsiasi metastore di Unity Catalog, ma se si desidera condividere dati da più metastore con un determinato utente o gruppo di utenti, è necessario definire il destinatario separatamente per ogni metastore. Un destinatario può avere accesso a più condivisioni.

Se un provider elimina un destinatario dal metastore di Unity Catalog, il destinatario perde l'accesso a tutte le condivisioni a cui ha potuto accedere in precedenza.

Vedere Creare e gestire i destinatari dei dati per Delta Sharing.

Condivisione aperta e condivisione da Databricks a Databricks

Questa sezione descrive i due protocolli per la condivisione da un'area di lavoro di Databricks abilitata per Unity Catalog.

Nota

Questa sezione presuppone che il provider si trovi in un'area di lavoro di Azure Databricks abilitata per Unity Catalog. Per informazioni sulla configurazione di un server di Delta Sharing open source da condividere da una piattaforma non Databricks o da un'area di lavoro non Unity Catalog, vedere github.com/delta-io/delta-sharing.

Il modo in cui un provider usa Delta Sharing in Azure Databricks dipende dall'utente con cui condividono i dati:

  • La condivisione aperta consente di condividere i dati con qualsiasi utente, indipendentemente dal fatto che abbiano o meno accesso ad Azure Databricks.
  • La condivisione da Databricks a Databricks consente di condividere dati con gli utenti di Azure Databricks la cui area di lavoro è collegata a un metastore di Unity Catalog diverso da quello dell'utente. La condivisione da Databricks a Databricks supporta anche la condivisione di notebook, volume e modelli, non disponibile nella condivisione aperta.

Che cos'è Delta Sharing aperta?

Se si vogliono condividere dati con utenti esterni all'area di lavoro di Azure Databricks, indipendentemente dal fatto che usino Databricks, è possibile usare Delta Sharing aperta per condividere i dati in modo sicuro. In quanto provider di dati, l'utente genera un token e lo condivide in modo sicuro con il destinatario. Il token è utilizzato per autenticare e ottenere l'accesso in lettura alle tabelle incluse nelle condivisioni a cui è stato assegnato l'accesso.

I destinatari possono accedere ai dati condivisi usando molti strumenti di calcolo e piattaforme, tra cui:

  • Azure Databricks
  • Apache Spark
  • Pandas
  • Power BI

Per un elenco completo dei connettori di Delta Sharing e informazioni su come usarli, vedere la documentazione Delta Sharing.

Vedere anche Condividere i dati usando il protocollo di condivisione aperta Delta Sharing (per i provider).

Che cos'è Delta Sharing da Databricks a Databricks?

Se si vogliono condividere dati con gli utenti che hanno un'area di lavoro di Databricks abilitata per Unity Catalog, è possibile usare Delta Sharing da Databricks a Databricks. La condivisione da Databricks a Databricks consente di condividere dati con gli utenti in altri account Databricks, indipendentemente che si trovino in AWS, Azure o GCP. È anche un ottimo modo per condividere in modo sicuro i dati tra diversi metastore di Unity Catalog nel proprio account Databricks. Si noti che non è necessario usare Delta Sharing per condividere i dati tra aree di lavoro collegate allo stesso metastore di Unity Catalog, perché in questo scenario è possibile usare lo stesso Unity Catalog per gestire l'accesso ai dati tra aree di lavoro.

Uno dei vantaggi della condivisione da Databricks a Databricks è che il destinatario della condivisione non necessita di un token per accedere alla condivisione e il provider non deve gestire i token dei destinatari. La sicurezza della connessione di condivisione, inclusi verifica dell'identità, autenticazione e controllo, viene gestita interamente tramite Delta Sharing e la piattaforma Databricks. Un altro vantaggio è la possibilità di condividere file di notebook di Databricks, visualizzazioni, volumi di Unity Catalog e modelli di Unity Catalog.

Vedere anche Condividere i dati usando il protocollo Delta Sharing da Databricks a Databricks (per i provider).

In che modo gli amministratori del provider configurano Delta Sharing?

Questa sezione offre una panoramica del modo in cui i provider possono abilitare Delta Sharing e avviare la condivisione da un'area di lavoro di Azure Databricks abilitata per Unity Catalog. Per Delta Sharing open source, vedere github.com/delta-io/delta-sharing.

La condivisione da Databricks a Databricks tra i metastore di Unity Catalog nello stesso account è sempre abilitata. Se si è un provider che vuole abilitare Delta Sharing per condividere dati con le aree di lavoro di Databricks in altri account o client non Databricks, un amministratore dell'account Azure Databricks o un amministratore del metastore esegue i passaggi di configurazione seguenti (a livello generale):

  1. Abilitare Delta Sharing per il metastore di Unity Catalog che gestisce i dati da condividere.

    Nota

    Non è necessario abilitare Delta Sharing sul metastore se si intende usare Delta Sharing solo per condividere i dati soltanto con gli utenti in altri metastore di Unity Catalog nell'account. La condivisione da metastore a metastore all'interno di un singolo account Azure Databricks è abilitata per impostazione predefinita.

    Consultare la sezione Abilitare Delta Sharing in un metastore.

  2. Creare una condivisione che includa le risorse di dati registrate nel metastore di Unity Catalog.

    Se si condivide con un destinatario non Databricks (noto come condivisione aperta) è possibile includere tabelle nel formato Delta o Parquet. Se si prevede di usare la condivisione da Databricks a Databricks, è anche possibile aggiungere visualizzazioni, volumi di Unity Catalog, modelli del Unity Catalog e file di notebook a una condivisione.

    Vedere Creare e gestire le condivisioni in Delta Sharing.

  3. Creare un destinatario.

    Vedere Creare e gestire i destinatari dei dati per Delta Sharing.

    Se il destinatario non è un utente di Databricks o non ha accesso a un'area di lavoro di Databricks abilitata per Unity Catalog, è necessario usare la condivisione aperta. Per tale destinatario viene generato un insieme di credenziali basate su token.

    Se il destinatario ha accesso a un'area di lavoro di Databricks abilitata per Unity Catalog, è possibile usare la condivisione da Databricks a Databricks e non sono necessarie credenziali basate su token. L'utente richiede un identificatore di condivisione dal destinatario e lo usa per stabilire la connessione protetta.

    Suggerimento

    Usare se stessi come destinatario di prova per provare il processo di configurazione.

  4. Concedere al destinatario l'accesso a una o più condivisioni.

    Vedere Gestire l'accesso alle condivisioni dati di Delta Sharing (per i provider).

    Nota

    Questo passaggio può essere eseguito anche da un utente non amministratore con privilegi USE SHARE, USE RECIPIENT e SET SHARE PERMISSION. Vedere Privilegi del catalogo Unity e oggetti a protezione diretta.

  5. Inviare al destinatario le informazioni necessarie per connettersi alla condivisione (soltanto condivisione aperta).

    Vedere Inviare al destinatario le informazioni di connessione.

    Per la condivisione aperta, usare un canale sicuro per inviare al destinatario un collegamento di attivazione che consente di scaricare le credenziali basate su token.

    Per la condivisione da Databricks a Databricks, i dati inclusi nella condivisione diventano disponibili nell'area di lavoro di Databricks del destinatario non appena si concede l'accesso alla condivisione.

Ora, il destinatario può accedere ai dati condivisi.

In che modo i destinatari accedono ai dati condivisi?

I destinatari accedono alle risorse di dati condivise in formato di sola lettura. I file di notebook condivisi sono di sola lettura, ma possono essere clonati e quindi modificati ed eseguiti nell'area di lavoro del destinatario esattamente come qualsiasi altro notebook.

L'accesso sicuro dipende dal modello di condivisione:

Ogni volta che il provider di dati aggiorna tabelle dati o volumi nel proprio account Databricks, gli aggiornamenti vengono visualizzati quasi in tempo reale nel sistema del destinatario.

Come si tiene traccia di chi condivide e accede ai dati condivisi?

I provider di dati nelle aree di lavoro di Azure Databricks abilitate per Unity Catalog possono usare le tabelle di sistema e la registrazione di controllo di Azure Databricks per monitorare la creazione e la modifica di condivisioni e destinatari e possono anche monitorare l'attività dei destinatari nelle condivisioni. Vedere Controllare e monitorare la condivisione dei dati.

I destinatari dei dati che usano dati condivisi in un'area di lavoro di Databricks possono usare le tabelle di sistema e la registrazione di controllo di Azure Databricks per comprendere chi accede ai dati. Vedere Controllare e monitorare la condivisione dei dati.

Condivisione di volumi

È possibile condividere i volumi usando il flusso di condivisione da Databricks a Databricks. Vedere Aggiungere volumi a una condivisione (per i provider) e Leggere i dati condivisi usando Delta Sharing da Databricks a Databricks (per i destinatari) (per i destinatari).

Condivisione di modelli

È possibile condividere modelli usando il flusso di condivisione da Databricks a Databricks. Vedere Aggiungere modelli a una condivisione (per i provider) e Leggere i dati condivisi usando Delta Sharing da Databricks a Databricks (per i destinatari) (per i destinatari).

Condivisione di notebook

È possibile usare Delta Sharing per condividere file di notebook usando il flusso di condivisione da Databricks a Databricks. Vedere Aggiungere file di notebook a una condivisione (per i provider) e Leggere i notebook condivisi (per i destinatari).

Limitazione dell'accesso a livello di riga e colonna

È possibile condividere visualizzazioni dinamiche che limitano l'accesso a determinati dati di tabella in base alle proprietà del destinatario. La condivisione dinamica della visualizzazione richiede il flusso di condivisione da Databricks a Databricks. Vedere Aggiungere visualizzazioni dinamiche a una condivisione per filtrare righe e colonne.

Delta Sharing e streaming

Delta Sharing supporta Structured Streaming di Spark. Un provider può condividere una tabella con la cronologia in modo che un destinatario possa usarlo come un origine di Structured Streaming, elaborando i dati condivisi in modo incrementale con bassa latenza. I destinatari possono anche eseguire query di spostamento fisico Delta Lake sulle tabelle condivise con la cronologia.

Per informazioni su come condividere tabelle con la cronologia, vedere Aggiungere tabelle a una condivisione. Per informazioni su come usare tabelle condivise come origini di streaming, vedere Eseguire query su una tabella usando Structured Streaming di Apache Spark (per i destinatari della condivisione da Databricks a Databricks) o Accedere a una tabella condivisa usand Structured Streaming di Spark (per i destinatari dei dati di condivisione aperta).

Vedere anche Streaming su Azure Databricks.

Matrice di supporto delle funzionalità Delta Lake

Delta Sharing supporta la maggior parte delle funzionalità Delta Lake quando si condivide una tabella. Questa matrice di supporto elenca:

  • Funzionalità delta che richiedono versioni specifiche di Databricks Runtime, il connettore Spark per Delta Sharing in open source o il connettore Python per Delta Sharing in open source.
  • Funzionalità parzialmente supportate.
Funzionalità Provider Destinatario di Databricks Destinatario in open source
Vettori di eliminazione La condivisione di tabelle con questa funzionalità è disponibile in Anteprima pubblica. - Databricks Runtime 14.1+ per le query batch
- Databricks Runtime 14.2+ per CDF e query di streaming
- Connettore Spark di Delta Sharing 3.1+
- Connettore Python di Delta Sharing 1.1.0+
- Power BI v2.132.908.0+
Mapping delle colonne La condivisione di tabelle con questa funzionalità è disponibile in Anteprima pubblica. - Databricks Runtime 14.1+ per le query batch
- Databricks Runtime 14.2+ per CDF e query di streaming
- Connettore Spark di Delta Sharing 3.1+
- Connettore Python di Delta Sharing 1.1.0+
- Power BI v2.132.908.0+
Formato Uniform La condivisione di tabelle con questa funzionalità è disponibile in Anteprima pubblica. - Databricks Runtime 14.1+ per le query batch
- Databricks Runtime 14.2+ per CDF e query di streaming
- Connettore Spark di Delta Sharing 3.1+
- Connettore Python di Delta Sharing 1.1.0+
- Power BI v2.132.908.0+
Checkpoint V2 Supportato con limitazioni Supportato con limitazioni Supportato con limitazioni
TimestampNTZ Supportata Databricks Runtime 14.1+ Connettore Spark di Delta Sharing 3.3+
Clustering liquido Supportato con limitazioni Supportato con limitazioni Supportato con limitazioni

Domande frequenti su Delta Sharing

Di seguito sono riportate le domande frequenti su Delta Sharing.

È necessario disporre di Unity Catalog per usare Delta Sharing?

No, non è necessario che Unity Catalog condivida (come provider) o consumi dati condivisi (come destinatario). Tuttavia, Unity Catalog offre vantaggi come il supporto per la condivisione di asset non tabulari e di intelligenza artificiale, la governance predefinita, la semplicità e le prestazioni delle query.

I provider possono condividere i dati in due modi:

  • Inserire gli asset da condividere nella gestione di Unity Catalog e condividerli usando il server di Delta Sharing di Azure Databricks predefinito.

    Non è necessario eseguire la migrazione di tutti gli asset a Unity Catalog. È necessaria una sola area di lavoro di Azure Databricks abilitata per Unity Catalog per gestire gli asset da condividere. In alcuni account, le nuove aree di lavoro vengono abilitate automaticamente per Unity Catalog. Consultare Abilitazione automatica di Unity Catalog.

  • Implementare il server aperto di Delta Sharing per condividere i dati, senza necessariamente usare l'account Azure Databricks.

I destinatari possono utilizzare i dati in due modi:

  • Senza un'area di lavoro di Databricks. Usare connettori open source Delta Sharing disponibili per molte piattaforme dati, tra cui Power BI, Pandas e Apache Spark open source. Vedere Leggere i dati condivisi usando la condivisione aperta di Delta Sharing (per i destinatari) e il progetto open source di Delta Sharing.

  • In un'area di lavoro di Databricks. Le aree di lavoro dei destinatari non devono essere abilitate per Unity Catalog ma, se lo sono, esistono vantaggi di governance, semplicità e prestazioni.

    Le organizzazioni destinatarie che vogliono questi vantaggi non devono eseguire la migrazione di tutte le risorse a Unity Catalog. È necessaria una sola area di lavoro di Azure Databricks abilitata per Unity Catalog per gestire le risorse condivise con l'utente. In alcuni account, le nuove aree di lavoro vengono abilitate automaticamente per Unity Catalog. Consultare Abilitazione automatica di Unity Catalog.

Vedere Leggere i dati condivisi usando la condivisione aperta di Data Sharing (per i destinatari) e Leggere i dati condivisi con Delta Sharing da Databricks a Databricks (per i destinatari).

È necessario essere un cliente di Databricks per usare Delta Sharing?

No, Delta Sharing è un protocollo aperto. È possibile condividere dati non Databricks con destinatari in qualsiasi piattaforma dati. I provider possono configurare un server aperto di Delta Sharing da condividere da qualsiasi piattaforma di calcolo. I destinatari possono usare dati condivisi usando connettori open source Delta Sharing per molti prodotti di dati, tra cui Power BI, Pandas e Spark open source.

Tuttavia, l'uso di Delta Sharing in Azure Databricks, in particolare la condivisione da un'area di lavoro abilitata per Unity Catalog, presenta molti vantaggi.

Per dettagli, vedere la prima domanda in queste domande frequenti.

Delta Sharing comporta costi in uscita?

Delta Sharing all'interno di un'area non comporta alcun costo in uscita. A differenza di altre piattaforme di condivisione dati, Delta Sharing non richiede la replica dei dati. Questo modello presenta molti vantaggi, ma significa che il fornitore del cloud può addebitare costi di uscita ai dati quando si condividono i dati tra cloud o aree. Azure Databricks supporta la condivisione da Cloudflare R2, che non comporta costi in uscita e fornisce altri strumenti e raccomandazioni per monitorare ed evitare costi in uscita. Vedere Monitorare e gestire i costi di uscita Delta Sharing (per i provider).

I provider possono revocare l'accesso ai destinatari?

Sì, l'accesso ai destinatari può essere revocato su richiesta e a livelli di granularità specificati. È possibile negare l'accesso dei destinatari a condivisioni specifiche e indirizzi IP specifici, filtrare i dati tabulari per un destinatario, revocare i token dei destinatari ed eliminare completamente i destinatari. Vedere Revocare l'accesso dei destinatari a una condivisione e Creare e gestire i destinatari dei dati per Delta Sharing.

È sicuro usare URL prefirmati?

Delta Sharing usa URL prefirmati per fornire l'accesso temporaneo a un file nell'archivio oggetti. Vengono assegnati solo ai destinatari che hanno già accesso ai dati condivisi. Sono sicuri perché sono di breve durata e non espandono il livello di accesso oltre a ciò che è già stato concesso ai destinatari.

I token che vengono usati nel protocollo di condivisione aperta di Delta Sharing sono sicuri?

Poiché Delta Sharing abilita la condivisione multipiattaforma, a differenza di altre piattaforme di condivisione dei dati disponibili, il protocollo di condivisione richiede un token aperto. I provider possono garantire la sicurezza dei token configurando la durata del token, impostando i controlli di rete e revocando l'accesso su richiesta. Inoltre, il token non espande il livello di accesso oltre a ciò che è già stato concesso ai destinatari. Vedere Considerazioni relative alla sicurezza per i token.

Se si preferisce non usare token per gestire l'accesso alle condivisioni dei destinatari, è consigliabile usare la condivisione da Databricks a Databricks o contattare il team dell'account Databricks per ottenere alternative.

Delta Sharing supporta la condivisione delle visualizzazioni?

Sì, Delta Sharing supporta la condivisione delle visualizzazioni. Vedere Aggiungere visualizzazioni a una condivisione.

Per informazioni sui miglioramenti pianificati per la visualizzazione della condivisione, contattare il team dell'account Databricks.

Limitazioni

Vedere anche Matrice di supporto delle funzionalità Delta Lake.

Quote di risorse

Azure Databricks applica le quote di risorse in tutti gli oggetti a protezione diretta di Delta Sharing. Queste quote sono elencate in Limiti delle risorse. Se si prevede di superare questi limiti di risorse, contattare il team dell'account Azure Databricks.

È possibile monitorare l'utilizzo delle quote usando le API delle quote delle risorse del catalogo Unity. Vedere Monitorare l'utilizzo delle quote delle risorse del catalogo Unity.

Passaggi successivi