Používání katalogu Unity s kanály Delta Live Tables
Důležité
Podpora katalogu Unity pro Delta Live Tables je ve verzi Public Preview.
Kromě stávající podpory pro zachování tabulek do metastoru Hive můžete použít Katalog Unity s kanály Delta Live Tables k:
- Definujte katalog v katalogu Unity, kde bude kanál uchovávat tabulky.
- Čtení dat z tabulek katalogu Unity
Váš pracovní prostor může obsahovat kanály, které používají katalog Unity nebo metastore Hive. Jeden kanál ale nemůže zapisovat do metastoru Hive i do katalogu Unity ani do existujících kanálů, aby používal katalog Unity. Na vaše stávající kanály, které nepoužívají katalog Unity, tato verze Preview nemá vliv a budou nadále uchovávat data do metastoru Hive pomocí nakonfigurovaného umístění úložiště.
Pokud v tomto dokumentu neurčíte jinak, podporují se kanály, které používají katalog Unity, všechny existující zdroje dat a funkce Delta Live Tables. Kanály , které používají katalog Unity, podporují rozhraní Pythonu i SQL .
Na tabulky vytvořené ve vašem kanálu se také dají dotazovat ze sdílených clusterů katalogu Unity pomocí Databricks Runtime 13.3 LTS a vyšší nebo z SQL Warehouse. Tabulky nelze dotazovat z přiřazených nebo žádných clusterů izolace.
Ke správě oprávnění u tabulek vytvořených kanálem katalogu Unity použijte grant a REVOKE.
Požadavky
K vytvoření tabulek v katalogu Unity z kanálu Delta Live Tables jsou potřeba následující:
- Musíte mít
USE CATALOG
oprávnění k cílovému katalogu. - Pokud kanál vytváří materializovaná zobrazení, musíte mít
CREATE MATERIALIZED VIEW
v cílovém schématu oprávněníUSE SCHEMA
a oprávnění. - Pokud kanál vytváří streamované tabulky, musíte mít
CREATE TABLE
v cílovém schématu oprávněníUSE SCHEMA
a oprávnění. - Pokud v nastavení kanálu není zadané cílové schéma, musíte mít
CREATE MATERIALIZED VIEW
oprávněníCREATE TABLE
alespoň k jednomu schématu v cílovém katalogu.
Omezení
Při používání katalogu Unity s rozdílovými živými tabulkami platí následující omezení:
Ve výchozím nastavení mají oprávnění pouze vlastník kanálu a správci pracovního prostoru zobrazit protokoly ovladačů z clusteru, na kterém běží kanál s podporou katalogu Unity. Pokud chcete povolit přístup ostatním uživatelům, aby mohli zobrazit protokoly ovladačů, přečtěte si téma Povolit uživatelům bez oprávnění správce zobrazit protokoly ovladačů z kanálu s podporou katalogu Unity.
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.
Kanál s podporou katalogu Unity nelze vytvořit v pracovním prostoru připojeném k metastoru vytvořenému během veřejné verze Preview katalogu Unity. Viz Upgrade na dědičnost oprávnění.
Knihovny třetích stran a žádosti o přijetí změn se nepodporují.
Dotazy jazyka DML (Data Manipulat Language), které upravují schéma streamované tabulky, se nepodporují.
Materializované zobrazení vytvořené v kanálu Delta Live Tables nelze použít jako zdroj streamování mimo tento kanál, například v jiném kanálu nebo v podřízeného poznámkovém bloku.
Publikování do schémat, která určují umístění spravovaného úložiště, se podporuje jenom v kanálu Preview.
Pokud kanál publikuje schéma se spravovaným umístěním úložiště, je možné schéma změnit v následné aktualizaci, ale pouze v případě, že aktualizované schéma používá stejné umístění úložiště jako dříve zadané schéma.
Pokud cílové schéma určuje umístění úložiště, uloží se tam všechny tabulky. Pokud není zadané umístění úložiště schématu, tabulky se ukládají do umístění úložiště katalogu, pokud ho cílový katalog určuje. 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, kde jsou tabulky publikovány.
Karta Historie v Průzkumníku katalogu nezobrazuje historii streamovaných tabulek a materializovaných zobrazení.
Vlastnost
LOCATION
není podporována při definování tabulky.Kanály s podporou katalogu Unity nelze publikovat do metastoru Hive.
Podpora uživatelem definovaného uživatelem Pythonu je ve verzi Public Preview. Pokud chcete používat uživatelem definované funkce Pythonu , musí váš kanál používat kanál Preview.
Rozdílové sdílení s materializovaným zobrazením Delta Live Tables nebo streamovanou tabulkou publikovanou v katalogu Unity nelze použít.
Pro přístup k protokolům událostí více kanálů nemůžete použít
event_log
funkci s hodnotou tabulky v kanálu nebo dotazu.Nelze sdílet zobrazení vytvořené prostřednictvím
event_log
funkce s hodnotami tabulky s jinými uživateli.Kanály s podporou katalogu Unity nepodporují clustery s jedním uzlem. Vzhledem k tomu, že dynamické tabulky Delta můžou vytvořit cluster s jedním uzlem pro spouštění menších kanálů, může váš kanál selhat s chybovou zprávou odkazující
single-node mode
na . Pokud k tomu dojde, ujistěte se, že při konfiguraci nastavení výpočetních prostředků zadáte alespoň jeden pracovní proces.Tabulky vytvořené v kanálu s podporou katalogu Unity nelze dotazovat z přiřazených nebo žádných clusterů izolace. Pokud chcete dotazovat tabulky vytvořené kanálem Delta Live Tables, musíte použít cluster režimu sdíleného přístupu pomocí databricks Runtime 13.3 LTS a vyšší nebo SQL Warehouse.
Delta Live Tables používá cluster režimu sdíleného přístupu ke spuštění kanálu s podporou katalogu Unity. Kanál s podporou katalogu Unity nejde spustit v přiřazeného clusteru. Informace o omezeních režimu sdíleného přístupu v katalogu Unity najdete v tématu Omezení režimu sdíleného přístupu v katalogu Unity.
Filtry řádků nebo masky sloupců nelze použít s materializovanými zobrazeními nebo streamovanými tabulkami publikovanými v katalogu Unity.
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 definice materializovaného 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
.
Změny stávajících funkcí
Pokud je delta živé tabulky nakonfigurované tak, aby uchovávaly data do katalogu Unity, životní cyklus tabulky se spravuje kanálem Delta Live Tables. Protože kanál 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é obnovit, pokud byla odstraněna omylem. Data je možné obnovit přidáním materializovaného zobrazení nebo streamováním tabulky zpět do definice kanálu.
- Odstranění kanálu Delta Live Tables způsobí odstranění všech tabulek definovaných v daném kanálu. Z důvodu této změny se uživatelské rozhraní delta živých tabulek aktualizuje a zobrazí výzvu k potvrzení odstranění kanálu.
- Interní zálohovací tabulky, včetně záložních tabulek používaných 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
Poznámka:
Pokud pro kanál nevyberete katalog a cílové schéma, tabulky se nepublikují do katalogu Unity a mají k nim přístup jenom dotazy ve stejném kanálu.
Pokud chcete napsat tabulky do katalogu Unity, vyberte při vytváření kanálu katalog Unity v části Možnosti úložiště, v rozevírací nabídce Katalog vyberte katalog a vyberte existující schéma nebo zadejte název nového schématu v rozevírací nabídce Cílové schéma. Další informace o katalogech Unity najdete v tématu Katalogy. Další informace o schématech v katalogu Unity najdete v tématu Schémata.
Příjem 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
- Automatický zavaděč
cloud_files()
pomocí funkce ke čtení z externích umístění katalogu Unity. - Apache Kafka a Amazon Kinesis.
Tady jsou příklady čtení z tabulek katalogu Unity a metastoru Hive.
Dávkové příjem dat z tabulky katalogu Unity
SQL
CREATE OR REFRESH LIVE TABLE
table_name
AS SELECT
*
FROM
my_catalog.my_schema.table1;
Python
@dlt.table
def table_name():
return spark.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, který používá Katalog Unity, může číst data z tabulek metastoru hive_metastore
Hive pomocí katalogu:
SQL
CREATE OR REFRESH LIVE TABLE
table_name
AS SELECT
*
FROM
hive_metastore.some_schema.table;
Python
@dlt.table
def table3():
return spark.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
cloud_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í (živé tabulky)
Ve výchozím nastavení mohou být tabulky vytvořené kanálem dotazovány pouze vlastníkem 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 najdete v tématu Správa oprávnění v katalogu Unity.
Udělení výběru v tabulce
GRANT SELECT ON TABLE
my_catalog.my_schema.live_table
TO
`user@databricks.com`
Odvolání výběru v tabulce
REVOKE SELECT ON TABLE
my_catalog.my_schema.live_table
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. V případě materializovaných zobrazení nebo streamovaných tabulek v kanálu s podporou katalogu Unity se v uživatelském rozhraní rodokmenu Průzkumníka katalogu zobrazí nadřazené a podřízené tabulky. 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 bude uživatelské rozhraní rodokmenu Průzkumníka katalogu také propojit s kanálem, který vytvořil materializované zobrazení nebo tabulku streamování, 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 příkazy jazyka DML (Data Manipulat Language ), včetně vložení, aktualizace, odstranění a slučování. Podpora dotazů DML na streamované tabulky umožňuje případy použití, jako je aktualizace tabulek pro 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, je možné spustit pouze ve sdíleném clusteru Katalogu Unity nebo SQL Warehouse pomocí databricks Runtime 13.3 LTS a vyšší.
- Vzhledem k tomu, že streamování vyžaduje zdroje dat jen pro připojení, pokud vaše zpracování vyžaduje streamování ze zdrojové tabulky streamování se změnami (například příkazy DML), nastavte příznak skipChangeCommits při čtení zdrojové tabulky streamování. Při
skipChangeCommits
nastavení se transakce, které odstraňují nebo upravují záznamy ve zdrojové tabulce, ignorují. Pokud zpracování nevyžaduje tabulku streamování, můžete jako cílovou tabulku použít materializované zobrazení (které nemá omezení pouze pro připojení).
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;
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro