Sdílet prostřednictvím


Federace metastoru Hive: Umožnění katalogu Unity spravovat tabulky registrované v metastoru Hive

Důležitý

Tato funkce je ve verzi Public Preview.

Tento článek představuje federaci metastoru Hive, což je funkce, která umožňuje katalogu Unity řídit tabulky uložené v metastoru Hive. Externí úložiště metadat Hive i starší interní úložiště metadat Azure Databricks Hive můžete federovat.

Federaci metastoru Hive je možné použít pro následující případy použití:

  • Jako krok v cestě migrace do katalogu Unity je možné povolit přírůstkovou migraci bez přizpůsobení kódu, přičemž některé úlohy nadále používají data zaregistrovaná v metastoru Hive, zatímco ostatní se migrují.

    Tento případ použití je nejvhodnější pro organizace, které dnes používají starší interní metastor Azure Databricks Hive, protože federované interní metastory Hive umožňují úlohy čtení i zápisu.

  • Poskytnout dlouhodobý hybridní model pro organizace, které musí udržovat nějaká data v Hive metastore vedle jejich dat zaregistrovaných v katalogu Unity.

    Tento případ použití je nejvhodnější pro organizace, které používají externí metastor Hive, protože federované katalogy pro tyto metastory Hive jsou jen pro čtení.

Diagram , který představuje federační propojení Hive

Přehled federace metastoru Hive

V federaci metastoru Hive vytvoříte připojení z pracovního prostoru Azure Databricks k metastoru Hive a Katalog Unity prochází metastor Hive a naplní federovaného katalogu, který vaší organizaci umožňuje pracovat s tabulkami metastoru Hive v Katalogu Unity a poskytuje centralizované řízení přístupu, rodokmen, vyhledávání a další.

Federované metastore Hive, které jsou externí pro váš pracovní prostor Azure Databricks, umožňují čtení pomocí katalogu Unity. Interní metastory Hive umožňují čtení a zápisy, aktualizaci metadat metastoru Hive a metadata katalogu Unity při zápisu.

Při dotazování federovaných prostředků metastoru Hive poskytuje Katalog Unity vrstvu zásad správného řízení, provádění funkcí, jako jsou kontroly přístupu a auditování, zatímco dotazy se provádějí pomocí sémantiky metastoru Hive. Pokud například uživatel zadá dotaz na tabulku uloženou ve formátu Parquet v federovaném katalogu, pak:

  • Katalog Unity zkontroluje, jestli má uživatel přístup k tabulce a odvodí rodokmen dotazu.
  • Samotný dotaz se spustí na podkladovém metastoru Hive a využívá nejnovější metadata a informace o oddílech, které jsou tam uložené.

diagram, který znázorňuje vztah mezi úlohami HMS, Unity Catalog a Databricks ve scénáři federace Hive

Jak se federace metastoru Hive porovnává s používáním externích tabulek katalogu Unity?

Katalog Unity má možnost vytvářet externí tabulky, brát data, která již existují v libovolném cloudovém úložišti a zaregistrovat je v katalogu Unity jako tabulku. Tato část popisuje rozdíly mezi externími a federovanými tabulkami metastoru Hive.

Oba typy tabulek mají následující vlastnosti:

  • Dá se použít k registraci libovolného umístění v cloudovém úložišti jako tabulky.
  • Může použít oprávnění katalogu Unity a jemně odstupňované řízení přístupu.
  • Lze zobrazit v rodokmenu pro dotazy, které na ně odkazují.

Pouze federované tabulky mají následující vlastnosti:

  • Jsou automaticky zjištěny na základě procházení úložiště metadat Hive. Jakmile se tabulky vytvoří v metastoru Hive, zobrazí se a zpřístupní se pro dotazování v federovaném katalogu Unity Catalog.
  • Umožnit, aby byly tabulky definovány sémantikou Hive, jako jsou Hive SerDes a partice.
  • Umožňuje, aby se tabulky překrývaly s jinými tabulkami v federovaných katalogech.
  • Povolte umístění tabulek v kořenových umístěních DBFS.
  • Zahrnout pohledy definované v rámci metastoru Hive

Tímto způsobem si můžete představit federované tabulky metastoru Hive jako nabídku zpětné kompatibility s metastorem Hive, což umožňuje úlohám používat sémantiku pouze Hive, zatímco správu poskytuje katalog Unity.

