Ga naar hoofdinhoud

Databricks Unity Catalog: Een beginnersgids

Begrijp de basis van Databricks Unity Catalog in deze introductie- en installatiesectie.
· 10 min lezen

Verken met AI

Je hebt net gehoord over Databricks Unity Catalog. En nu vraag je je af wat het precies is en welke rol het speelt in modern databeheer.

Deze uitgebreide gids introduceert je in Databricks Unity Catalog en helpt je het belang ervan te begrijpen voor data-analyse binnen de moderne data stack.

Wat is Databricks Unity Catalog?

Databricks Unity Catalog is een uniforme data-governancedienst die databeheer voor analytische workloads vereenvoudigt en stroomlijnt. Het brengt alle verschillende soorten metadata die worden gebruikt door diverse business intelligence-tools, databases, datawarehouses en datalakes samen op één centrale plek. Dit bevordert interoperabiliteit tussen systemen, waardoor het makkelijker wordt om zowel gestructureerde als ongestructureerde data te vinden en te benaderen.

Naarmate organisaties hun dataverwerking opschalen, wordt het beheren van toegang, governance en compliance over meerdere dataplatvormen complex. Unity Catalog pakt deze uitdaging aan met een uniforme laag voor metadata, toegangsbeheer en lineage-tracking, wat de operationele overhead verlaagt.

Deze gecentraliseerde aanpak van data governance biedt voordelen bij het delen van veelgebruikte dataproducten, zoals:

De kernonderdelen van Databricks Unity Catalog zijn onder andere:

  • Metastore: Een opslaglaag voor metadata die datadiscovery vereenvoudigt en data lineage verbetert.
  • Catalog: Een centrale repository voor het opslaan, beheren en vinden van data-assets.
  • Schema: Een datamodel om data-assets te organiseren en te beheren in Databricks Unity Catalog.
  • Granulariteit: Het detailniveau in metadatatracking. Hiermee kunnen teams toegang beheren op verschillende niveaus (catalog, schema, tabel of zelfs kolom), wat zorgt voor fijnmazige controle over data-assets.".
  • Tabellen, views en volumes: Dit zijn de fundamentele data-objecten in Databricks Unity Catalog voor het representeren van gestructureerde en ongestructureerde data.
  • Data lineage: Een visuele weergave van de stroom van data van bron tot bestemming, om wijzigingen te volgen en dataintegriteit te borgen.

Deze componenten werken samen en bieden een complete data-governanceoplossing die databeheer vereenvoudigt en samenwerking tussen teams stimuleert.

Voordelen van Unity Catalog

Er zijn verschillende belangrijke voordelen van Databricks Unity Catalog, zoals hieronder beschreven:

1. Data governance en compliance

Databricks Unity Catalog biedt een centrale plek voor het opslaan en beheren van metadata, waardoor data governance en compliance over verschillende systemen gewaarborgd wordt.

Unity Catalog geeft bijvoorbeeld meldingen bij mogelijke PII-detectie in machinelearningmodellen in productie. Dankzij data lineage kunnen deze modellen eenvoudig worden teruggedraaid.

Dit helpt organisaties dataintegriteit te behouden, aan regelgeving te voldoen en risico’s te verkleinen.

2. Samenwerking en selfservice-analyse

Unity Catalog stimuleert samenwerking tussen teams door een centrale plek te bieden voor het opslaan van data-assets. Dit doorbreekt silo’s en bevordert crossfunctionele communicatie, wat selfservice-analyse stimuleert.

Data-analisten en businessgebruikers kunnen eenvoudig relevante data-assets ontdekken en benaderen, waardoor er minder tijd nodig is voor datavoorbereiding.

Belangrijke use-cases voor Unity Catalog

Er zijn verschillende manieren om Unity Catalog te implementeren: 

1. Toegangsbeheer en beveiliging van data

Databricks Unity Catalog stelt organisaties in staat fijnmazig toegangsbeheer voor data-assets in te richten, zodat data alleen toegankelijk is voor geautoriseerde gebruikers. Ook maakt het veilig delen van gevoelige data tussen teams mogelijk.

2. Datadiscovery en lineage

De metadatabeheer-mogelijkheden van Unity Catalog zorgen voor efficiënte datadiscovery en geven een visuele weergave van de stroom van data van bron naar bestemming. Dit helpt wijzigingen in datasets te volgen en maakt audit en troubleshooting mogelijk.

