MOC — dny 1 a 2
1. Představení Azure Databricks 2. Výběr a konfigurace compute 3. Objekty v Unity Catalogu 4. Zabezpečení Unity Catalogu 5. Governance Unity Catalogu 6. Datové modelování 7. Ingest dat
MOC — pokračování
8. Čištění a transformace dat 9. Data quality constraints · mimo osnovu 10. Datové pipelines 11. Lakeflow Jobs 12. Vývojový lifecycle · mimo osnovu 13. Monitoring a optimalizace
🏠 Rozcestník kurzu
Pod čarou — den 3
14. Průřez Microsoft Fabric 15. Power BI + Fabric + Databricks 16. Migrace z Oracle
🏠 Rozcestník kurzu
DP-750 · Kapitola 3

Objekty v Unity Catalogu

Katalogy, schémata, tabulky, views, volumes, foreign catalogy a AI/BI Genie
🗂 Organizace objektů v Unity Catalogu

Cíle kapitoly

  • Navrhnout konzistentní naming conventions a používat třívrstvý namespace catalog.schema.object
  • Vytvořit catalog a schema včetně managed storage location a workspace bindings
  • Rozlišit managed a external tabulky, vytvářet views, materialized views a volumes
  • Provádět DDL operace — SQL/Python funkce, procedury, ALTER a governance tagy
  • Připojit externí databázi přes foreign catalog (Lakehouse Federation) a nakonfigurovat AI/BI Genie instructions
3.1

Třívrstvý namespace a naming conventions

Vše, co v Unity Catalogu vytvoříte, žije v třívrstvém namespace: catalog.schema.object. Nad těmito třemi vrstvami stojí metastore — jeden na region, sdílený všemi workspaces v daném regionu. Metastore sami nevytváříte pro každý projekt; je to střecha, pod kterou stavíte katalogy.

Metastore — jeden na region, sdílený všemi workspaces Catalog prod_catalog — hranice izolace, vlastní storage a přístupové politiky Schema — sales Tables Views Volumes Functions tabulky = strukturovaná data, volumes = soubory, funkce = logika Schema — hr další logická jednotka: tým, projekt, doména nebo vrstva medallionu každé schema má vlastní tabulky, views, volumes a funkce prod_catalog.sales.orders — plně kvalifikované jméno objektu
Hierarchie Unity Catalogu: metastore (region) → catalog → schema → tabulky, views, volumes a funkce.

Než začnete cokoliv vytvářet, dohodněte si naming conventions. Unity Catalog má několik tvrdých pravidel, která vám rozhodování zjednoduší:

PravidloDetail
Délka jménamax. 255 znaků
Velikost písmenjména objektů se ukládají jako lowercase; SalesData = salesdata
Zakázané znakytečka, mezera, lomítko, řídicí znaky (tečka odděluje vrstvy namespace)
Speciální znakymožné přes backticky, např. `sales-data` — v praxi se jim vyhněte
Sloupcezachovávají zadanou velikost písmen, dotazy jsou case-insensitive

Doporučený vzor je lowercase s podtržítky (customer_data, sales_summary) — camelCase se stejně převede na lowercase a vznikne jen zmatek. Views prefixujte vw_, dočasné staging tabulky tmp_. Názvy schémat zarovnejte s vrstvami medallion architektury: bronze, silver, gold — pak z sales_data.gold.monthly_revenue každý na první pohled pozná, co drží v ruce.

U katalogů se rozhodujete mezi dvěma strategiemi: podle domény (sales_data, finance_data) nebo podle prostředí (dev, test, prod). Kombinace {domena}_{prostredi} — tedy sales_dev, sales_prod — škáluje nejlépe, ale roste vám počet katalogů, takže potřebujete disciplínu ve správě.

💡
Tip: konvence bez vynucení dlouho nevydrží. Omezte privilegia CREATE TABLE/CREATE SCHEMA na konkrétní týmy, validujte jména v CI/CD pipeline a nekonzistence pravidelně hledejte dotazem do information_schema.
ℹ️
Poznámka: verzování do jména nepatří — sales_final_report_v1_updated je klasický antipattern. Verze a stav patří do metadat (comments, tagy), ne do identifikátoru.
3.2

Vytvoření katalogu

