Che cosa sono i cataloghi in Azure Databricks?

Un catalogo è l'unità principale dell'organizzazione dei dati nel modello di governance dei dati di Azure Databricks Unity Catalog. Questo articolo offre una panoramica dei cataloghi nel catalogo unity e come usarli al meglio.

I cataloghi sono il primo livello nello spazio dei nomi a tre livelli di Unity Catalog (catalog.schema.table-etc). Contengono schemi, che a loro volta possono contenere tabelle, viste, volumi, modelli e funzioni. I cataloghi vengono registrati in un metastore di Unity Catalog nell'account Azure Databricks.

Diagramma del modello a oggetti del catalogo Unity, incentrato sul catalogo

Come organizzare i dati in cataloghi?

Quando si progetta il modello di governance dei dati, è necessario prestare attenzione ai cataloghi creati. Come livello più elevato nel modello di governance dei dati dell'organizzazione, ogni catalogo deve rappresentare un'unità logica di isolamento dei dati e una categoria logica di accesso ai dati, consentendo a una gerarchia efficiente di concessioni di passare verso gli schemi e gli oggetti dati che contengono. I cataloghi quindi spesso rispecchiano le unità organizzative o gli ambiti del ciclo di vita dello sviluppo software. È possibile scegliere, ad esempio, di avere un catalogo per i dati di produzione e un catalogo per i dati di sviluppo oppure un catalogo per i dati non dei clienti e uno per i dati sensibili dei clienti.

Isolamento dei dati tramite cataloghi

Ogni catalogo ha in genere la propria posizione di archiviazione gestita per archiviare tabelle e volumi gestiti, fornendo l'isolamento dei dati fisici a livello di catalogo. È anche possibile scegliere di archiviare i dati a livello di metastore, fornendo un percorso di archiviazione predefinito per i cataloghi che non dispongono di una posizione di archiviazione gestita propria. È possibile aggiungere spazio di archiviazione a livello di schema per un isolamento dei dati più granulare.

Poiché l'account Azure Databricks ha un metastore per area, i cataloghi sono intrinsecamente isolati in base all'area.

Per altre informazioni, vedere Che cosa sono gli oggetti di database in Azure Databricks? e i dati sono separati fisicamente nell'archiviazione.

Privilegi a livello di catalogo

Poiché le concessioni per qualsiasi oggetto Catalogo Unity vengono ereditate dagli elementi figlio di tale oggetto, il proprietario di un catalogo o la disponibilità di privilegi generali su un catalogo è molto potente. Ad esempio, i proprietari del catalogo hanno tutti i privilegi per il catalogo e gli oggetti nel catalogo e possono concedere l'accesso a qualsiasi oggetto nel catalogo. Gli utenti con SELECT in un catalogo possono leggere qualsiasi tabella nel catalogo. Gli utenti con CREATE TABLE in un catalogo possono creare una tabella in qualsiasi schema nel catalogo.

Per applicare il principio dei privilegi minimi, in cui gli utenti hanno l'accesso minimo necessario per eseguire le attività necessarie, in genere si concede l'accesso solo agli oggetti o al livello specifico nella gerarchia richiesta dall'utente. Tuttavia, i privilegi a livello di catalogo consentono al proprietario del catalogo di gestire i proprietari di oggetti di livello inferiore che possono concedere. Anche se a un utente viene concesso l'accesso a un oggetto dati di basso livello, ad esempio una tabella, tale utente non può accedere a tale tabella a meno che non disponga anche del USE CATALOG privilegio sul catalogo che contiene la tabella.

Per altre informazioni, vedere Gestire la proprietà degli oggetti di Unity Catalog, i tipi di privilegi generali del catalogo Unity e i blocchi predefiniti di governance dei dati e isolamento dei dati.

Tipi di catalogo

Quando si crea un catalogo, sono disponibili due opzioni:

  • Catalogo standard: il catalogo tipico, usato come unità primaria per organizzare gli oggetti dati in Unity Catalog. Questo è il tipo di catalogo descritto in questo articolo.
  • Catalogo esterno: un oggetto Catalogo Unity usato solo negli scenari di federazione lakehouse. Un catalogo esterno esegue il mirroring di un database in un sistema dati esterno, consentendo di eseguire query di sola lettura su tale sistema dati nell'area di lavoro di Azure Databricks. Vedere Che cos'è Lakehouse Federation?.

Oltre a questi due tipi di catalogo, Azure Databricks effettua automaticamente il provisioning dei cataloghi seguenti quando si crea una nuova area di lavoro:

  • hive_metastore catalog: si tratta del repository di tutti i dati gestiti dal metastore Hive legacy nelle aree di lavoro di Azure Databricks. Quando un'area di lavoro catalogo non Unity esistente viene convertita in Catalogo Unity, tutti gli oggetti registrati nel metastore Hive legacy vengono visualizzati nel catalogo Unity nel hive_metastore catalogo. Per informazioni sull'uso del metastore Hive insieme al catalogo unity, vedere Usare il catalogo Unity e il metastore Hive legacy. Il metastore Hive è deprecato e tutte le aree di lavoro di Azure Databricks devono eseguire la migrazione a Unity Catalog.
  • Catalogo dell'area di lavoro: per impostazione predefinita, questo catalogo viene creato automaticamente in tutte le nuove aree di lavoro. In genere, condivide il nome con il nome dell'area di lavoro. Se questo catalogo esiste, tutti gli utenti dell'area di lavoro (e solo l'area di lavoro) hanno accesso ad esso per impostazione predefinita, in modo da consentire agli utenti di provare il processo di creazione e accesso agli oggetti dati in Unity Catalog. Vedere Passaggio 1: Verificare che l'area di lavoro sia abilitata per il catalogo unity.

Catalogo predefinito

Per ogni area di lavoro abilitata per Il catalogo Unity è configurato un catalogo predefinito. Il catalogo predefinito consente di eseguire operazioni sui dati senza specificare un catalogo. Se si omette il nome del catalogo di primo livello quando si eseguono operazioni sui dati, viene utilizzato il catalogo predefinito.

Se l'area di lavoro è stata abilitata automaticamente per Unity Catalog, il catalogo delle aree di lavoro con provisioning preliminare viene specificato come catalogo predefinito. Un amministratore dell'area di lavoro può modificare il catalogo predefinito in base alle esigenze.

Per informazioni dettagliate, vedere Gestire il catalogo predefinito.

Associazione del catalogo dell'area di lavoro

Se si usano aree di lavoro per isolare l'accesso ai dati utente, è possibile usare associazioni del catalogo dell'area di lavoro. Le associazioni del catalogo dell'area di lavoro consentono di limitare l'accesso al catalogo in base ai limiti dell'area di lavoro. Ad esempio, è possibile assicurarsi che gli amministratori e gli utenti dell'area di lavoro possano accedere solo ai dati di produzione in prod_catalog da un ambiente dell'area di lavoro di produzione, prod_workspace. I cataloghi vengono condivisi con tutte le aree di lavoro collegate al metastore corrente, a meno che non si specifichi un'associazione. Vedere Organizzare i dati e Limitare l'accesso al catalogo a aree di lavoro specifiche.

Se l'area di lavoro è stata abilitata automaticamente per Unity Catalog, il catalogo delle aree di lavoro con provisioning preliminare è associato all'area di lavoro per impostazione predefinita.

Ulteriori informazioni