Některé funkce katalogu Unity ale nejsou k dispozici ve federovaných tabulkách, například:

  • Funkce dostupné pouze pro spravované tabulky Katalogu Unity, jako je prediktivní optimalizace.
  • Vektorové vyhledávání, Delta Sharing, monitorování systému Lakehouse a online tabulky.
  • Některé funkce datového úložiště zahrnují vytvoření úložiště funkcí, nasazení modelu, vytvoření specifikace funkcí, protokolování modelu a dávkové vyhodnocování.

Výkon může být mírně horší než úlohy na katalogu Unity nebo metastoru Hive, protože jak metastore Hive, tak Katalog Unity jsou v dotazové cestě federované tabulky.

Další informace o podporovaných funkcích najdete v tématu Požadavky, podporované funkce a omezení.

Co znamená zápis do federovaného katalogu metastoru Hive v Azure Databricks?

Zápisy jsou podporovány pouze pro federované interní metastory Hive, nikoliv pro externí metastory Hive.

Zápisy do federovaných metastorů mají dva typy:

  • Operace DDL, jako jsou CREATE TABLE, ALTER TABLEa DROP TABLE.

    Operace DDL se synchronně odrážejí v základním úložišti metadat Hive. Spuštění příkazu CREATE TABLE například vytvoří tabulku v metastoru Hive i v federovaného katalogu.

    Varování

    To také znamená, že příkazy DROP se projeví v úložišti metadat Hive. Například DROP SCHEMA mySchema CASCADE zahodí všechny tabulky v podkladovém schématu metastoru Hive bez možnosti UNDROP, protože metastor Hive nepodporuje UNDROP.

  • Operace DML, jako jsou INSERT, UPDATEa DELETE.

    Operace DML se také synchronně projeví v podkladové tabulce metastoru Hive. Spuštění INSERT INTO například přidá záznamy do tabulky v metastoru Hive.

    Podpora zápisu je klíčem k povolení bezproblémového přechodu během migrace z metastoru Hive do katalogu Unity. Viz Jak používat federaci Hive metastore při migraci do katalogu Unity?.

Jak nastavíte federaci metastoru Hive?

Pokud chcete nastavit federaci metastoru Hive, postupujte takto:

  1. Vytvořte připojení v Unity Catalogu, jenž určuje cestu a přihlašovací údaje pro přístup k metastoru Hive.

    Federace metastoru Hive používá toto připojení k prohledávání metastoru Hive. Pro většinu databázových systémů zadáte uživatelské jméno a heslo. Pro připojení ke starší verzi interního metastoru Hive pracovního prostoru Azure Databricks se federace metastoru Hive postará o autorizaci.

  2. Vytvořte přihlašovací údaje úložiště a externí umístění v katalogu Unity pro cesty k tabulkám registrovaným v metastoru Hive.

    Externí umístění obsahují cesty a přihlašovací údaje pro úložiště , které jsou požadovány pro přístup k těmto cestám. Přihlašovací údaje úložiště jsou zabezpečitelné objekty katalogu Unity, které určují přihlašovací údaje, jako jsou spravované identity Azure, pro přístup ke cloudovému úložišti. V závislosti na pracovním postupu, který zvolíte pro vytváření externích umístění, budete možná muset před vytvořením externího umístění vytvořit přihlašovací údaje k úložišti.

  3. Vytvořte federovaný katalog v katalogu Unity pomocí připojení, které jste vytvořili v kroku 1.

    Toto je katalog, který uživatelé a pracovní postupy pracovního prostoru používají k práci s tabulkami metastoru Hive pomocí katalogu Unity. Po vytvoření federovaného katalogu ho Katalog Unity naplní tabulkami registrovanými v metastoru Hive.

  4. Udělte oprávnění tabulkám v federovaném katalogu pomocí katalogu Unity.

    Filtry řádků a sloupců v Katalogu Unity můžete také použít k jemně odstupňovanému řízení přístupu.

  5. Začněte dotazovat data.

    Přístup k federovaným datům pomocí katalogu Unity je určen jen pro čtení externích metastorů Hive a pro interní metastory Hive i zápis.

    V případě interních metastorů Hive a externích metastorů Hive katalog Unity průběžně aktualizuje metadata tabulek, protože se mění v metastoru Hive. V případě interních metastorů Hive se nové tabulky a aktualizace tabulek potvrzené z federovaného katalogu zapisují zpět do Hive metastoru, což zajišťuje plnou interoperabilitu mezi Unity Catalogem a katalogy Hive metastoru.

Podrobné pokyny najdete tady:

Jak během migrace do katalogu Unity používáte federaci metastoru Hive?