Catalog je nejvyšší kontejner a primární jednotka izolace dat: každý katalog může mít vlastní storage location, bezpečnostní hranice i přístupové politiky. K vytvoření potřebujete být metastore admin, nebo mít privilegium CREATE CATALOG. Každý nový katalog automaticky dostane dvě schémata: default a information_schema.

SQL
-- katalog s dedikovanym managed storage
CREATE CATALOG IF NOT EXISTS prod_catalog
MANAGED LOCATION 'abfss://prod-data@mystorageaccount.dfs.core.windows.net/catalog-root'
COMMENT 'Production catalog with dedicated ADLS Gen2 storage';

IF NOT EXISTS dělá skript idempotentní — můžete ho pouštět opakovaně bez chyby.

V UI: Catalog v levé navigaci → Create catalog → jméno + typ Standard → volitelně managed storage location → Create. Po vytvoření nastavte workspace bindings — nový katalog je defaultně viditelný ze všech workspaces připojených k metastore. Produkční katalog omezte jen na produkční workspace.

Managed storage location určuje, kam Unity Catalog fyzicky ukládá soubory managed tabulek a volumes v katalogu. Bez ní padají managed objekty do defaultního úložiště metastore — a pokud metastore default nemá, je MANAGED LOCATION při vytvoření katalogu povinná. K jejímu nastavení potřebujete existující external location a privilegium CREATE MANAGED STORAGE.

⚠️
Pozor: defaultní viditelnost katalogu ze všech workspaces je častý provozní faul. Dev workspace, který „vidí" na prod_catalog, je jedno špatné USE CATALOG od incidentu. Workspace bindings nastavte hned po vytvoření katalogu.
💡
Tip: dedikovaný managed storage per katalog řeší i compliance — citlivá data drží ve storage accountu a regionu, který odpovídá regulatorním požadavkům, a fyzicky je izoluje od ostatních katalogů.
3.3

Vytvoření schématu

Schema je druhá vrstva namespace a organizuje data uvnitř katalogu do logických celků — typicky jeden use case, projekt nebo tým. V Databricks narazíte i na termín „database": CREATE DATABASE je alias pro CREATE SCHEMA, jde o totéž. K vytvoření potřebujete USE CATALOG a CREATE SCHEMA na nadřazeném katalogu.

SQL
CREATE SCHEMA IF NOT EXISTS prod_catalog.customer_analytics
COMMENT 'Customer behavior and segmentation analysis';

-- schema s vlastnim ulozistem (napr. finance kvuli compliance)
CREATE SCHEMA IF NOT EXISTS prod_catalog.financial_data
MANAGED LOCATION 'abfss://finance@mystorageaccount.dfs.core.windows.net/schema-data';

Tři osvědčené vzory organizace schémat:

VzorPříkladKdy použít
Podle oddělenímarketing_analytics, financial_databusiness units vlastní svá data
Podle projektucustomer_churn_model, pricing_optimizationdočasné iniciativy, snadný úklid po konci projektu
Podle fáze zpracováníbronze, silver, goldmedallion pipeline, nejčastější u data engineeringu

Managed storage na úrovni schématu je volitelná — pokud ji nezadáte, managed tabulky používají úložiště katalogu (případně metastore). Hierarchie fallbacku je tedy: schema → catalog → metastore.

ℹ️
Poznámka: aby uživatel schema vůbec viděl a mohl dotazovat jeho obsah, potřebuje minimálně USE SCHEMA (plus USE CATALOG na katalogu). Detailně se privilegiím věnuje kapitola o zabezpečení Unity Catalogu.
3.4

Tabulky a views

Managed vs. external tabulky

Managed table je default: Databricks spravuje metadata i datové soubory, formát je Delta Lake (ACID transakce, time travel, schema enforcement) a při DROP TABLE se smažou metadata i data. External table jen registruje metadata nad daty v externím úložišti — DROP odstraní pouze registraci v katalogu, soubory zůstanou.

