Sdílet prostřednictvím


Použijte katalog Unity s vašimi kanály Delta Live Tables

Důležité

Podpora Delta Live Tables pro Katalog Unity je ve verzi Public Preview.

Databricks doporučuje konfigurovat kanály Delta Live Tables pomocí katalogu Unity.

Kanály nakonfigurované pomocí katalogu Unity publikují všechna definovaná materializovaná zobrazení a streamované tabulky do zadaného katalogu a schématu. Kanály katalogu Unity můžou číst z jiných tabulek a svazků katalogu Unity.

Ke správě oprávnění u tabulek vytvořených kanálem katalogu Unity použijte GRANT a REVOKE.

Poznámka:

Tento článek popisuje funkcionalitu pro aktuální výchozí režim publikování pro kanály v potrubí. Potrubí vytvořená před 5. únorem 2025 mohou používat starší režim publikování a virtuální schéma LIVE. Viz LIVE schema (starší verze).

Požadavky

Pokud chcete vytvořit streamované tabulky a materializovaná zobrazení v cílovém schématu v katalogu Unity, musíte mít následující oprávnění ke schématu a nadřazeného katalogu:

  • USE CATALOG oprávnění k cílovému katalogu.
  • CREATE MATERIALIZED VIEW a USE SCHEMA oprávnění k cílovému schématu, pokud váš pipeline vytvoří materializovaná zobrazení.
  • CREATE TABLE a USE SCHEMA oprávnění k cílovému schématu, pokud pipeline vytvoří streamované tabulky.

Pokud váš pipeline vytváří nová schémata, musíte mít oprávnění USE CATALOG a CREATE SCHEMA v cílovém katalogu.

Výpočetní prostředky potřebné ke spuštění pipeline aktivované katalogem Unity:

Výpočty potřebné k dotazování tabulek vytvořených kanálem Delta Live Tables pomocí katalogu Unity (včetně streamovaných tabulek a materializovaných zobrazení) zahrnují některou z následujících možností:

  • SQL Warehouses

  • Clustery v režimu sdíleného přístupu v Databricks Runtime 13.3 LTS nebo vyšší.

  • Clustery v režimu přístupu jednoho uživatele (nebo přiřazeného) v případě, že je v clusteru s jedním uživatelem povolené podrobné řízení přístupu (tj. cluster je spuštěný v Prostředí Databricks Runtime 15.4 nebo vyšší a pro pracovní prostor je povolený bezserverový výpočetní výkon). Další informace najdete v tématu Jemně odstupňované řízení přístupu u výpočetních prostředků jednoho uživatele.

  • Clustery s režimem přístupu jednotlivého (nebo přiřazeného) uživatele ve verzích 13.3 LTS až 15.3, pouze pokud vlastník tabulky spustí dotaz.

Platí další omezení výpočetních prostředků. Podívejte se na následující část.

Omezení

Při používání katalogu Unity s Delta Live Tables platí následující omezení:

  • Ve výchozím nastavení můžou protokoly ovladačů zobrazit pouze vlastník kanálu a správci pracovního prostoru z clusteru, na kterém běží kanál s podporou katalogu Unity. Pokud chcete ostatním uživatelům povolit přístup k protokolům ovladačů, podívejte se na téma Jak povolit uživatelům, kteří nejsou správci, zobrazit protokoly ovladačů z kanálu s podporou Unity Catalog.

  • Existující kanály, které používají metastore Hive, nelze upgradovat tak, aby používaly katalog Unity. Pokud chcete migrovat existující kanál, který zapisuje do metastoru Hive, musíte vytvořit nový kanál a znovu ingestovat data ze zdrojů dat. Viz Vytvoření kanálu katalogu Unity klonováním kanálu metastoru Hive.

  • Nelze vytvořit kanál povolený katalogem Unity v pracovním prostoru připojeném k metastoru, který byl vytvořen během verze Public Preview Unity Catalogu. Viz Upgrade na dědičnost oprávnění.

  • Žádosti o přijetí změn se nepodporují. Podporují se jenom knihovny Pythonu třetích stran. Viz Správa závislostí Pythonu pro kanály Delta Live Tables.

  • Dotazy jazyka DML (Data Manipulat Language), které upravují schéma streamované tabulky, se nepodporují.

  • Materializované zobrazení vytvořené v potrubí Delta Live Tables nelze použít jako zdroj streamování mimo toto potrubí, například v jiném potrubí nebo následujícím poznámkovém bloku.

  • Data pro materializovaná zobrazení a streamované tabulky se ukládají do úložního umístění schématu, které je obsahuje. Pokud není zadané umístění úložiště schématu, tabulky se ukládají do umístění úložiště katalogu. Pokud nejsou zadána umístění úložiště schématu a katalogu, tabulky jsou uloženy v kořenovém úložišti metastoru.

  • Karta Historie v Průzkumníku katalogu nezobrazuje historii materializovaných zobrazení.

  • Při definování tabulky není vlastnost LOCATION podporována.

  • Kanály s podporou katalogu Unity nelze publikovat do metastoru Hive.

  • Podpora uživatelem definovaného uživatelem Pythonu je ve verzi Public Preview.

  • Nelze použít rozdílové sdílení s materializovaným zobrazením Delta Live Tables nebo streamovanou tabulkou publikovanou do katalogu Unity.

  • Nemůžete použít tabulkovou funkci event_log v datovém toku nebo dotazu pro přístup k protokolům událostí více datových toků.

  • Nelze sdílet zobrazení vytvořené pomocí tabulkové funkce event_log s ostatními uživateli.