Federace metastoru Hive umožňuje migrovat do katalogu Unity přírůstkově tím, že snižuje potřebu koordinace mezi týmy a úlohami. Konkrétně pokud migrujete z interního metastoru Hive pracovního prostoru Azure Databricks, možnost číst z metastoru Hive a zapisovat do tohoto metastoru i metastoru Katalogu Unity znamená, že během migrace můžete udržovat "zrcadlené" metastory, které poskytují následující výhody:

  • Úlohy, které běží na federovaných katalogech, běží v režimu kompatibility metastoru Hive a snižují náklady na přizpůsobení kódu během migrace.
  • Každá úloha se může rozhodnout migrovat nezávisle na ostatních s vědomím, že během období migrace budou data k dispozici v metastoru Hive i v katalogu Unity, což zmírní potřebu koordinovat mezi úlohami, které mají vzájemné závislosti.

Diagram , který poskytuje přehled federace HMS v kontextu migrace

Tato část popisuje typický pracovní postup pro migraci interního metadatového úložiště Hive v pracovním prostoru Azure Databricks do Unity Catalogu, přičemž federace metadatového úložiště Hive usnadňuje tento přechod. Nevztahuje se na migraci externího úložiště metadat Hive. Federované katalogy pro externí metastore Hive nepodporují zápisy.

Krok 1: Federace interního metastoru Hive

V tomto kroku vytvoříte federovaný katalog, který zrcadlí metastor Hive v katalogu Unity. Řekněme tomu hms_in_uc.

Diagram znázorňující úlohy spuštěné v metastoru Hive a existenci zrcadlovaného federovaného katalogu Unity hms_in_uc

Poznámka

V rámci procesu federace nastavíte externí umístění tak, aby poskytovala přístup k datům v cloudovém úložišti. Ve scénářích migrace, ve kterých se některé úlohy dotazují na data pomocí starších mechanismů přístupu a jiné úlohy dotazují stejná data v katalogu Unity, může řízení přístupu spravované katalogem Unity na externích umístěních zabránit starším úlohám v přístupu k cestám k úložišti z výpočetních prostředků s podporou katalogu Unity. U těchto externích umístění můžete povolit "režim záložního nastavení," abyste se mohli vrátit k jakýmkoli přihlašovacím údajům specifickým pro cluster nebo poznámkový blok, které byly definovány pro starší pracovní zátěž. Po dokončení migrace vypnete záložní režim. Viz Co je záložní režim?.

Podrobnosti najdete v tématu Povolení federace metastoru Hive pro starší verzi metastoru Hive.

Krok 2. Spouštění nových úloh proti federovanému katalogu v katalogu Unity

Když máte federovaný katalog, můžete analytikům SQL a příjemcům datových věd udělit přístup k němu a začít vyvíjet nové úlohy, které na něj odkazují. Nové úlohy využívají další sadu funkcí v katalogu Unity, včetně řízení přístupu, vyhledávání a rodokmenu.

diagram, který zobrazuje existující úlohy spuštěné na metastoru Hive a nové úlohy spuštěné v zrcadleném federovaném katalogu Unity Catalog hms_in_uc

V tomto kroku obvykle provedete následující kroky:

  • Zvolte výpočetní prostředky kompatibilní s katalogem Unity (to znamená režimy přístupu jednoho uživatele nebo sdíleného clusteru, SQL Warehouse nebo bezserverové výpočetní prostředky). Viz Požadavky, podporované funkce a omezení.
  • Nastavte federovaný katalog jako výchozí katalog na výpočetních prostředcích nebo přidejte USE CATALOG hms_in_uc na začátek svého kódu. Vzhledem k tomu, že schémata a názvy tabulek v federovaném katalogu jsou přesná zrcadla v metastoru Hive, váš kód začne odkazovat na federovaný katalog.

krok 3. Migrace existujících úloh pro spuštění v federovaném katalogu

Migrace existujících úloh pro dotazování federovaného katalogu:

  1. Změňte výchozí katalog v clusteru úloh tak, aby byl hms_in_uc, buď nastavením vlastnosti v samotném clusteru, nebo přidáním USE CATALOG hms_in_uc v horní části kódu.
  2. Přepněte úlohu na výpočetní výkon v režimu jednoho uživatele nebo sdíleného přístupu a upgradujte na jednu z verzí Databricks Runtime, která podporuje federaci metastoru Hive. Viz Požadavky, podporované funkce a omezení.
  3. Požádejte správce Azure Databricks, aby udělil správná oprávnění katalogu Unity k datovým objektům v hms_in_uc a ke všem cestám cloudového úložiště (zahrnutým v externích umístěních katalogu Unity), ke kterým úloha přistupuje. Viz Správa oprávnění v katalogu Unity.