MANAGED TABLE (default) SPRAVUJE DATABRICKS / UNITY CATALOG Metadata (Unity Catalog) jméno, schéma, privilegia, lineage Datové soubory (Delta, managed storage) optimalizace a lifecycle řeší platforma DROP TABLE → smaže metadata i data (soubory se odstraní po retenční lhůtě) EXTERNAL TABLE SPRAVUJE UNITY CATALOG Metadata (Unity Catalog) SPRAVUJETE VY (LOCATION) Datové soubory (vaše ADLS Gen2) DROP TABLE → smaže jen metadata, data v úložišti zůstávají Pravidlo: nové pipeline stavějte na managed tabulkách. External jen při konkrétním důvodu.
Managed tabulka: Unity Catalog vlastní metadata i data. External tabulka: Unity Catalog vlastní jen metadata, datové soubory zůstávají ve vašem úložišti. Nové pipeline stavějte na managed tabulkách; k external sáhněte jen při konkrétním důvodu — sdílení s jinými systémy nebo už existující data v úložišti.
SQL
-- managed tabulka (default, format Delta Lake)
CREATE TABLE production.sales.sales_transactions (
  transaction_id BIGINT,
  customer_id INT,
  amount DECIMAL(10,2),
  transaction_date DATE
);

-- external tabulka nad existujicimi CSV soubory
CREATE EXTERNAL TABLE production.sales.archived_sales
USING CSV
LOCATION 'abfss://container@storage.dfs.core.windows.net/sales/archive'
OPTIONS (header 'true', inferSchema 'true');

Primary a foreign keys

Unity Catalog umí definovat PRIMARY KEY a FOREIGN KEY constraints — ale pozor na očekávání z klasických databází:

Častý omyl: PK/FK constraints vynucují integritu▼

Kdo čeká, že PRIMARY KEY v Databricks zablokuje duplicitní řádky, bude překvapen. PK/FK constraints jsou informational only — nevynucují se při zápisu. Dokumentace: „these constraints are informational only and are not enforced." Slouží jako metadata pro dokumentaci datového modelu, pro query optimizer (lepší join strategie) a pro nástroje jako AI/BI Genie, které z nich odvozují join relationships. Datovou kvalitu vynucují jen NOT NULL a CHECK constraints.

SQL
CREATE TABLE customers (
  customer_id BIGINT NOT NULL,
  customer_name STRING,
  CONSTRAINT customers_pk PRIMARY KEY (customer_id)
);

CREATE TABLE orders (
  order_id BIGINT NOT NULL PRIMARY KEY,
  customer_id BIGINT,
  total_amount DECIMAL(10,2),
  CONSTRAINT orders_customers_fk FOREIGN KEY (customer_id)
    REFERENCES customers(customer_id)
);

Views: standardní, dynamické, materializované

TypDataKdy použít
Viewnic neukládá, dotaz běží při každém přístupuzapouzdření logiky, vždy aktuální data
Dynamic viewjako view + row filtering / column maskingřízení přístupu podle uživatele (is_account_group_member())
Materialized viewpředpočítané výsledky v Delta tabulcedrahé agregace, dashboardy, akceptovatelná mírná neaktuálnost
SQL
-- dynamic view: maskovani sloupce podle skupiny
CREATE VIEW sales_redacted AS
SELECT user_id,
  CASE WHEN is_account_group_member('auditors') THEN email
       ELSE 'REDACTED' END AS email,
  product, total
FROM sales_raw;

-- materialized view s planovanym refreshem
CREATE MATERIALIZED VIEW daily_sales_summary
SCHEDULE EVERY 1 DAY
AS SELECT transaction_date,
  COUNT(*) AS transaction_count,
  SUM(amount) AS total_sales
FROM sales_transactions
GROUP BY transaction_date;

Materialized views podporují inkrementální refresh — zpracují jen změněná data. Podmínkou je, aby zdrojové Delta tabulky měly zapnutý row tracking (delta.enableRowTracking = true). Zapnutí na velké existující tabulce chvíli trvá, povyšuje protokol tabulky a je nevratné.

Materialized view vs. streaming table — kdy co?▼

Streaming table (CREATE OR REFRESH STREAMING TABLE) zpracovává pouze nové řádky od posledního refreshe — streaming sémantika, exactly-once. Hodí se pro inkrementální ingestion (Auto Loader nad cloud storage, Kafka) a bronze/silver vrstvy, kde data jen přibývají. Materialized view naopak počítá agregace nad kompletním datasetem batch sémantikou. Pravidlo: zdroj jen appenduje a historii nedrží (Kafka) → streaming table; agregace nad celkem s periodickým přepočtem → materialized view. Streaming tables rozebírá detailně kapitola o ingestion.

⚠️
Pozor: dynamic views vyžadují SQL warehouse nebo compute se standard/dedicated access mode (u dedicated na Databricks Runtime 15.4 LTS+). Na starším runtime se dotaz přes dynamic view nespustí.
💡
Tip: místo klasického partitioningu použijte u tabulek i materialized views liquid clustering (CLUSTER BY) — layout dat se optimalizuje automaticky podle dotazů a nehrozí skewed partitions.
3.5