Poznámka:

Podkladové soubory podporující materializovaná zobrazení mohou zahrnovat data z nadřazených tabulek (včetně možných identifikovatelných osobních údajů), které se nezobrazují v definici materializovaného zobrazení. Tato data se automaticky přidají do podkladového úložiště, aby podporovala přírůstkovou aktualizaci materializovaných zobrazení.

Vzhledem k tomu, že podkladové soubory materializovaného zobrazení můžou riskovat zveřejnění dat z nadřazených tabulek, které nejsou součástí schématu materializovaného zobrazení, databricks doporučuje nesdílit podkladové úložiště s nedůvěryhodnými podřízenými příjemci.

Předpokládejme například, že materializovaná definice zobrazení obsahuje COUNT(DISTINCT field_a) klauzuli. I když materializovaná definice zobrazení obsahuje pouze agregační COUNT DISTINCT klauzuli, podkladové soubory budou obsahovat seznam skutečných hodnot field_a.

Můžu společně používat metastore Hive a kanály katalogu Unity?

Váš pracovní prostor může obsahovat datové toky, které používají katalog Unity a starší metastore Hive. Jeden kanál ale nemůže zapisovat do metastoru Hive a katalogu Unity. Existující kanály, které zapisují do metastoru Hive, nelze upgradovat tak, aby používaly katalog Unity. Pokud chcete migrovat existující kanál, který zapisuje do metastoru Hive, musíte vytvořit nový kanál a znovu ingestovat data ze zdrojů dat. Viz Vytvoření kanálu katalogu Unity klonováním kanálu metastoru Hive.

Vytváření nových kanálů nakonfigurovaných pomocí katalogu Unity nemá vliv na existující kanály, které nepoužívají katalog Unity. Tyto kanály nadále uchovávají data do metastoru Hive pomocí nakonfigurovaného umístění úložiště.

Pokud není v tomto dokumentu uvedeno jinak, všechny existující zdroje dat a funkce Delta Live Tables jsou podporovány v rámci potrubí, které používají katalog Unity. Kanály, které používají katalog Unity, podporují rozhraní Pythonu i SQL.

Změny stávajících funkcí

Pokud jsou Delta Live Tables nakonfigurovány tak, aby uchovávaly data v katalogu Unity, je životní cyklus tabulky spravován kanálem Delta Live Tables. Protože pipeline spravuje životní cyklus a oprávnění tabulky:

  • Když je tabulka odebrána z definice kanálu Delta Live Tables, odpovídající materializované zobrazení nebo položka streamované tabulky se odebere z katalogu Unity při příští aktualizaci kanálu. Skutečná data se uchovávají po určitou dobu, aby je bylo možné v případě omylu obnovit. Data je možné obnovit přidáním materializovaného zobrazení nebo streamované tabulky zpět do definice kanálu.
  • Odstraněním kanálu Delta Live Tables se odstraní všechny tabulky definované v daném kanálu. Kvůli této změně se uživatelské rozhraní Delta Live Tables aktualizuje, aby vás vyzve k potvrzení odstranění kanálu.
  • Interní zálohovací tabulky, včetně těch, které se používají k podpoře APPLY CHANGES INTO, nejsou přímo přístupné uživatelům.

Zápis tabulek do katalogu Unity z kanálu Delta Live Tables