druhá instance diagramu, která v kontextu migrace poskytuje přehled o federaci HMS

Krok 4. Odepřít přístup k metastoru Hive

Po migraci všech úloh pro dotazování federovaného katalogu už metastore Hive nepotřebujete. Ke blokování přímého přístupu z pracovního prostoru Azure Databricks k metastoru Hive můžete použít starší verze řízení přístupu k tabulce a výpočetní oprávnění. Můžete například:

  1. Odvolá všechna oprávnění k objektům v katalogu metastoru Hive.

    Příkaz MSCK REPAIR PRIVILEGES je pro tento účel vhodný. Viz MSCK REPAIR PRIVILEGES a oprávnění metastoru Hive a zabezpečované objekty (starší verze).

  2. Zabránit uživatelům ve vytváření a používání clusterů, které obcházejí řízení přístupu k tabulkám (clustery, které nepoužívají režim bezizolačního sdíleného přístupu nebo starší typ vlastního clusteru) pomocí výpočetních zásad.

    Viz Správa konfigurací výpočetních prostředků.

  3. Nastavte federovaný katalog jako výchozí katalog pracovního prostoru.

    Viz Spravujte výchozí katalog.

Nejčastější dotazy

Následující části obsahují podrobnější informace o federaci metastoru Hive.

Co je záložní režim?

Nouzový režim je nastavení na externích úložištích, které můžete použít k obejití kontrol oprávnění Unity Catalog během migrace do Unity Catalog. Nastavením zajistíte, že úlohy, které ještě nebyly migrovány, nebudou během fáze nastavení ovlivněny.

Katalog Unity získává přístup ke cloudovému úložišti pomocí externích umístění, což jsou objekty podléhající zabezpečení, které definují cestu a oprávnění pro přístup k vašemu účtu cloudového úložiště. Oprávnění k nim můžete vydat, například READ FILES, a řídit, kdo může tuto cestu používat. Jednou z výzev během procesu migrace je, že možná nebudete chtít, aby katalog Unity začal řídit veškerý přístup k cestě okamžitě, například pokud máte existující nemigrované úlohy, které odkazují na cestu.

Náhradní režim umožňuje odložit přísné vynucení řízení přístupu katalogu Unity na externích umístěních. Pokud je povolený záložní režim, úlohy, které přistupují k cestě, se nejprve kontrolují na základě oprávnění katalogu Unity a pokud selžou, vraťte se k používání přihlašovacích údajů s oborem clusteru nebo poznámkového bloku, jako jsou profily instancí nebo vlastnosti konfigurace Apache Sparku. To umožňuje stávajícím úlohám pokračovat v používání jejich aktuálních přihlašovacích údajů.

Záložní režim je určen pouze pro použití během migrace. Až budou všechny úlohy migrovány a až budete připraveni vynutit řízení přístupu ke katalogu Unity, měli byste ho vypnout.

Dotaz na protokol auditu ohledně použití náhradního řešení

Pomocí následujícího dotazu zkontrolujte, jestli některý z přístupů k externímu umístění během posledních 30 dnů používal záložní režim. Pokud ve vašem účtu neexistuje přístup k záložnímu režimu, databricks doporučuje vypnout záložní režim.

SELECT event_time, user_identity, action_name, request_params, response, identity_metadata
FROM system.access.audit
WHERE
request_params.fallback_enabled = 'true' AND
request_params.path LIKE '%some-path%' AND
event_time >= current_date() - INTERVAL 30 DAYS
LIMIT 10

Co jsou autorizované cesty?

Při vytváření federovaného katalogu se zobrazí výzva k poskytnutí autorizovaných cest do cloudového úložiště, kde jsou uloženy tabulky metastoru Hive. Všechny tabulky, ke kterým chcete získat přístup pomocí federace metastoru Hive, musí být těmito cestami pokryty. Databricks doporučuje, aby vaše autorizované cesty byly dílčí cesty, které jsou společné pro velký počet tabulek. Pokud máte například tabulky v abfss://container@storageaccount.dfs.core.windows.net/bucket/table1, ./bucket/table2a ./bucket/table3, měli byste zadat abfss://container@storageaccount.dfs.core.windows.net/bucket/ jako autorizovanou cestu.