Volumes: governance pro soubory

Volume je objekt Unity Catalogu pro netabulková data — CSV k ingestion, obrázky, audio, ML modely. Sedí na třetí úrovni namespace (catalog.schema.volume) a přenáší stejný governance model, jaký znáte z tabulek, na soubory.

Stejně jako u tabulek volíte managed (úložiště i lifecycle řeší Unity Catalog; po dropu jsou soubory označeny ke smazání po retenční lhůtě) nebo external (soubory leží na vámi zadané cestě a drop odstraní jen registraci). External volume použijte, když k souborům přistupují i systémy mimo Databricks nebo když governance přidáváte nad existující úložiště.

SQL
-- managed volume
CREATE VOLUME IF NOT EXISTS dev_catalog.bronze_schema.landing_files
COMMENT 'Landing area for CSV files from external systems';

-- external volume nad existujicim ulozistem
CREATE EXTERNAL VOLUME prod_catalog.silver_schema.ml_models
LOCATION 'abfss://models@mystorageaccount.dfs.core.windows.net/production/';

-- prava: cteni a zapis pro skupinu
GRANT READ VOLUME, WRITE VOLUME ON VOLUME dev_catalog.bronze_schema.landing_files
TO `data-engineers`;

K souborům přistupujete jednotnou POSIX-style cestou /Volumes/<catalog>/<schema>/<volume>/<cesta> — funguje ve Sparku, pandas, SQL i dbutils.fs, bez credentials a connection stringů:

PYTHON
# stejna cesta pro Spark i pandas
df = spark.read.format("csv").load("/Volumes/dev_catalog/bronze_schema/landing_files/data.csv")

import pandas as pd
pdf = pd.read_csv("/Volumes/dev_catalog/bronze_schema/landing_files/data.csv")

# sprava souboru
dbutils.fs.ls("/Volumes/dev_catalog/bronze_schema/landing_files")
⚠️
Pozor: volumes nepodporují ACL na úrovni podadresářů — privilegia platí vždy pro celý volume. Potřebujete-li různá práva pro různé sady souborů, vytvořte pro každou bezpečnostní hranici samostatný volume.
ℹ️
Poznámka: ke čtení souboru nestačí READ VOLUME — uživatel potřebuje i USE CATALOG a USE SCHEMA na nadřazených objektech. Privilegia se v hierarchii vyhodnocují vždy shora dolů.
3.6

DDL operace: funkce, procedury, ALTER a tagy

Funkce jako governed objekty

Funkce v Unity Catalogu nejsou jen syntaktický cukr — jsou to governed objekty s vlastníkem, privilegii a sledováním použití. Definujete je jednou a voláte odkudkoliv, takže výpočet slevy nebo klasifikace známky je v celé organizaci konzistentní. Podporovány jsou scalar i table-valued funkce v SQL nebo Pythonu:

SQL
-- SQL scalar funkce
CREATE FUNCTION dev_catalog.finance_schema.calculate_discount(price DOUBLE, discount_rate DOUBLE)
RETURNS DOUBLE
RETURN price * (1 - discount_rate);

-- Python funkce (bezi na serverless / pro SQL warehouse)
CREATE FUNCTION dev_catalog.analytics_schema.normalize_text(input_text STRING)
RETURNS STRING
LANGUAGE PYTHON
AS $$
  return input_text.lower().strip() if input_text else None
$$;

-- table-valued funkce
CREATE FUNCTION dev_catalog.utils_schema.split_to_rows(input_array ARRAY<STRING>)
RETURNS TABLE(value STRING)
RETURN SELECT explode(input_array) AS value;

Pro vícekrokové workflow (validace → transformace → load) existují SQL stored procedures — CREATE PROCEDURE s IN/OUT/INOUT parametry, proměnnými a řízením toku, volané přes CALL. Vyžadují Databricks Runtime 17.0+; přesný stav podpory ověřte v dokumentaci.

ALTER: vlastnictví, tagy, struktura

SQL
-- prevod vlastnictvi katalogu na skupinu
ALTER CATALOG dev_catalog SET OWNER TO `data_engineering_team`;