Pokud chcete psát tabulky do katalogu Unity, musíte kanál nakonfigurovat tak, aby s ním fungoval prostřednictvím pracovního prostoru. Při vytvoření datového potrubívyberte Katalog Unity pod Možnosti úložiště, vyberte katalog v rozevírací nabídce Katalog a vyberte existující schéma nebo zadejte název pro nové schéma v rozevírací nabídce Cílové schéma. Další informace o katalogech Unity najdete v tématu Co jsou katalogy v Azure Databricks?. Další informace o schématech v katalogu Unity najdete v tématu Co jsou schémata v Azure Databricks?.

Ingestování dat do kanálu katalogu Unity

Váš kanál nakonfigurovaný pro použití katalogu Unity může číst data z:

  • Spravované a externí tabulky, zobrazení, materializovaná zobrazení a tabulky streamování v Katalogu Unity
  • Tabulky a zobrazení metastoru Hive
  • Využití automatického zavaděče s funkcí read_files() pro čtení z externích umístění Unity Catalog.
  • Apache Kafka a Amazon Kinesis.

Tady jsou příklady čtení z tabulek katalogu Unity a metastoru Hive.

Dávkový příjem dat z tabulky Unity katalogu

SQL

CREATE OR REFRESH MATERIALIZED VIEW
  table_name
AS SELECT
  *
FROM
  my_catalog.my_schema.table1;

Python

@dlt.table
def table_name():
  return spark.read.table("my_catalog.my_schema.table")

Streamování změn z tabulky katalogu Unity

SQL

CREATE OR REFRESH STREAMING TABLE
  table_name
AS SELECT
  *
FROM
  STREAM(my_catalog.my_schema.table1);

Python

@dlt.table
def table_name():
  return spark.readStream.table("my_catalog.my_schema.table")

Příjem dat z metastoru Hive

Kanál používající Unity Catalog může číst data z tabulek metastoru Hive pomocí katalogu hive_metastore.

SQL

CREATE OR REFRESH MATERIALIZED VIEW
  table_name
AS SELECT
  *
FROM
  hive_metastore.some_schema.table;

Python

@dlt.table
def table3():
  return spark.read.table("hive_metastore.some_schema.table")

Příjem dat z automatického zavaděče

SQL

CREATE OR REFRESH STREAMING TABLE
  table_name
AS SELECT
  *
FROM
  read_files(
    <path-to-uc-external-location>,
    "json"
  )

Python

@dlt.table(table_properties={"quality": "bronze"})
def table_name():
  return (
     spark.readStream.format("cloudFiles")
     .option("cloudFiles.format", "json")
     .load(f"{path_to_uc_external_location}")
 )

Sdílení materializovaných zobrazení

Ve výchozím nastavení má oprávnění k dotazování datových sad vytvořených kanálem pouze vlastník kanálu. Jiným uživatelům můžete udělit možnost dotazovat se na tabulku pomocí příkazů GRANT a přístup k dotazům můžete odvolat pomocí příkazů REVOKE. Další informace o oprávněních v Katalogu Unity naleznete v tématu Spravovat oprávnění v katalogu Unity.

Udělení oprávnění SELECT na tabulce

GRANT SELECT ON TABLE
  my_catalog.my_schema.table_name
TO
  `user@databricks.com`

Odvolání výběru v tabulce

REVOKE SELECT ON TABLE
  my_catalog.my_schema.table_name
FROM
  `user@databricks.com`

Udělení oprávnění k vytvoření tabulky nebo vytvoření materializovaných oprávnění zobrazení

GRANT CREATE { MATERIALIZED VIEW | TABLE } ON SCHEMA
  my_catalog.my_schema
TO
  { principal | user }

Zobrazení rodokmenu kanálu

Rodokmen tabulek v kanálu Delta Live Tables je viditelný v Průzkumníku katalogu. Uživatelské rozhraní rodokmenu Průzkumníka katalogu zobrazuje nadřazené a podřízené tabulky pro materializovaná zobrazení nebo streamované tabulky v kanálu s podporou katalogu Unity. Další informace o rodokmenu katalogu Unity najdete v tématu Zachycení a zobrazení rodokmenu dat pomocí katalogu Unity.

V případě materializovaného zobrazení nebo streamované tabulky v kanálu Delta Live Tables s podporou katalogu Unity propojí uživatelské rozhraní Průzkumníka katalogu rodokmenu rovněž s kanálem, který vytvořil materializované zobrazení nebo streamovanou tabulku, pokud je kanál přístupný z aktuálního pracovního prostoru.

Přidání, změna nebo odstranění dat v streamované tabulce

K úpravě streamovaných tabulek publikovaných v katalogu Unity můžete použít jazyk jazyka DML (insert, update, delete a merge). Podpora dotazů DML na tabulky streamování umožňuje případy použití, jako je aktualizace tabulek kvůli dodržování obecného nařízení o ochraně osobních údajů (GDPR).

