Vai al contenuto principale

Databricks Unity Catalog: Guida per principianti

Comprendi le basi di Databricks Unity Catalog con questa guida introduttiva e di configurazione.
· 10 min leggi

Scopri con l'IA

Hai appena sentito parlare di Databricks Unity Catalog e ti stai chiedendo di cosa si tratta e che ruolo abbia nella gestione dei dati moderna.

Questa guida completa ti introdurrà a Databricks Unity Catalog e ti aiuterà a comprenderne l’importanza per l’analisi dei dati nel moderno data stack.

Cos’è Databricks Unity Catalog?

Databricks Unity Catalog è un servizio unificato di data governance che semplifica e razionalizza la gestione dei dati per i carichi di lavoro analitici. Riunisce in un’unica posizione centrale i diversi tipi di metadati usati da vari strumenti di business intelligence, database, data warehouse e data lake. Questo favorisce l’interoperabilità tra i sistemi, rendendo più semplice trovare e accedere a dati sia strutturati sia non strutturati.

Man mano che le organizzazioni scalano le operazioni sui dati, gestire accessi, governance e compliance su più piattaforme diventa complesso. Unity Catalog affronta questa sfida fornendo un livello unificato per metadati, controllo degli accessi e tracciamento della lineage, riducendo l’onere operativo.

Questo approccio centralizzato alla data governance porta vantaggi nella condivisione di comuni prodotti dati come:

I componenti principali di Databricks Unity Catalog includono:

  • Metastore: un livello di archiviazione per metadati che semplifica la discovery dei dati e migliora la lineage dei dati.
  • Catalog: un repository centrale per archiviare, gestire e scoprire gli asset dati.
  • Schema: un modello dati usato per organizzare e gestire gli asset in Databricks Unity Catalog.
  • Granularità: il livello di dettaglio disponibile nel tracciamento dei metadati. Consente ai team di gestire gli accessi a vari livelli (catalog, schema, tabella o persino colonna), garantendo un controllo fine sugli asset dati.".
  • Tabelle, viste e volumi: questi sono gli oggetti dati fondamentali in Databricks Unity Catalog usati per rappresentare dati strutturati e non strutturati.
  • Data lineage: una rappresentazione visiva del flusso dei dati dalla sorgente alla destinazione, che aiuta a tracciare le modifiche e garantire l’integrità dei dati.

Questi componenti lavorano insieme per offrire una soluzione completa di data governance che semplifica la gestione dei dati e promuove la collaborazione tra i team.

Vantaggi di Unity Catalog

Ecco alcuni dei principali vantaggi di Databricks Unity Catalog, come descritto di seguito:

1. Data governance e compliance

Databricks Unity Catalog fornisce una posizione centralizzata per archiviare e gestire i metadati, garantendo data governance e conformità tra sistemi diversi.

Per esempio, Unity Catalog fornisce avvisi per potenziali rilevamenti di PII nei modelli di machine learning in produzione. La data lineage consente di effettuare facilmente il rollback di questi modelli.

Questo aiuta le organizzazioni a mantenere l’integrità dei dati, rispettare le normative e ridurre i rischi.

2. Collaborazione e analytics self-service

Unity Catalog favorisce la collaborazione tra team fornendo una posizione centrale per l’archiviazione degli asset dati. Questo elimina i silos e promuove la comunicazione trasversale, abilitando la business intelligence self-service.

Data analyst e utenti di business possono scoprire e accedere facilmente agli asset rilevanti, riducendo il tempo dedicato alle attività di preparazione dei dati.

Casi d’uso principali per Unity Catalog

Ci sono vari modi per implementare Unity Catalog: 

1. Controllo degli accessi e sicurezza dei dati

Databricks Unity Catalog consente di implementare un controllo degli accessi granulare per gli asset dati, assicurando che i dati siano accessibili solo agli utenti autorizzati. Permette anche la condivisione sicura di dati sensibili tra team.

2. Data discovery e lineage

Le funzionalità di gestione dei metadati di Unity Catalog consentono una discovery efficiente e forniscono una rappresentazione visiva del flusso dei dati dalla sorgente alla destinazione. Questo aiuta a tracciare le modifiche nei dataset, abilitando audit e troubleshooting.

3. Razionalizzazione di compliance e audit