-- governance tagy pro klasifikaci a dohledatelnost
-- nazev tagu i hodnota musi byt retezcove literaly
ALTER CATALOG dev_catalog SET TAGS (
  'environment' = 'development',
  'cost_center' = 'engineering',
  'data_classification' = 'internal'
);

-- upravy struktury tabulky bez rebuildu
ALTER TABLE dev_catalog.sales_schema.orders
ADD COLUMN shipping_carrier STRING COMMENT 'Name of the shipping carrier';

ALTER TABLE dev_catalog.sales_schema.orders
ALTER COLUMN quantity TYPE BIGINT;

ALTER TABLE zvládne přidání, přejmenování i odstranění sloupců a rozšíření typů (INT → BIGINT) při zachování dat — vyžaduje privilegium MODIFY. Rozšiřování typů (type widening) funguje na Delta tabulkách od Databricks Runtime 15.2 a výš; má-li se typ rozšířit automaticky už při ingesci, zapněte na tabulce delta.enableTypeWidening. Podporované dvojice typů a přesný stav funkce ověřte v dokumentaci. Přejmenování sloupce potřebuje zapnutý Delta column mapping. Tagy jsou prohledávatelná metadata: základ pro klasifikaci dat, cost management i pozdější automatizovanou governance.

💡
Tip: ALTER CATALOG prod_catalog ENABLE PREDICTIVE OPTIMIZATION zapne automatickou údržbu (compaction, vacuum) pro všechny tabulky v katalogu — tabulky nastavení dědí, pokud ho na své úrovni nepřepíšete.
3.7

Foreign catalog a Lakehouse Federation

Ne všechna data máte v lakehousu — a ne všechna tam potřebujete stěhovat. Lakehouse Federation umožňuje dotazovat externí databáze (PostgreSQL, MySQL, Azure SQL, Snowflake, BigQuery…) přímo z Databricks, přičemž přístup řídí, audituje a lineage sleduje Unity Catalog. Ideální pro ad-hoc analýzy nad živými provozními daty, proof-of-concept bez ETL a postupnou migraci.

Architektura stojí na dvou objektech: connection uchovává technické detaily připojení (JDBC host, port, credentials — ideálně přes Databricks secrets) a foreign catalog zrcadlí konkrétní externí databázi do namespace Unity Catalogu. Jedna connection může obsloužit více foreign catalogů (více databází na stejném serveru).

Uživatel / BI nástroj SELECT ... FROM fed_pg.public.transactions Azure Databricks — Unity Catalog Foreign catalog zrcadlo metadat externí DB Connection JDBC URL + credentials (secrets) privilegia + audit log + lineage jednotná governance pro všechna data PostgreSQL Azure SQL Database Snowflake, BigQuery… pushdown výsledky Dotaz se přeloží do dialektu cílové databáze a vykoná na jejím compute; filtry a agregace se posílají dolů (pushdown).
Lakehouse Federation: connection drží credentials, foreign catalog zrcadlí externí databázi a Unity Catalog vynucuje jednotnou governance nad dotazy do externích systémů.
SQL
-- 1) connection: credentials pres Databricks secrets, ne v plaintextu
CREATE CONNECTION postgresql_prod TYPE postgresql
OPTIONS (
  host 'prod-db.example.com',
  port '5432',
  user secret ('prod-secrets','postgres-user'),
  password secret ('prod-secrets','postgres-password')
);

-- 2) foreign catalog zrcadlici databazi customers
CREATE FOREIGN CATALOG IF NOT EXISTS prod_customer_data
USING CONNECTION postgresql_prod
OPTIONS (database 'customers');

-- 3) dotaz jako na beznou tabulku Unity Catalogu
SELECT customer_id, SUM(transaction_amount) AS total_spent
FROM prod_customer_data.public.transactions
GROUP BY customer_id;

Metadata se synchronizují automaticky při každém dotazu. U vysokofrekvenčních dotazů to může být pomalé — pak metadata občerstvujte plánovaně přes REFRESH FOREIGN CATALOG / SCHEMA / TABLE (např. z Lakeflow Jobs) a dotazy poběží nad cache.

⚠️
Pozor: dotaz se vykonává na compute externí databáze. Federovaný dashboard, který každých pár minut agreguje produkční PostgreSQL, je skvělý způsob, jak si znepřátelit DBA týmu provozu. Často dotazovaná externí data raději cacheujte lokálně přes materialized view.
ℹ️
Poznámka: potřebná privilegia: CREATE CONNECTION na metastore pro connection; CREATE CATALOG na metastore plus vlastnictví connection (nebo CREATE FOREIGN CATALOG na ní) pro foreign catalog. Přístup pro federaci je primárně read-only — možnosti zápisu ověřte v aktuální dokumentaci pro konkrétní systém.
3.8