Poznámka:

  • Příkazy DML, které upravují schéma tabulky streamované tabulky, nejsou podporovány. Ujistěte se, že se příkazy DML nepokoušnou vyvíjet schéma tabulky.
  • Příkazy DML, které aktualizují streamovací tabulku, lze spustit pouze ve sdíleném clusteru Unity Catalog nebo SQL Warehouse s použitím Databricks Runtime 13.3 LTS a novější.
  • Vzhledem k tomu, že streamování vyžaduje datové zdroje určené pouze pro přírůstky, pokud vaše zpracování vyžaduje streamování ze zdrojové streamovací tabulky se změnami (například v důsledku příkazů DML), nastavte při čtení zdrojové streamovací tabulky příznak skipChangeCommits. Při nastavení skipChangeCommits budou transakce, které odstraňují nebo upravují záznamy ve zdrojové tabulce, ignorovány. Pokud vaše zpracování nevyžaduje tabulku streamování, můžete jako cílovou tabulku použít materializované zobrazení (které není omezeno pouze na připojení dat).

Tady jsou příklady příkazů DML pro úpravu záznamů v tabulce streamování.

Odstraňte záznamy s konkrétním ID:

DELETE FROM my_streaming_table WHERE id = 123;

Aktualizujte záznamy s konkrétním ID:

UPDATE my_streaming_table SET name = 'Jane Doe' WHERE id = 123;

Publikování tabulek s filtry řádků a maskami sloupců

Důležité

Tato funkce je ve verzi Public Preview.

filtry řádků umožňují zadat funkci, která se použije jako filtr při každém načtení řádků v tabulce. Tyto filtry zajišťují, aby následné dotazy vracely pouze řádky, pro které se predikát filtru vyhodnotí jako true.

masky sloupců umožňují maskovat hodnoty sloupce při každém načtení řádků tabulkou. Budoucí dotazy na tento sloupec vrátí výsledek vyhodnocené funkce místo původní hodnoty sloupce. Další informace o použití filtrů řádků a masek sloupců najdete v tématu Filtrování citlivých dat tabulky pomocí filtrů řádků a masek sloupců.

Správa filtrů řádků a masek sloupců

Filtry řádků a masky sloupců v materializovaných zobrazeních a streamovaných tabulkách by měly být přidány, aktualizovány nebo vynechány prostřednictvím příkazu CREATE OR REFRESH.

Podrobnou syntaxi definování tabulek s filtry řádků a maskami sloupců najdete v tématu referenční příručka pro Delta Live Tables SQL a referenční příručka pro Delta Live Tables Python.

Chování

Při použití filtrů řádků nebo masek sloupců v kanálech Delta Live Tables jsou důležité následující podrobnosti:

  • Aktualizovat jako vlastník: Když aktualizace kanálu aktualizuje materializované zobrazení nebo streamovanou tabulku, spustí se funkce filtru řádků a masky sloupců s právy vlastníka kanálu. To znamená, že aktualizace tabulky používá kontext zabezpečení uživatele, který kanál vytvořil. Funkce, které kontrolují kontext uživatele (například CURRENT_USER a IS_MEMBER) se vyhodnocují pomocí kontextu uživatele vlastníka kanálu.
  • dotaz: Při dotazování materializovaného zobrazení nebo streamovací tabulky se funkce, které kontrolují kontext uživatele (například CURRENT_USER a IS_MEMBER), vyhodnocují pomocí uživatelského kontextu volajícího. Tento přístup vynucuje zabezpečení dat a řízení přístupu specifické pro uživatele na základě kontextu aktuálního uživatele.
  • Při vytváření materializovaných zobrazení ve zdrojových tabulkách, které obsahují filtry řádků a masky sloupců, je aktualizace materializovaného zobrazení vždy úplná aktualizace. Úplná aktualizace znovu zpracuje všechna data dostupná ve zdroji s nejnovějšími definicemi. Tento proces zkontroluje, zda jsou zásady zabezpečení ve zdrojových tabulkách vyhodnocovány a aplikovány s nejaktuálnějšími daty a definicemi up-to.

Pozorovatelnost

Pomocí DESCRIBE EXTENDED, INFORMATION_SCHEMAnebo Průzkumníka katalogu můžete prozkoumat existující filtry řádků a masky sloupců, které platí pro dané materializované zobrazení nebo tabulku streamování. Tato funkce umožňuje uživatelům auditovat a kontrolovat přístup k datům a míry ochrany v materializovaných zobrazeních a streamovaných tabulkách.