Diese Lektion zeigt dir, wie du deinen Databricks Workspace so organisierst, dass mehrere Teams (Data Engineers, Data Scientists, Analystinnen, nachgelagerte Konsumenten) sicher zusammenarbeiten können. Am Ende kannst du eine Katalogstruktur entwerfen, Berechtigungen vergeben und die Datenherkunft (Lineage) durch deine Wetter-zu-Strom-Pipeline erklären.
Unity Catalog führt für alle Datenobjekte eine dreistufige Namenskonvention ein:[1]
catalog.schema.table
-- Beispiele aus deiner Domäne:
prod.bronze.weather_raw
prod.silver.weather_ts
prod.silver.dim_assets
prod.gold.forecast_ts
dev.silver.weather_ts -- Kopie für die Dev-Umgebung
| Catalog | Zweck | Wer schreibt | Wer liest |
|---|---|---|---|
prod |
Tabellen der Produktionspipeline (Bronze/Silver/Gold) | Service Principals (Pipeline-Jobs) | Alle (für Menschen nur lesend) |
dev |
Entwicklung/Staging — spiegelt die Prod-Struktur | Data Engineers | Data Engineers, Data Scientists |
sandbox |
Exploration — Analystinnen legen persönliche Schemas an | Analystinnen, Data Scientists | Nur der Eigentümer (oder explizit geteilt) |
Kein Mensch schreibt direkt nach prod. Nur Service Principals (an Workflow-Jobs gebunden) haben Schreibrechte. Das verhindert versehentliche Beschädigungen und stellt sicher, dass sich alle Prod-Daten auf einen Pipeline-Lauf zurückführen lassen. Menschen lesen Prod, experimentieren in Sandbox und bringen Änderungen über Dev nach vorn.
Unity Catalog nutzt ein hierarchisches Berechtigungsmodell. Grants vererben sich nach unten (Catalog → Schema → Tabelle). Ein Deny auf einer beliebigen Ebene blockiert den Zugriff.[2]
-- Grant-Muster für dein Team
-- 1. Service Principal der Pipeline: Vollzugriff auf prod
GRANT USE CATALOG ON CATALOG prod TO `pipeline-service-principal`;
GRANT USE SCHEMA ON SCHEMA prod.bronze TO `pipeline-service-principal`;
GRANT USE SCHEMA ON SCHEMA prod.silver TO `pipeline-service-principal`;
GRANT USE SCHEMA ON SCHEMA prod.gold TO `pipeline-service-principal`;
GRANT ALL PRIVILEGES ON SCHEMA prod.bronze TO `pipeline-service-principal`;
GRANT ALL PRIVILEGES ON SCHEMA prod.silver TO `pipeline-service-principal`;
GRANT ALL PRIVILEGES ON SCHEMA prod.gold TO `pipeline-service-principal`;
-- 2. Data Scientists: prod lesen, dev + sandbox schreiben
GRANT USE CATALOG ON CATALOG prod TO `data-scientists`;
GRANT SELECT ON SCHEMA prod.silver TO `data-scientists`;
GRANT SELECT ON SCHEMA prod.gold TO `data-scientists`;
GRANT ALL PRIVILEGES ON CATALOG dev TO `data-scientists`;
GRANT ALL PRIVILEGES ON CATALOG sandbox TO `data-scientists`;
-- 3. Analystinnen: prod gold + silver lesen, sandbox schreiben
GRANT USE CATALOG ON CATALOG prod TO `analysts`;
GRANT SELECT ON SCHEMA prod.silver TO `analysts`;
GRANT SELECT ON SCHEMA prod.gold TO `analysts`;
GRANT ALL PRIVILEGES ON CATALOG sandbox TO `analysts`;
-- 4. Nachgelagerte Systeme: nur gold lesen
GRANT USE CATALOG ON CATALOG prod TO `trading-system`;
GRANT USE SCHEMA ON SCHEMA prod.gold TO `trading-system`;
GRANT SELECT ON SCHEMA prod.gold TO `trading-system`;
| Identitätstyp | Wofür | Beispiel |
|---|---|---|
| Service Principal | Automatisierte Pipelines, Zugriff externer Systeme | sp-weather-pipeline, sp-trading-reader |
| Gruppe | Berechtigungen auf Teamebene (leichter zu pflegen) | data-engineers, data-scientists, analysts |
| Benutzerkonto | Interaktives Arbeiten (Notebooks, SQL-Editor) | Einzelne Teammitglieder |
Unity Catalog verfolgt die Datenherkunft automatisch — welche Tabellen aus welchen lesen und welche Jobs welche Ergebnisse erzeugt haben.[3]
Lineage beantwortet für dein Team entscheidende Fragen:
prod.bronze.weather_raw
prod.silver.weather_ts
dev.bronze.weather_raw
dev.silver.weather_ts
Pro: Klare Trennung. Ein einziger GRANT gibt vollen Dev-Zugriff. Prod ist standardmäßig abgeriegelt.
Contra: Abfragen müssen zwischen den Umgebungen den Katalognamen wechseln (durch Parametrisierung entschärft).
weather.bronze.raw_forecasts
weather.silver.asset_ts
power.gold.forecasts
Pro: Naheliegend für sehr große Organisationen mit vielen Domänen.
Contra: Die Trennung der Umgebungen erfordert Grants je Schema. Für ein Produkt mit einem Team unnötig komplex.
Nimm Kataloge nach Umgebung (prod/dev/sandbox). Deine Domäne ist in sich geschlossen (Wetter-zu-Strom ist ein Produkt), und die Trennung der Umgebungen ist der wichtigste Governance-Bedarf. Innerhalb jedes Katalogs nutzt du Schemas für die Ebenen der Medaillon-Architektur (bronze/silver/gold). Das hält die Berechtigungen einfach und macht die Überführung von Pipelines vorhersehbar.
Dein Anlagenregister (Parks, Turbinen, Standorte) sind Stammdaten — es ändert sich selten, hat dann aber überproportionale Auswirkungen. Unity Catalog hilft dir dabei:
-- Der Tabellenkommentar dokumentiert Verantwortung und Änderungsprozess
COMMENT ON TABLE prod.silver.dim_assets IS
'Asset master data. Source of truth for all geo-locations and hierarchy.
Owner: data-engineering team.
Update process: PR-reviewed changes via dev.silver.dim_assets → promotion job.
Breaking changes require downstream notification.';
-- Spaltenkommentare für bessere Auffindbarkeit
COMMENT ON COLUMN prod.silver.dim_assets.parent_asset_id IS
'FK to parent asset (park). NULL if this row IS a park.';
COMMENT ON COLUMN prod.silver.dim_assets.hub_height_m IS
'Turbine hub height in metres. Used for wind speed extrapolation. NULL for parks.';
dev.silver.dim_assets (Engineers haben Schreibrechte)prod.silver.dim_assets (per MERGE)Unity Catalog unterstützt Tags für Auffindbarkeit und Governance-Richtlinien:
-- Tabellen nach Datenklassifizierung taggen
ALTER TABLE prod.silver.weather_ts SET TAGS ('pii' = 'none', 'retention' = '2years');
ALTER TABLE prod.gold.forecast_ts SET TAGS ('pii' = 'none', 'sla' = 'hourly');
ALTER TABLE prod.silver.dim_assets SET TAGS ('data_class' = 'master_data');
-- Spalten taggen (nützlich bei sensiblen Standortdaten, falls nötig)
ALTER TABLE prod.silver.dim_assets ALTER COLUMN latitude SET TAGS ('geo' = 'true');
ALTER TABLE prod.silver.dim_assets ALTER COLUMN longitude SET TAGS ('geo' = 'true');
Ein Data Scientist will ein neues Feature für das ML-Modell ausprobieren. Wo sollte er Tabellen anlegen?
Das Handelssystem muss Stromprognosen lesen, sonst nichts. Was ist der minimale Satz an Berechtigungen?
Deine Pipeline schreibt nach prod.silver.weather_ts. Wem sollte das Schreibrecht gehören?
📖 Empfohlene Lektüre
Unity Catalog best practices — Databricks-Dokumentation. Behandelt die Organisation von Katalogen, Berechtigungsmuster und Migrationsstrategien. Sieh dir außerdem Privilege types für die vollständige Berechtigungsreferenz an.
Mit der Governance im Rücken behandelt die nächste Lektion Feature Engineering & den Feature Store — wie du Silver-Zeitreihen in ML-taugliche Features überführst, Feature-Tabellen verwaltest und reproduzierbares Modelltraining ermöglichst.
Fragen zur Katalogstruktur, zur Vererbung von Berechtigungen oder zur Verwaltung teamübergreifender Zugriffe? Frag deinen Lehrer.
Rechtliches: Impressum