3. Compliance en audits stroomlijnen

Met een gecentraliseerde repository voor alle data-assets en hun lineage vereenvoudigt Unity Catalog compliance-rapportage en auditprocessen. Dit vermindert de tijd en moeite die nodig zijn om aan regelgeving te voldoen.

Unity Catalog inschakelen in Databricks

Laten we nu aan de slag gaan met Unity Catalog met deze eenvoudige set-up-tutorial:

Vereisten

Voordat je Unity Catalog kunt inschakelen en gebruiken, zorg je dat je aan het volgende voldoet:

Databricks premium- of enterprise-abonnement

Unity Catalog wordt alleen ondersteund op Databricks Premium- of Enterprise-niveaus. Zorg dat je Databricks-werkruimte op een van deze plannen draait.

Passende permissies

  • Accountadmin: Je moet de Account Admin-rol hebben in Databricks om Unity Catalog op accountniveau in te stellen en te beheren.
  • Werkruimtebeheerder: Je moet Workspace Admin zijn in de werkruimte waar je Unity Catalog wilt inschakelen.

Beschikbaarheid van metastore

Unity Catalog vereist een metastore op accountniveau. Als je er nog geen hebt aangemaakt, moet je dat doen tijdens de set-up. Voor een proefaccount van Databricks is er al een catalog met metastore voor je aangemaakt.

Ondersteunde cloudplatformen

Unity Catalog wordt momenteel ondersteund op:

  • AWS
  • Azure
  • GCP

Zorg dat je een ondersteunde Databricks-omgeving gebruikt in een van deze clouds.

Beheerde opslag of externe locaties

Bepaal of je gebruikmaakt van managed tables (beheerde opslag) of externe tabellen die verwijzen naar data op een externe locatie (zoals S3, ADLS of GCS). Elke aanpak kan verschillende permissievereisten hebben.

Unity Catalog inschakelen: stapsgewijze gids

  1. Log in op de Databricks account console

databricks console log in

  1. Ga naar de Catalog-pagina
    • Zoek in het navigatievenster links (in de accountconsole) naar Catalog, afhankelijk van je Databricks-release.
    • In een Databricks Trial-versie zijn een Serverless Starter Warehouse-metastore en -catalog al aangemaakt.
  2. Start SQL-warehouse compute
    • Selecteer in het navigatievenster links SQL Warehouses en start vervolgens het Serverless Starter Warehouse door op het Play-pictogram rechts te klikken.

  1. Toewijzen aan werkruimtes
    • Koppel onder Workspaces in de catalogconfiguratie de werkruimte(n) die deze catalog moeten gebruiken.

Unity Catalog configureren

  1. Permissies toewijzen
    • Navigeer als admin naar Catalog in de linkerzijbalk van je Databricks-werkruimte.
    • Selecteer de werkruimte die je wilt beheren.
    • Klik op het tabblad Permissions om permissies in te stellen (bijv. wie catalogs, schema’s en tabellen mag aanmaken). Standaard hebben de accountadmin of werkruimtebeheerder mogelijk volledige rechten, maar je kunt rechten delegeren aan andere gebruikers of groepen.

  1. Catalogs en schema’s maken (indien nodig)
    • Je kunt extra catalogs en schema’s aanmaken voor verschillende teams, projecten of datadomeinen. Dit gebeurt vaak via SQL-commando’s (zie hieronder).
-- Creates a new catalog named "demo_catalog"
CREATE CATALOG IF NOT EXISTS demo_catalog
COMMENT 'This catalog is created for Unity Catalog demo';
  1. Externe locaties configureren (optioneel)Als je externe tabellen nodig hebt die in externe locaties zijn opgeslagen:
    • Maak een externe locatie in Unity Catalog die verwijst naar je cloudopslag (S3, ADLS of GCS).
    • Verleen gebruikers of groepen via Unity Catalog lees- en schrijfrechten op deze locaties.

Voorbeeldcode en gebruik

Hieronder staan enkele voorbeeldnotebooks/SQL-commando’s voor Databricks die je kunt gebruiken zodra Unity Catalog in je werkruimte is geconfigureerd. 