UCX můžete použít k identifikaci cest, které jsou přítomné ve vašem metastoru Hive.

Autorizované cesty přidávají další vrstvu zabezpečení v federovaných katalogech tím, že umožňuje vlastníkovi katalogu použít ochranné mantinely na data, ke kterým mají uživatelé přístup pomocí federace. To je užitečné, pokud metastor Hive umožňuje uživatelům aktualizovat metadata a libovolně měnit umístění tabulek – aktualizace, které by jinak byly synchronizovány do federovaného katalogu. V tomto scénáři by uživatelé mohli potenciálně znovu definovat tabulky, ke kterým už mají přístup, aby odkazovali na nová umístění, ke kterým by jinak neměli přístup.

Můžu provést federaci metastor Hive s využitím UCX?

UCX, projekt Databricks Labs pro migraci pracovních prostorů Azure Databricks do služby Unity Catalog, obsahuje nástroje pro povolení federace metastoru Hive:

  • enable-hms-federation
  • create-federated-catalog

Podívejte se na soubor readme projektu na GitHubu. Úvod do UCX naleznete v tématu Použití nástrojů UCX k upgradu pracovního prostoru na Unity Catalog.

Požadavky, podporované funkce a omezení

Následující tabulka uvádí služby a funkce podporované federací metastoru Hive. V některých případech jsou uvedené také nepodporované služby nebo funkce. V těchto tabulkách zkratka "HMS" znamená Hive metastore.

Kategorie Podporovaný Nepodporováno
Metastory – Starší verze pracovního prostoru metastorů Hive (interní Databricks)
– Externí metastory v Apache Hivu verze 0.13 nebo 2.3 pomocí mySQL
– Externí metastory v jiných databázích než mySQL
– Hive 3.1
Operace – Interní Databricks HMS: čtení a zápisy
– Externí HMS: pouze pro čtení
Datové prostředky metadatového úložiště Hive – Spravované a externí tabulky v Hive Metastore
-Schémata
-Pohledy
– Tabulky Hive SerDe
– Funkce Hivu a uživatelsky definované funkce
- Definování nových mělkých klonů ve federovaném katalogu
– tabulky s podporou JDBC
– Delta Sharing sdílené tabulky
- Přístup k mělkým klonům registrovaným v metastoru Hive prostřednictvím federovaného katalogu
Skladování – Azure Data Lake Storage Gen2
– Tabulky, které odkazují na umístění připojení DBFS, včetně kořenového adresáře DBFS
- Tabulky, jejichž cesty se shodují s cestami jiných tabulek HMS definovaných na externích umístěních
– Tabulky HMS, jejichž cesty se překrývají s nativními cestami objektů katalogu Unity
– Přístup k tabulkám v kořenovém adresáři DBFS nebo připojených umístěních zaregistrovaných v externím HMS
– Přístup k tabulkám v kořenovém adresáři DBFS nebo k připojeným umístěním z jiného pracovního prostoru, než je ten, ve kterém je definován interní HMS.
- podpora brány firewall pro účet úložiště pracovního prostoru
Typy výpočetních prostředků – Sdílené clustery
– Clustery s jedním uživatelem (přiřazeným)
– Bezserverová (vše)
– SQL Warehouse (vše)
Žádné izolační klastry
Verze výpočtů – Všechny kanály SQL Databricks
– Všechny kanály Delta Live Tables
– Databricks Runtime 13.3 LTS
– Databricks Runtime 14.3 LTS
– Databricks Runtime 15.1 a novější
Funkce katalogu Unity – Model oprávnění v katalogu Unity
- Filtry řádků a masky sloupců
-Kontrola
- Downstream návaznost
- Hledání v tabulce
– Přístup mezi pracovními prostory (s výjimkou kořenového adresáře DBFS a připojených jednotek)
– Přístup k datům omezený na definovaná externí umístění
– Delta sdílení
- Monitorování Lakehouse
- Vektorové vyhledávání
- Online tabulky
– Některé funkce úložiště funkcí, včetně vytvoření úložiště funkcí, vytváření modelů obsluhy, vytvoření specifikace funkcí, protokolování modelu a dávkového vyhodnocování
– Do federovaného katalogu nelze zapisovat materializovaná zobrazení a streamované tabulky Delta Live Tables, ale federované prostředky můžete použít jako zdroj pro materializovaná zobrazení Delta Live Tables a streamované tabulky.
– Automatická migrace ACL starých tabulek do oprávnění katalogu Unity pro federovaný katalog. UCX vám s tím může pomoct.