Con un repository centralizzato per tutti gli asset e la loro lineage, Unity Catalog semplifica la reportistica di compliance e i processi di audit. Questo riduce il tempo e lo sforzo necessari per garantire la conformità normativa.

Come abilitare Unity Catalog in Databricks

Ora, proviamo Unity Catalog con questo semplice tutorial di configurazione:

Prerequisiti

Prima di poter abilitare e usare Unity Catalog, assicurati di soddisfare i seguenti requisiti:

Piano Databricks Premium o Enterprise

Unity Catalog è supportato solo nei livelli Databricks Premium o Enterprise. Assicurati che il tuo workspace Databricks sia su uno di questi piani.

Autorizzazioni appropriate

  • Account admin: devi avere il ruolo di Account Admin in Databricks per configurare e gestire Unity Catalog a livello di account.
  • Workspace admin: devi essere Workspace Admin nel workspace in cui vuoi abilitare Unity Catalog.

Disponibilità del metastore

Unity Catalog richiede un metastore a livello di account. Se non ne hai creato uno, dovrai farlo durante la configurazione. Per un account di prova Databricks, avrai già un catalog con metastore creato per te.

Piattaforme cloud supportate

Attualmente, Unity Catalog è supportato su:

  • AWS
  • Azure
  • GCP

Assicurati di usare un ambiente Databricks supportato in uno di questi cloud.

Storage gestito o location esterne

Decidi se utilizzare tabelle gestite (managed storage) o creare tabelle esterne che fanno riferimento a dati in una location esterna (come S3, ADLS o GCS). Ogni approccio può richiedere autorizzazioni diverse.

Abilitare Unity Catalog: guida passo passo

  1. Accedi alla console dell’account Databricks
    • Vai alla Databricks Account Console (l’URL può variare leggermente per AWS, Azure o GCP). Usa un utente account admin per accedere.

databricks console log in

  1. Accedi alla pagina Catalog
    • Nel pannello di navigazione a sinistra (nella console dell’account), cerca Catalog a seconda della tua versione di Databricks.
    • In una versione Trial di Databricks, dovrebbero essere stati creati un metastore e un catalog Serverless Starter Warehouse.
  2. Avvia la compute del SQL warehouse
    • Nel pannello di navigazione a sinistra, seleziona SQL Warehouses e avvia il Serverless Starter Warehouse cliccando sull’icona Play a destra.

  1. Assegna ai workspace
    • In Workspaces nella configurazione del Catalog, collega i workspace che dovrebbero utilizzare questo catalog.

Configurare Unity Catalog

  1. Assegna le autorizzazioni
    • Come admin, vai a Catalog nella barra laterale sinistra del tuo workspace Databricks.
    • Seleziona il workspace che vuoi gestire.
    • Clicca sulla scheda Permissions per impostare le autorizzazioni (ad esempio, chi può creare catalog, schema e tabelle). Per impostazione predefinita, l’account admin o il workspace admin possono avere privilegi completi, ma puoi delegare privilegi ad altri utenti o gruppi.

  1. Crea Catalog e Schema (se necessario)
    • Puoi creare catalog e schema aggiuntivi per diversi team, progetti o domini dati. Spesso questo si fa tramite comandi SQL (vedi sotto).
-- Creates a new catalog named "demo_catalog"
CREATE CATALOG IF NOT EXISTS demo_catalog
COMMENT 'This catalog is created for Unity Catalog demo';
  1. Configura location esterne (opzionale)Se ti servono tabelle esterne archiviate in location esterne:
    • Crea in Unity Catalog una location esterna che punti al tuo storage cloud (S3, ADLS o GCS).
    • Concedi a utenti o gruppi i permessi di lettura e scrittura su queste location tramite Unity Catalog.

Esempi di codice e utilizzo

Di seguito trovi alcuni notebook/commandi SQL per Databricks che puoi usare una volta configurato Unity Catalog nel tuo workspace. 

Puoi eseguirli in un notebook Databricks o nell’SQL Editor del tuo workspace.

Concessione di privilegi su un catalog

Concedere privilegi su un catalog assicura che specifici gruppi di utenti possano accedere e interagire con i dati in esso contenuti. Tuttavia, USAGE da solo non consente di interrogare i dati: permette semplicemente di vedere che il catalog esiste. Per consentire un’interazione completa, devi concedere privilegi aggiuntivi a livello di schema o tabella.

Per esempio, per consentire ai data engineer di accedere a un catalog:

-- Grant USAGE to a specific group on the newly created catalog
GRANT USAGE ON CATALOG demo_catalog TO data_engineers_group;

Se devono anche creare schema all’interno di questo catalog:

GRANT CREATE ON CATALOG demo_catalog TO data_engineers_group;

Creare uno schema (database) all’interno del catalog

Uno schema in Unity Catalog organizza tabelle e viste all’interno di un catalog, in modo analogo a come un database contiene tabelle nei sistemi RDBMS tradizionali. Usare IF NOT EXISTS evita errori se lo schema esiste già.

Per creare uno schema per i dati analitici dentro demo_catalog:

CREATE SCHEMA IF NOT EXISTS demo_catalog.analytics
COMMENT 'Schema for analytics data';

Dopo la creazione, potresti dover concedere privilegi a utenti specifici:

GRANT USAGE ON SCHEMA demo_catalog.analytics TO data_analysts_group;

Questo consente al data_analysts_group di vedere lo schema, ma non ancora di interrogare le sue tabelle.

Creare una tabella gestita

Le tabelle gestite sono completamente controllate da Unity Catalog: Databricks gestisce storage e tracciamento dei metadati. Ciò semplifica la gestione, ma comporta che i dati vengano eliminati se la tabella viene eliminata.

Per creare una tabella gestita per i dati di vendita:

USE CATALOG demo_catalog;
USE SCHEMA analytics;

CREATE TABLE IF NOT EXISTS sales_data (
  transaction_id STRING,
  product_id STRING,
  quantity INT,
  price DECIMAL(10,2),
  transaction_date DATE
)
COMMENT 'Managed table for sales data';

Concessione di privilegi su una tabella

Concedere privilegi sulle tabelle garantisce che gli utenti possano interrogare o modificare i dati. Il privilegio SELECT consente agli utenti di leggere i dati ma non di modificarli.

Per consentire ai data scientist di leggere dalla tabella delle vendite:

GRANT SELECT ON TABLE demo_catalog.analytics.sales_data TO data_scientists_group;
 

Se hanno bisogno di inserire nuovi record, concedi INSERT:

GRANT INSERT ON TABLE demo_catalog.analytics.sales_data TO data_scientists_group;
 

Per avere il controllo completo (lettura, scrittura, modifica), usa:

GRANT ALL PRIVILEGES ON TABLE demo_catalog.analytics.sales_data TO data_scientists_group;

Configurazione di una location esterna

Se disponi di una location dati esterna (ad esempio, S3 su AWS), puoi creare un oggetto di location esterna in Unity Catalog:

-- Create an external location named "demo_external_location"
CREATE EXTERNAL LOCATION demo_external_location
URL 's3://my-demo-bucket/my-path/'
WITH CREDENTIAL my_storage_credential
COMMENT 'External location for demo data';

-- Grant read and write privileges to a group
GRANT READ, WRITE ON EXTERNAL LOCATION demo_external_location
TO data_engineers_group;

Architettura di Databricks Unity Catalog

Databricks Unity Catalog si basa sul progetto open source Apache Spark, che fornisce una piattaforma di calcolo distribuito per l’elaborazione di grandi volumi di dati. Utilizza l’Hive Metastore per memorizzare i metadati su dataset e tabelle, consentendo una gestione efficiente e buone prestazioni in query.

L’architettura di Unity Catalog include tre componenti principali:

  1. Metadata Store: archivia tutti i metadati relativi a dataset, tabelle, location esterne e altri oggetti.
  2. Catalog: funge da interfaccia tra il Metadata Store e il livello di calcolo. Fornisce una vista unificata di tutti i metadati archiviati, facilitando l’accesso e le query sui dati.
  3. Workspace: sono location virtuali in cui i dati possono essere archiviati e gestiti in modo sicuro. Consentono una facile collaborazione tra team fornendo un punto centrale per accesso e manipolazione dei dati.

databricks components

Fonte: Databricks

Con Databricks Unity Catalog, gli utenti possono gestire e interrogare i propri dati senza doversi preoccupare dell’infrastruttura sottostante. Possono anche collaborare con altri membri del team concedendo loro autorizzazioni specifiche, come privilegi di lettura e scrittura, per diversi dataset o tabelle.

