Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Důležité
Tato funkce je ve verzi Public Preview.
Pomocí režimu kompatibility můžete číst spravované tabulky Katalogu Unity, materializovaná zobrazení a streamované tabulky z externích systémů a současně udržovat optimální výkon v Azure Databricks. Tato funkce automaticky generuje verze tabulek jen pro čtení, ke kterým může přistupovat jakýkoli klient Delta Lake nebo Iceberg.
Přehled
Pokud je povolená spravovaná tabulka, streamovaná tabulka nebo materializované zobrazení, režim kompatibility vygeneruje ve zvoleném umístění verzi tabulky jen pro čtení. Tato verze kompatibility zahrnuje metadata verze 1 pro formáty Delta Lake i Iceberg, která poskytují následující možnosti:
- Interoperabilita s libovolným klientem Delta Lake: Čtení spravovaných tabulek, včetně streamovaných tabulek nebo materializovaných zobrazení, od klientů, jako jsou Amazon Athena, Snowflake a Amazon Redshift, přímo z úložiště nebo prostřednictvím rozhraní Rest API Unity
- Interoperabilita s libovolným klientem Icebergu: Čtení spravovaných tabulek, včetně streamovaných tabulek nebo materializovaných zobrazení, od klientů Icebergu, jako jsou Apache Spark, Apache Trino a Snowflake, prostřednictvím katalogu Iceberg REST
- Automatizace ‚nastavit a zapomenout‘: Automatizace aktualizací dat a metadat pro verze kompatibility s možností konfigurace intervalů aktualizace blízko reálného času
Požadavky
Pokud chcete povolit režim kompatibility v tabulce, musíte používat katalog Unity. Podporovány jsou pouze streamingové tabulky Unity Catalog, materializovaná zobrazení Unity Catalog a spravované tabulky Unity Catalog. Externí tabulky katalogu Unity se nepodporují.
Kromě toho ověřte, že máte v katalogu Unity zaregistrované externí umístění s odpovídajícími nastaveními a oprávněními:
- Cílová lokace musí existovat ve vašem účtu úložiště a být prázdná.
- Cílové umístění, nebo jakákoli z jeho nadřazených složek, musí být zaregistrováno jako externí umístění v katalogu Unity.
- Musíte mít
CREATE EXTERNAL TABLEoprávnění pro externí umístění. - Cílové umístění a všechny nadřazené nebo podřízené složky nesmí být použity jako umístění režimu kompatibility pro jinou tabulku za posledních 7 dnů.
Povolit režim kompatibility u tabulek
Pro streamované tabulky, materializované pohledy a spravované mělké klony nastavte při vytváření následující vlastnosti tabulky:
CREATE [STREAMING TABLE | MATERIALIZED VIEW | TABLE] my_catalog.my_schema.my_table
TBLPROPERTIES(
'delta.universalFormat.enabledFormats' = 'compatibility',
'delta.universalFormat.compatibility.location' = '<location>'
)
U spravovaných tabulek v Katalogu Unity můžete režim kompatibility povolit také při změně existující tabulky:
-- For existing managed tables
ALTER TABLE my_catalog.my_schema.my_table SET TBLPROPERTIES(
'delta.universalFormat.enabledFormats' = 'compatibility',
'delta.universalFormat.compatibility.location' = '<location>'
)
První vygenerování verze kompatibility trvá až jednu hodinu. Tabulku můžete okamžitě aktualizovat ručně , abyste potvrdili, že funguje.
Poznámka:
Je nutné zadat úplný název třídílné tabulky (catalog.schema.table_name). Například pro users.john.my_table, usersje katalog a john je schéma.
Kontrola, jestli je povolený režim kompatibility
Pokud chcete ověřit, že je v tabulce povolený režim kompatibility, zkontrolujte, jestli delta.universalFormat.enabledFormats = 'compatibility' vlastnost tabulky existuje. Tuto vlastnost můžete zobrazit v uživatelském rozhraní Průzkumníka katalogu na kartě podrobností tabulky.
V poznámkovém bloku můžete také spustit následující příkazy SQL:
DESC DETAIL my_catalog.my_schema.my_table
DESC EXTENDED my_catalog.my_schema.my_table
Ve výstupu vyhledejte tyto vlastnosti:
-
delta.universalFormat.enabledFormats: "compatibility"– Označuje, že je povolený režim kompatibility. -
delta.universalFormat.compatibility.location– Zobrazuje umístění verze režimu kompatibility.
Konfigurace intervalů aktualizace
U spravovaných tabulek Katalogu Unity můžete nakonfigurovat, jak často se aktualizuje verze režimu kompatibility nastavením intervalu aktualizace:
-- Evaluate whether a refresh is needed after every commit (fastest)
ALTER TABLE my_catalog.my_schema.my_table SET TBLPROPERTIES(
'delta.universalFormat.enabledFormats' = 'compatibility',
'delta.universalFormat.compatibility.location' = '<location>',
'delta.universalFormat.compatibility.targetRefreshInterval' = '0 MINUTES'
)
-- Refresh hourly (default)
ALTER TABLE my_catalog.my_schema.my_table SET TBLPROPERTIES(
'delta.universalFormat.enabledFormats' = 'compatibility',
'delta.universalFormat.compatibility.location' = '<location>',
'delta.universalFormat.compatibility.targetRefreshInterval' = '1 HOUR'
)
Výchozí interval aktualizace je 1 HOUR. Nastavení intervalu aktualizace pod 1 hodinu se nedoporučuje a nedochází k aktualizacím častěji. Výjimkou je, když nastavíte hodnotu intervalu aktualizace na 0 MINUTES. V tomto případě Azure Databricks kontroluje změny po každém potvrzení a v případě potřeby aktivuje aktualizaci.
U streamovaných tabulek a materializovaných zobrazení se nevyžaduje interval aktualizace.
0 MINUTES je výchozí hodnota.
Poznámka:
Změny, které výrazně ovlivňují dobu aktualizace (například přejmenování sloupce nebo rozšíření typu), se provádějí každou hodinu bez ohledu na interval cílové aktualizace.
Ruční aktualizace
Ruční aktivace aktualizace verze kompatibility:
REFRESH [TABLE | STREAMING TABLE | MATERIALIZED VIEW] my_catalog.my_schema.my_table SYNC UNIFORM
Ruční aktualizace je užitečná pro testování správného fungování režimu kompatibility nebo zajištění, že vaše verze kompatibility je up-to-date před následným čtením. Čekání na automatické aktualizace ale může být cenově výhodnější.
Monitorování stavu generování dat a metadat
Režim kompatibility generuje data a metadata automaticky a asynchronně. U spravovaných tabulek v Katalogu Unity probíhá generování ve výchozím nastavení každou hodinu nebo na základě nakonfigurovaného intervalu aktualizace. U streamingových tabulek a materializovaných zobrazení generování probíhá po aktualizaci tabulek, po provedení nových potvrzení.
Kontrola úspěšného vygenerování dat a metadat:
Umožňuje
DESCRIBE HISTORYnajít nejnovější verzi zdrojové tabulky:DESC HISTORY my_catalog.my_schema.my_table
Tento příkaz vrátí historii aktualizací do režimu kompatibility, včetně verze Delta Lake a časového razítka. Horní řádek obsahuje nejnovější verzi a časové razítko.
Slouží
DESCRIBE EXTENDEDk vyhledání odpovídající verze režimu kompatibility:DESC EXTENDED my_catalog.my_schema.my_table
Vyhledejte pole v části Jednotné informace o kompatibilitě:
- Poslední aktualizace verze: Verze Delta Lake, která byla naposledy aktualizována režimem kompatibility
- Poslední aktualizace: Časové razítko poslední aktualizace
Režim kompatibility je up-to-date, pokud verze tabulky odpovídá verzi nalezené v kroku 1.
Používá se
DESC HISTORYu samotné verze kompatibility:DESC HISTORY delta.\`<compatibility_location>\`
V Průzkumníku katalogu zobrazte pole metadat pro verzi kompatibility. Režim kompatibility je aktuální, pokud verze Delta Lake shoduje se s verzí ve kroku 3.
Monitorování nákladů
Prediktivní optimalizace zpracovává výpočetní cluster, který provádí automatické aktualizace režimu kompatibility. Pokud chcete zobrazit přidružené náklady, zadejte dotaz na tabulky fakturace systému:
SELECT
DATE_TRUNC('DAY', start_time) AS day,
SUM(usage_quantity) AS dbus
FROM
system.storage.predictive_optimization_operations_history
WHERE
operation_type = "COMPATIBILITY_MODE_REFRESH"
GROUP BY 1
ORDER BY 1 DESC;
Tento dotaz hlásí využití pouze pro automatické aktualizace. Náklady na ruční aktualizace jsou spojené s vaším výpočetním prostředím a neexistuje přímý způsob, jak tyto náklady samostatně sledovat. Obecně platí, že náklady na ruční aktivační událost jsou úměrné nákladům počáteční operace zápisu do původní tabulky.
Odebrání nepoužívaných datových souborů
Pokud chcete odebrat nepoužívané datové soubory ve verzi kompatibility tabulky, použijte VACUUM:
VACUUM delta.'<compatibility_mode_location_path>';
Pokud chcete najít cestu k umístění režimu kompatibility, použijte DESCRIBE EXTENDED příkaz Kontrola , jestli je povolený režim kompatibility. Ve výstupu představuje hodnota delta.universalFormat.compatibility.location polohu.
Čtení verzí kompatibility z externích klientů
Ke čtení dat z verzí kompatibility můžete použít libovolného klienta Delta Lake nebo Iceberg. Příklady pro Amazon Athena a Snowflake (delta reader) najdete níže.
Amazon Athena
V Editoru dotazů Athena vytvořte externí tabulku se zadaným umístěním:
CREATE EXTERNAL TABLE <table_name> LOCATION '<compatibility_location>' TBLPROPERTIES ('table_type' = 'DELTA')Přečtěte si tabulku:
SELECT * FROM <table_name>
Čtenář Snowflake Delta Lake
Vytvořte integraci úložiště pro přístup k umístění úložiště (viz dokumentace ke Snowflake).
Vytvořte externí tabulku s formátem Delta Lake:
CREATE OR REPLACE EXTERNAL TABLE <table_name> WITH LOCATION = @<my_location> FILE_FORMAT = (TYPE = PARQUET) TABLE_FORMAT = DELTA AUTO_REFRESH = false REFRESH_ON_CREATE = false;Aktualizujte tabulku (automatická aktualizace není podporovaná pro formát Delta Lake ve Snowflake):
ALTER EXTERNAL TABLE <table_name> REFRESH;Přečtěte si tabulku:
SELECT * FROM <table_name>;
Čtení verzí kompatibility z rozhraní Unity REST API
Tabulky s povoleným režimem kompatibility je možné číst podle názvu prostřednictvím rozhraní Unity REST API se speciálními parametry. U streamovaných tabulek nastavte následující parametr rozhraní API:
GET /api/2.1/unity-catalog/tables/{full_name}?read_streaming_table_as_managed=true
Pro materializovaná zobrazení nastavte následující parametr rozhraní API:
GET /api/2.1/unity-catalog/tables/{full_name}?read_materialized_view_as_managed=true
Čtení verzí kompatibility z katalogu Iceberg REST
Tabulky s povoleným režimem kompatibility lze číst z libovolného klienta Icebergu pomocí katalogu Iceberg REST. Režim kompatibility funguje automaticky pro formáty tabulek Delta Lake i Iceberg.
Požadavky na nastavení
- Povolte externí přístup k datům v metastoru.
- Udělte oprávnění
EXTERNAL USE SCHEMAna schéma. - Vytvoření tokenu PAT (Personal Access Token) Azure Databricks
Konfigurace Apache Sparku
bin/spark-sql --packages org.apache.iceberg:iceberg-spark-runtime-3.5_2.12:1.8.0,org.apache.iceberg:iceberg-azure-bundle:1.8.0 \
--conf "spark.sql.extensions=org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions" \
--conf spark.sql.catalog.catalog_name=org.apache.iceberg.spark.SparkCatalog \
--conf spark.sql.catalog.catalog_name.type=rest \
--conf spark.sql.catalog.catalog_name.uri=<workspace-url>/api/2.1/unity-catalog/iceberg-rest \
--conf spark.sql.catalog.catalog_name.token=<PAT> \
--conf spark.sql.catalog.catalog_name.warehouse=<uc-catalog-name>
Další informace najdete v tématu Použití tabulek Iceberg s Apache Sparkem.
Konfigurace Snowflake
Snowflake nabízí dvě možnosti přístupu k tabulkám režimu kompatibility prostřednictvím katalogu ICEBERG REST: prostřednictvím databází propojených s katalogem Snowflake nebo externích tabulek.
Pro obě možnosti nejprve nakonfigurujte integraci katalogu Snowflake:
CREATE OR REPLACE CATALOG INTEGRATION <catalog-integration-name>
CATALOG_SOURCE = ICEBERG_REST
TABLE_FORMAT = ICEBERG
CATALOG_NAMESPACE = '<uc-schema-name>'
REST_CONFIG = (
CATALOG_URI = '<workspace-url>/api/2.1/unity-catalog/iceberg-rest',
WAREHOUSE = '<uc-catalog-name>'
)
REST_AUTHENTICATION = (
TYPE = BEARER
BEARER_TOKEN = '<token>'
)
ENABLED = TRUE;
Nahraďte následující proměnné:
-
<catalog-integration-name>: Název, který chcete přiřadit katalogu registrovanému ve Snowflake. -
<uc-schema-name>: Název schématu v katalogu Unity, ke které potřebujete přístup. -
<uc-catalog-name>: Název katalogu v Unity Catalog, k němuž potřebujete přístup. -
<workspace-url>: Adresa URL pracovního prostoru Azure Databricks. -
<token>: token PAT pro hlavního správce konfigurujícího integraci.
Databáze propojené s katalogem
Databáze propojené s katalogem Snowflake se automaticky synchronizují s Katalogem Unity a detekují schémata a tabulky Iceberg. To eliminuje potřebu ruční aktualizace metadat.
Po konfiguraci integrace katalogu Snowflake si projděte dokumentaci Snowflake a vytvořte databázi propojenou s katalogem pro přístup k tabulkám.
Poznámka:
Tabulky přístupné prostřednictvím režimu kompatibility jsou jen pro čtení. Vzhledem k tomu, že databáze propojené s katalogem jsou funkce Snowflake, doporučuje Databricks odkazovat na dokumentaci Snowflake pro podporované operace se streamovanými tabulkami Azure Databricks, materializovanými zobrazeními nebo spravovanými tabulkami s povoleným režimem kompatibility.
Externí tabulky
Případně můžete po vytvoření integrace katalogu Snowflake vytvořit externí tabulky. Tento přístup vyžaduje ruční aktualizaci metadat, aby se zobrazily aktualizace.
CREATE OR REPLACE ICEBERG TABLE my_table
CATALOG = 'my_uc_int'
CATALOG_TABLE_NAME = '<uc-st/mv-name>';
Zakázat režim kompatibility
Režim kompatibility zakážete zrušením nastavení odpovídající vlastnosti tabulky:
-- For UC managed tables
ALTER TABLE my_table UNSET TBLPROPERTIES('delta.universalFormat.enabledFormats')
-- For streaming tables and materialized views
CREATE OR REPLACE [STREAMING TABLE | MATERIALIZED VIEW] my_table
TBLPROPERTIES('delta.universalFormat.enabledFormats' = '')
Výstraha
Zrušením resetování režimu kompatibility se okamžitě zastaví generování dat a metadat. Po 7 dnech se přidružená data a metadata odstraní. Během tohoto 7denního období můžete obnovit data a metadata opětovným povolením režimu kompatibility ve stejné tabulce.
Omezení
- Přístup jen pro čtení: Verze kompatibility je jen pro čtení. Do verze kompatibility nelze zapisovat.
- Nepodporuje zabezpečení na úrovni řádků (RLS) ani zabezpečení na úrovni sloupců (CLS): Nelze povolit režim kompatibility u tabulek se zabezpečením na úrovni řádků (RLS) nebo na úrovni sloupců (CLS).
- Přejmenování sloupce oddílu není podporováno v tabulkách s povoleným režimem kompatibility. Přejmenování datového sloupce je podporováno.
-
Omezené funkce tabulek: Následující funkce nejsou ve verzi kompatibility k dispozici:
- Kolace sloupce
- Primární klíče
- Časová cesta
- Změna datového kanálu
- Názvy sloupců se speciálními znaky (budou přejmenovány)