AI/BI Genie instructions

AI/BI Genie umožňuje business uživatelům ptát se na data přirozeným jazykem — Genie z otázky vygeneruje SQL nad tabulkami Unity Catalogu. Aby generovalo správné SQL, potřebuje kontext: k tomu slouží knowledge store objektu Genie Agent (dříve Genie space), kde metadata upravujete na jeho úrovni, aniž byste měnili podkladové objekty v katalogu.

Genie Agent stavíte nad výběrem tabulek (max. 25, doporučeno začít s pěti a méně). Pak vrstvíte kontext:

NástrojK čemu slouží
Popisy tabulek a sloupcůbusiness jazyk místo technického („obsahuje všechny nákupy zákazníků…"), synonyma pro sloupce
Skrytí sloupcůsurrogate keys a audit sloupce ven — matou uživatele i model
Joinsvztahy mezi tabulkami vč. kardinality; PK/FK z Unity Catalogu si Genie načte samo
Prompt matchingvzorky reálných hodnot — „California" se namapuje na kód „CA"
SQL expressionsznovupoužitelné measures/filtry/dimenze (gross margin, fiskální kvartál)
Example SQL queriesvzorové otázky s hotovým SQL; parametrizované se označují jako Trusted
Text instructionsglobální pravidla („fiskální rok začíná v únoru") — používat střídmě

Tady se vyplácí poctivá práce z předchozích sekcí: PK/FK constraints ze sekce 3.4, popisné komentáře a konzistentní jména Genie automaticky vytěží při zakládání Genie Agenta (knowledge mining) a uloží jako join relationships. Dobře anotovaný katalog znamená méně ruční konfigurace.

Konfigurace Genie je iterativní proces: otestujte Genie Agenta vlastními otázkami, přes Show generated code zkontrolujte vygenerované SQL, chybné odpovědi opravte a uložte jako novou instrukci (Add as instruction). Průběžně sledujte zpětnou vazbu uživatelů v tabu Monitoring a měřte přesnost benchmark otázkami.

Limity Genie Agenta (stav dle Learn modulu, ověřte v dokumentaci)▼

Genie Agent má dva oddělené limity: instructions limit 100 (example SQL queries, SQL funkce a celý blok textových instrukcí dohromady) a knowledge store snippets limit 200 (popisy tabulek, join relationships a SQL expressions dohromady). Entity matching zvládne až 1 024 distinct hodnot na sloupec napříč 120 sloupci jednoho agenta. Popisy sloupců a prompt matching se do limitů nepočítají. Limity se mohou měnit — aktuální hodnoty ověřte v dokumentaci.

💡
Tip: začněte minimálně — málo tabulek, málo instrukcí — a rozšiřujte podle skutečných otázek uživatelů. Přehlcený Genie Agent s desítkami obecných textových instrukcí odpovídá hůř než malý a přesně mířený.
3.9

Lab 3: Create and Organize Objects in Unity Catalog (45 minut)

Lakeside University buduje datovou platformu pro studijní agendu: v labu vytvoříte katalog edu_dev s medallion schématy (bronze/silver/gold), managed tabulky studentů, kurzů a zápisů s PK/FK constraints, view a materialized view pro analytické dotazy, managed volume pro CSV soubory, SQL funkci pro klasifikaci známek a přes ALTER aplikujete governance tagy. Volitelně nad datasetem postavíte Genie Agenta.

▶ Otevřít lab na GitHubu (EN) · Learn modul k tématu — s krátkými výukovými videy

ℹ️
Poznámka: na kurzu lab prochází lektor jako demo. Postup je krokový a samoobslužný — pokud se na něj v rámci dne nedostane, projdete si ho samostatně.
✓
Sebekontrola: 1) Co se stane s datovými soubory při DROP TABLE u managed vs. external tabulky? 2) Vynucují PK/FK constraints v Unity Catalogu referenční integritu při zápisu — a k čemu tedy slouží? 3) Jaký je rozdíl mezi connection a foreign catalogem v Lakehouse Federation a která privilegia potřebujete k jejich vytvoření?