Je kunt ze uitvoeren in een Databricks-notebook of in de SQL Editor binnen je werkruimte.

Rechten toekennen op een catalog

Door rechten toe te kennen op een catalog zorg je ervoor dat specifieke gebruikersgroepen toegang hebben tot en kunnen werken met de data erin. Alleen USAGE geeft gebruikers echter niet het recht om data te bevragen—het laat hen alleen zien dat de catalog bestaat. Voor volledige interactie moet je extra rechten verlenen op schema- of tabelniveau.

Bijvoorbeeld, om data engineers toegang te geven tot een catalog:

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

Als ze ook schema’s binnen deze catalog moeten kunnen aanmaken:

GRANT CREATE ON CATALOG demo_catalog TO data_engineers_group;

Een schema (database) binnen de catalog aanmaken

Een schema in Unity Catalog organiseert tabellen en views binnen een catalog, vergelijkbaar met hoe een database tabellen bevat in traditionele RDBMS-systemen. Met IF NOT EXISTS voorkom je fouten als het schema al bestaat.

Om een schema voor analysedata aan te maken in demo_catalog:

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

Na het aanmaken moet je mogelijk rechten toekennen aan specifieke gebruikers:

GRANT USAGE ON SCHEMA demo_catalog.analytics TO data_analysts_group;

Hiermee kan de data_analysts_group het schema zien, maar nog niet de tabellen erin bevragen.

Een beheerde tabel aanmaken

Beheerde tabellen worden volledig door Unity Catalog beheerd, wat betekent dat Databricks opslag en metadatatracking regelt. Dit vereenvoudigt beheer, maar houdt ook in dat data wordt verwijderd als de tabel wordt gedropt.

Om een beheerde tabel voor salesdata aan te maken:

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';

Rechten toekennen op een tabel

Met tabelrechten zorg je dat gebruikers data kunnen bevragen of wijzigen. De SELECT-recht geeft gebruikers leesrechten, maar geen wijzigingsrechten.

Om datascientists leesrechten te geven op de sales-tabel:

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

Als ze ook nieuwe records willen invoegen, geef dan INSERT:

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

Voor volledige controle (lezen, schrijven, wijzigen), gebruik:

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

Externe locatie instellen

Als je een externe datalocatie hebt (bijv. S3 op AWS), kun je in Unity Catalog een object voor een externe locatie aanmaken:

-- 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;

Architectuur van Databricks Unity Catalog

Databricks Unity Catalog is gebouwd bovenop het open-sourceproject Apache Spark, dat een gedistribueerd platform biedt voor grootschalige dataverwerking. Het gebruikt de Hive Metastore om metadata over datasets en tabellen op te slaan, wat efficiënt beheer en goede queryprestaties mogelijk maakt.

De architectuur van Unity Catalog bestaat uit drie hoofdonderdelen:

  1. Metadata Store: Dit onderdeel slaat alle metadata op met betrekking tot datasets, tabellen, externe locaties en andere objecten.
  2. Catalog: Dit onderdeel fungeert als interface tussen de Metadata Store en de compute-laag. Het biedt een uniform overzicht van alle metadata in de Metadata Store, zodat gebruikers eenvoudig toegang hebben tot en queries kunnen uitvoeren op hun data.
  3. Workspaces: Workspaces zijn virtuele opslaglocaties waar data veilig kan worden opgeslagen en beheerd. Ze maken eenvoudige samenwerking tussen teams mogelijk door een centrale plek te bieden voor data-toegang en -bewerking.

databricks components

Bron: Databricks

Met Databricks Unity Catalog kunnen gebruikers hun data eenvoudig beheren en bevragen zonder zich zorgen te maken over de onderliggende infrastructuur. Ze kunnen ook samenwerken met andere teamleden door specifieke permissies toe te kennen, zoals lees- en schrijfrechten, voor verschillende datasets of tabellen.

Om deze permissies te verlenen kunnen gebruikers SQL-commando’s zoals "GRANT" gebruiken om te specificeren welke gebruikers of groepen toegang hebben tot bepaalde data. Zo krijgen alleen geautoriseerde personen toegang tot gevoelige informatie.

Hoe Unity Catalog integreert met bestaande datasystemen

