Procedure consigliate per DBFS e il catalogo Unity

Unity Catalog introduce diverse nuove configurazioni e concetti che variano completamente a seconda della governance dei dati rispetto a DBFS. Questo articolo illustra diverse procedure consigliate per l'uso di posizioni esterne del catalogo Unity e DBFS.

Databricks consiglia di usare DBFS e l'archiviazione di oggetti cloud montati per la maggior parte dei casi d'uso nelle aree di lavoro di Azure Databricks abilitate per Unity. Questo articolo descrive alcuni scenari in cui è consigliabile usare l'archiviazione di oggetti cloud montata. Si noti che Databricks non consiglia di usare la radice DBFS in combinazione con Unity Catalog, a meno che non sia necessario eseguire la migrazione di file o dati archiviati in Unity Catalog.

Come viene usato DBFS nelle aree di lavoro abilitate per Il catalogo Unity?

La radice DBFS è il percorso predefinito per l'archiviazione di file associati a una serie di azioni eseguite nell'area di lavoro di Azure Databricks, inclusa la creazione di tabelle gestite nell'ambito hive_metastoredell'area di lavoro. Le azioni eseguite sulle tabelle in hive_metastore usano modelli di accesso ai dati legacy, che possono includere dati e credenziali di archiviazione gestite da DBFS.

Come funziona DBFS in modalità accesso utente singolo?

I cluster configurati con la modalità accesso utente singolo hanno accesso completo a DBFS, inclusi tutti i file nella radice DBFS e i dati montati. La radice e i montaggi DBFS sono disponibili in questa modalità di accesso, rendendola la scelta per i carichi di lavoro ml che devono accedere ai set di dati del catalogo Unity.

Databricks consiglia di usare entità servizio con processi pianificati e modalità di accesso utente singolo per i carichi di lavoro di produzione che devono accedere ai dati gestiti sia da DBFS che da Unity Catalog.

Come funziona DBFS in modalità di accesso condiviso?

La modalità di accesso condiviso combina la governance dei dati di Unity Catalog con gli ACL della tabella legacy di Azure Databricks. L'accesso hive_metastore ai dati in è disponibile solo per gli utenti che dispongono di autorizzazioni concesse in modo esplicito.

Per interagire con i file direttamente tramite DBFS, è necessario disporre ANY FILE delle autorizzazioni concesse. Poiché ANY FILE consente agli utenti di ignorare gli ACL delle tabelle legacy in hive_metastore e di accedere a tutti i dati gestiti da DBFS, Databricks consiglia di prestare attenzione quando si concede questo privilegio.

Non usare DBFS con percorsi esterni del catalogo Unity

Il catalogo unity protegge l'accesso ai dati in posizioni esterne usando percorsi URI cloud completi per identificare le concessioni nelle directory di archiviazione degli oggetti gestiti. I montaggi DBFS usano un modello di accesso ai dati completamente diverso che ignora completamente Unity Catalog. Databricks consiglia di non riutilizzare i volumi di archiviazione di oggetti cloud tra i montaggi DBFS e i volumi esterni UC.

Proteggere l'archiviazione gestita dal catalogo unity

Ogni metastore di Unity Catalog ha un account di archiviazione oggetti configurato da un amministratore dell'account Azure Databricks. Il catalogo unity usa questo percorso per archiviare tutti i dati e i metadati per le tabelle gestite dal catalogo unity.

Un account di archiviazione usato per un metastore del catalogo Unity deve:

  • Crearne di nuovo per Unity Catalog.
  • Disporre di un criterio di identità personalizzato definito per Il catalogo unity.
  • È possibile accedere solo con Unity Catalog.
  • È possibile accedere solo usando i criteri di accesso alle identità creati per il catalogo unity.

Aggiungere dati esistenti a percorsi esterni

È possibile caricare gli account di archiviazione esistenti nel catalogo Unity usando posizioni esterne. Per una maggiore sicurezza, Databricks consiglia di caricare solo gli account di archiviazione in posizioni esterne se sono state revocate tutte le altre credenziali di archiviazione e i modelli di accesso.

Non caricare mai un account di archiviazione usato come radice DBFS come posizione esterna nel catalogo Unity.

Le configurazioni del cluster vengono ignorate dall'accesso al file system del catalogo Unity

Il catalogo unity non rispetta le configurazioni del cluster per le impostazioni del file system. Ciò significa che le impostazioni del file system Hadoop per la configurazione del comportamento personalizzato con l'archiviazione oggetti cloud non funzionano quando si accede ai dati usando Unity Catalog.

Limitazione dell'accesso a più percorsi

Anche se in genere è possibile usare insieme Unity Catalog e DBFS, non è possibile fare riferimento ai percorsi uguali o condivisi con una relazione padre/figlio nella stessa cella del comando o del notebook usando metodi di accesso diversi.

Ad esempio, se una tabella foo esterna è definita nella hive_metastore posizione a/b/c e una posizione esterna è definita nel catalogo Unity in a/b/, il codice seguente genererà un errore:

spark.read.table("foo").filter("id IS NOT NULL").write.mode("overwrite").save("a/b/c")

Questo errore non si verifica se questa logica è suddivisa in due celle:

df = spark.read.table("foo").filter("id IS NOT NULL")
df.write.mode("overwrite").save("a/b/c")