Condividere i dati e gli asset di intelligenza artificiale in modo sicuro usando la condivisione Delta

Questo articolo presenta la condivisione delta in Azure Databricks, la piattaforma di condivisione dei dati sicura che consente di condividere dati e asset di intelligenza artificiale in Azure Databricks con utenti esterni all'organizzazione, indipendentemente dal fatto che questi utenti usino o meno Databricks.

Importante

Gli articoli sulla condivisione delta di questo sito sono incentrati sulla condivisione di dati, notebook e modelli di intelligenza artificiale di Azure Databricks. La condivisione differenziale è disponibile anche come progetto open source che è possibile usare per condividere tabelle Delta da altre piattaforme. La condivisione delta fornisce anche il backbone per Databricks Marketplace, un forum aperto per lo scambio di prodotti dati.

Nota

Se si è un destinatario di dati a cui è stato concesso l'accesso ai dati condivisi tramite condivisione differenziale e si vuole solo imparare ad accedere a tali dati, vedere Accedere ai dati condivisi con l'utente usando la condivisione delta (per i destinatari).

Che cos'è la condivisione Delta?

La condivisione delta è un protocollo aperto sviluppato da Databricks per la condivisione sicura dei dati con altre organizzazioni indipendentemente dalle piattaforme di elaborazione usate.

Esistono tre modi per condividere i dati usando la condivisione Delta:

  1. Il protocollo di condivisione Databricks-to-Databricks, che consente di condividere i dati e gli asset di intelligenza artificiale dall'area di lavoro abilitata per Unity Catalog con utenti che hanno anche accesso a un'area di lavoro databricks abilitata per Unity Catalog.

    Questo approccio usa il server di condivisione differenziale integrato in Azure Databricks. Supporta alcune funzionalità di condivisione delta non supportate negli altri protocolli, tra cui la condivisione dei notebook, la condivisione dei volumi del catalogo Unity, la condivisione dei modelli di intelligenza artificiale del catalogo Unity, la governance dei dati del Catalogo Unity, 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.

    Per i provider, vedere Condividere i dati usando il protocollo Delta Sharing Databricks to-Databricks (per i provider).

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

    Questo approccio usa il server di condivisione delta 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 non hanno accesso a un'area di lavoro di Databricks abilitata per Unity Catalog. L'integrazione con Unity Catalog sul lato provider semplifica la configurazione e la governance per i provider.

    Per i provider, vedere Condividere i dati usando il protocollo di condivisione open sharing differenziale (per i provider).

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

    La documentazione di Azure Databricks non illustra le istruzioni per la configurazione del proprio server di condivisione Delta. Vedere github.com/delta-io/delta-sharing.

Condivisioni, provider e destinatari

I concetti principali alla base della condivisione differenziale in Azure Databricks sono condivisioni, provider e destinatari.

Che cos'è una condivisione?

In Condivisione delta una condivisione è una raccolta di sola lettura di tabelle e partizioni di tabella che un provider desidera condividere con uno o più destinatari. Se il destinatario usa un'area di lavoro 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 del catalogo Unity e modelli di Catalogo Unity in una condivisione.

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

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 condivisioni per la condivisione Delta.

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 condivisione Delta 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 esistenti a Unity Catalog. È sufficiente creare una nuova area di lavoro abilitata per il catalogo Unity per le esigenze di condivisione Delta.

Se un destinatario si trova in un'area di lavoro 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 set 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 lo associa a un identificatore di condivisione sicura o credenziali 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 del catalogo Unity, il destinatario perde l'accesso a tutte le condivisioni a cui può accedere in precedenza.

Vedere Creare e gestire i destinatari dei dati per la condivisione differenziale.

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 trova in un'area di lavoro di Azure Databricks abilitata per Unity Catalog. Per informazioni sulla configurazione di un server di condivisione Delta 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 la condivisione delta in Azure Databricks dipende da chi condividono i dati con:

  • 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. Databricks-to-Databricks supporta anche notebook, volume e condivisione di modelli, che non è disponibile nella condivisione aperta.