Unity Catalog integreert naadloos met bestaande datasystemen, zoals Amazon S3 en Azure Blob Storage, waardoor data uit verschillende bronnen makkelijk toegankelijk en beheersbaar is. Zo kunnen gebruikers snel grote datasets analyseren zonder data handmatig te verplaatsen of te kopiëren naar Databricks. 

Unity Catalog ondersteunt ook diverse bestandsformaten zoals CSV, JSON, Parquet en Avro, wat flexibiliteit biedt bij het werken met verschillende datatypes.

Best practices voor Databricks Unity Catalog

Bij het werken met Unity Catalog zijn er enkele best practices die zorgen voor efficiënt en effectief databeheer. 

Deze omvatten:

  1. Gebruik beschrijvende naamgevingsconventies voor tabellen en kolommen, zodat de data beter te begrijpen is.
  2. Werk de metadata in Unity Catalog regelmatig bij om wijzigingen in de onderliggende data bij te houden.
  3. Gebruik toegangscontroles om toegang tot gevoelige data te beperken, volgens het principe van "least privilege". Dit betekent dat je gebruikers of groepen alleen de noodzakelijke rechten geeft op basis van hun rol en verantwoordelijkheden.
  4. Gebruik tags en labels om datasets in Unity Catalog te classificeren en te organiseren, zodat je gerichter kunt zoeken.

Deze maatregelen helpen om effectieve data governance en optimale prestaties te waarborgen.

Veelvoorkomende uitdagingen en hoe ze aan te pakken

Unity Catalog is geen waterdichte oplossing en kan tegen uitdagingen aanlopen bij effectief databeheer. 

Enkele veelvoorkomende issues zijn:

  • Dataduplicatie: Dit gebeurt wanneer dezelfde data meerdere keren wordt opgeslagen, wat leidt tot inconsistenties en fouten.
  • Datakwaliteit: Slecht onderhouden of onjuiste data kan invloed hebben op zakelijke beslissingen en processen.
  • Complexe datahiërarchieën: Grote datasets met complexe relaties kunnen lastig te organiseren en beheren zijn binnen Unity Catalog.

Om deze uitdagingen aan te pakken, enkele tips:

  1. Beoordeel en ruim data regelmatig op om duplicatie te voorkomen. Verwijder onnodige of verouderde data.
  2. Implementeer datakwaliteitscontroles en validaties om de nauwkeurigheid van data binnen Unity Catalog te borgen.

Tot slot

Unity Catalog is een krachtige tool om data vanuit één overzicht te beheren via metastores, catalogs en workspaces. Het biedt een centrale plek voor het opslaan en organiseren van data, waardoor deze eenvoudiger te beheren en te gebruiken is binnen je bedrijfsprocessen. 

Wil je meer leren over Databricks? Bekijk dan onze cursus Introduction to Databricks, de gids Databricks Tutorial en het Databricks-webinar.

Databricks Unity Catalog FAQ’s

Wat is het verschil tussen Unity Catalog en Hive Metastore in Databricks?

Unity Catalog is een uniforme metadatadienst die een efficiënter en schaalbaarder alternatief biedt voor de traditionele Hive Metastore op Databricks. Het zorgt voor één bron van waarheid voor al je metadatabehoeften en maakt beheer en toegang eenvoudiger.

Kan ik Unity Catalog gebruiken met niet-Databricks-databronnen?

Ja, Unity Catalog ondersteunt zowel door Databricks beheerde als externe tabellen, waardoor je metadata uit verschillende bronnen eenvoudig kunt integreren op één plek. Er kunnen echter enkele beperkingen zijn.

Hoe verbetert Unity Catalog de prestaties?

Door een gecentraliseerde metadatastore te bieden, elimineert Unity Catalog de noodzaak van frequente queries naar externe systemen, wat resulteert in snellere uitvoeringstijden van queries.

Austin Chia

Auteur

Austin Chia

Ik ben Austin, een blogger en techschrijver met jarenlange ervaring als zowel datascientist als data-analist in de gezondheidszorg. Ik begon mijn techreis met een achtergrond in biologie en help nu anderen dezelfde overstap te maken via mijn techblog. Mijn passie voor technologie heeft geleid tot schrijfbijdragen aan tientallen SaaS-bedrijven, waarmee ik anderen inspireer en mijn ervaringen deel.

Onderwerpen

Gerelateerd