Per concedere queste autorizzazioni, gli utenti possono utilizzare comandi SQL come "GRANT" per specificare quali utenti o gruppi possono accedere a determinati dati. Questo garantisce che solo le persone autorizzate abbiano accesso a informazioni sensibili.

Come Unity Catalog si integra con i sistemi dati esistenti

Unity Catalog si integra in modo fluido con i sistemi dati esistenti, come Amazon S3 e Azure Blob Storage, rendendo semplice accedere e gestire dati da fonti diverse. Questo permette di analizzare rapidamente grandi dataset senza dover spostare o copiare manualmente i dati in Databricks. 

Unity Catalog supporta inoltre vari formati di file come CSV, JSON, Parquet e Avro, offrendo flessibilità nel lavoro con tipi di dati differenti.

Best practice per Databricks Unity Catalog

Quando lavori con Unity Catalog, ci sono alcune best practice che possono aiutare a garantire una gestione dei dati efficiente ed efficace. 

Queste includono:

  1. Usare convenzioni di denominazione descrittive per tabelle e colonne, così da rendere i dati più comprensibili.
  2. Aggiornare regolarmente i metadati in Unity Catalog per tenere traccia di eventuali modifiche ai dati sottostanti.
  3. Utilizzare controlli di accesso per limitare l’accesso ai dati sensibili, seguendo il principio del "minimo privilegio". Ciò significa concedere solo le autorizzazioni necessarie a utenti o gruppi in base a ruoli e responsabilità.
  4. Usare tag ed etichette per classificare e organizzare i dataset in Unity Catalog, facilitando la ricerca di dati specifici.

Queste misure aiuteranno a garantire una data governance efficace e prestazioni ottimali.

Sfide comuni e come affrontarle

Unity Catalog non è una soluzione infallibile e può incontrare alcune difficoltà nella gestione efficace dei dati. 

Alcuni problemi comuni includono:

  • Duplicazione dei dati: si verifica quando gli stessi dati sono archiviati più volte, causando incoerenze ed errori.
  • Qualità dei dati: dati poco curati o inaccurati possono influire sulle decisioni e sui processi aziendali.
  • Gerarchie di dati complesse: dataset di grandi dimensioni con relazioni complesse possono essere difficili da organizzare e gestire all’interno di Unity Catalog.

Per affrontare queste sfide, ecco alcuni suggerimenti:

  1. Rivedi regolarmente e ripulisci i dati per evitare duplicazioni, includendo la rimozione di dati non necessari o obsoleti.
  2. Implementa controlli e validazioni di qualità dei dati per garantire l’accuratezza dei dati in Unity Catalog.

Considerazioni finali

Unity Catalog è uno strumento potente per gestire i dati in una vista unificata grazie all’uso di metastore, catalog e workspace. Fornisce una posizione centralizzata per archiviare e organizzare i dati, rendendo più semplice gestirli e utilizzarli nei processi aziendali. 

Vuoi saperne di più su Databricks? Dai un’occhiata al nostro corso Introduzione a Databricks, alla guida Tutorial su Databricks e al webinar su Databricks.

Databricks Unity Catalog: Domande frequenti

Qual è la differenza tra Unity Catalog e Hive Metastore su Databricks?

Unity Catalog è un servizio di metadati unificato che offre un’alternativa più efficiente e scalabile al tradizionale Hive Metastore su Databricks. Fornisce una singola fonte di verità per tutte le esigenze di metadati e consente una gestione e un accesso più semplici.

Posso usare Unity Catalog con fonti di dati non Databricks?

Sì, Unity Catalog supporta sia le tabelle gestite da Databricks sia quelle esterne, permettendoti di integrare facilmente i metadati da varie fonti in un’unica posizione. Tuttavia, potrebbero esserci alcune limitazioni.

In che modo Unity Catalog migliora le prestazioni?

Fornendo un archivio metadati centralizzato, Unity Catalog elimina la necessità di interrogazioni frequenti a sistemi esterni, con conseguente riduzione dei tempi di esecuzione delle query.

Austin Chia

Autore

Austin Chia

Sono Austin, blogger e autore tech con anni di esperienza come data scientist e data analyst nel settore sanitario. Partito dalla biologia, oggi aiuto altri a fare lo stesso passaggio attraverso il mio blog tecnologico. La mia passione per la tecnologia mi ha portato a collaborare come autore con decine di aziende SaaS, ispirando altre persone e condividendo le mie esperienze.

Argomenti

Correlato