Che cos'è la condivisione Delta aperta?

Se si vogliono condividere dati con utenti esterni all'area di lavoro di Azure Databricks, indipendentemente dal fatto che usino Databricks, è possibile usare La condivisione Delta aperta per condividere i dati in modo sicuro. I provider di dati generano un token e lo condividono in modo sicuro con il destinatario. Usano il token per autenticare e ottenere l'accesso in lettura alle tabelle incluse nelle condivisioni a cui sono stati assegnati 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 condivisione delta e informazioni su come usarli, vedere la documentazione relativa alla condivisione delta.

Vedere anche Condividere i dati usando il protocollo di condivisione open sharing differenziale (per i provider).

Che cos'è la condivisione da Databricks a Databricks Delta?

Se si vogliono condividere dati con gli utenti che hanno un'area di lavoro di Databricks abilitata per Unity Catalog, è possibile usare la condivisione delta da Databricks a Databricks. La condivisione da Databricks a Databricks consente di condividere dati con gli utenti in altri account Databricks, sia 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 la condivisione delta per condividere i dati tra aree di lavoro collegate allo stesso metastore del catalogo Unity, perché in questo scenario è possibile usare Il catalogo Unity stesso 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, inclusa la verifica dell'identità, l'autenticazione e il controllo, viene gestita interamente tramite la condivisione Delta e la piattaforma Databricks. Un altro vantaggio è la possibilità di condividere file di notebook di Databricks, visualizzazioni, volumi del catalogo Unity e modelli di Catalogo Unity.

Per i provider, vedere anche Condividere i dati usando il protocollo Databricks-to-Databricks (per i provider).

In che modo gli amministratori del provider configurano la condivisione Delta?

Questa sezione offre una panoramica del modo in cui i provider possono abilitare la condivisione delta e avviare la condivisione da un'area di lavoro di Azure Databricks abilitata per Unity Catalog. Per la condivisione delta 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 la condivisione differenziale dei 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 la condivisione differenziale per il metastore del catalogo Unity che gestisce i dati da condividere.

    Nota

    Non è necessario abilitare la condivisione Delta nel metastore se si intende usare la condivisione Delta per condividere i dati solo con gli utenti di 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.

    Vedere Abilitare la condivisione delta in un metastore.

  2. Creare una condivisione che includa gli asset di dati registrati nel metastore del catalogo Unity.

    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 del catalogo Unity, modelli di Catalogo Unity e file di notebook a una condivisione.

    Vedere Creare e gestire condivisioni per la condivisione Delta.

  3. Creare un destinatario.

    Vedere Creare e gestire i destinatari dei dati per la condivisione differenziale.

    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 set 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. Richiedere un identificatore di condivisione al destinatario e usarlo per stabilire la connessione sicura.

    Suggerimento

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

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

    Vedere Concedere e gestire l'accesso alle condivisioni dati di condivisione differenziale (per i provider).

    Nota

    Questo passaggio può essere eseguito anche da un utente non amministratore con privilegi USE SHAREUSE 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 (solo 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 Databricks del destinatario non appena si concede loro l'accesso alla condivisione.

Il destinatario può ora accedere ai dati condivisi.

In che modo i destinatari accedono ai dati condivisi?

I destinatari accedono agli asset di dati condivisi in formato di sola lettura. I file del notebook condiviso 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:

  • Condivisione aperta (il destinatario non ha un'area di lavoro di Databricks abilitata per Unity Catalog): il destinatario fornisce le credenziali ogni volta che accedono ai dati nel proprio strumento preferito, tra cui Apache Spark, pandas, Power BI, Databricks e molti altri ancora. Per i destinatari, vedere Leggere i dati condivisi con condivisione differenziale.
  • Databricks-to-Databricks (l'area di lavoro del destinatario è abilitata per Unity Catalog): il destinatario accede ai dati usando Databricks. Possono usare Unity Catalog per concedere e negare l'accesso ad altri utenti nell'account Databricks. Per i destinatari, vedere Leggere i dati condivisi con Databricks-to-Databricks Delta Sharing (per i destinatari).

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 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 la registrazione di controllo e le tabelle di sistema di 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 con Databricks-to-Databricks Delta Sharing (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 con Databricks-to-Databricks Delta Sharing (per i destinatari) (per i destinatari).

Condivisione di notebook

È possibile usare la condivisione Delta 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 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.

Condivisione e streaming differenziali

La condivisione delta supporta Spark Structured Streaming. Un provider può condividere una tabella con la cronologia in modo che un destinatario possa usarlo come origine Structured Streaming, elaborando i dati condivisi in modo incrementale con bassa latenza. I destinatari possono anche eseguire query di spostamento cronologico 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 Apache Spark Structured Streaming (per i destinatari della condivisione da Databricks a Databricks) o Accedere a una tabella condivisa usando Spark Structured Streaming (per i destinatari dei dati di condivisione aperta).

Vedere anche Streaming in Azure Databricks.

Domande frequenti sulla condivisione differenziale

Di seguito sono riportate le domande frequenti sulla condivisione Delta.

È necessario un catalogo Unity per usare la condivisione delta?

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 condivisione delta di Azure Databricks predefinito.

    Non è necessario eseguire la migrazione di tutti gli asset al catalogo Unity. È 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 Il catalogo Unity. Vedere Abilitazione automatica del catalogo Unity.

  • Implementare il server di condivisione Delta aperto 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 differenziale aperta (per i destinatari) e il progetto open source Di condivisione delta.

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

    Le organizzazioni destinatari che vogliono questi vantaggi non devono eseguire la migrazione di tutti gli asset al catalogo Unity. È necessaria una sola area di lavoro di Azure Databricks abilitata per unity Catalog per gestire gli asset condivisi con l'utente. In alcuni account, le nuove aree di lavoro vengono abilitate automaticamente per Il catalogo Unity. Vedere Abilitazione automatica del catalogo Unity.

Vedere Leggere i dati condivisi usando la condivisione differenziale aperta (per i destinatari) e Leggere i dati condivisi con Databricks-to-Databricks Delta Sharing (per i destinatari).

È necessario essere un cliente di Databricks per usare la condivisione Delta?

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

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

Per informazioni dettagliate, vedere la prima domanda in queste domande frequenti.

La condivisione delta comporta costi in uscita?

La condivisione differenziale all'interno di un'area non comporta alcun costo in uscita. A differenza di altre piattaforme di condivisione dati, la condivisione delta 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 (anteprima pubblica), che non comporta costi in uscita e fornisce altri strumenti e raccomandazioni per monitorare ed evitare tariffe in uscita. Vedere Monitorare e gestire i costi di uscita della condivisione delta (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 la condivisione differenziale.

Non è sicuro usare URL prefirmato?

La condivisione differenziale usa URL prefirmato 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 i destinatari sono già stati concessi.

I token vengono usati nel protocollo di condivisione aperta delta sicuro?

Poiché la condivisione delta 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 quello a cui sono già stati concessi i destinatari. Vedere Considerazioni sulla sicurezza per i token.

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

La condivisione Delta supporta la condivisione delle visualizzazioni?

Sì, la condivisione delta 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.

Limiti

Quote di risorse

I valori seguenti indicano le quote per le risorse di condivisione Delta. I valori di quota riportati di seguito sono espressi in relazione all'oggetto padre in Unity Catalog.

Object Parent Valore
provider metastore 1000
destinatari metastore 5000
di Azure metastore 1000
tabelle condivisione 1000
volumes condivisione 1000
modelli condivisione 1000
schemas condivisione 500
notebook condivisione 100

Se si prevede di superare questi limiti di risorse, contattare il team dell'account Azure Databricks.

Passaggi successivi