Sdílet prostřednictvím


Federace metastoru Hive: Umožňuje katalogu Unity řídit tabulky zaregistrované 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 organizacím dlouhodobý hybridní model, který umožňuje udržovat některá data v metastoru Hive společně s daty zaregistrovanými v Unity Catalog.

    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 rámci federace metastorů Hive vytvoříte připojení z pracovního prostoru Azure Databricks k metastoru Hive a Katalog Unity prochází metastor Hive a naplní federovaný katalog, což vaší organizaci umožňuje pracovat s tabulkami metastoru Hive v Katalogu Unity a poskytuje centralizované řízení přístupu, sledování původu dat, vyhledávání a další.

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

Při dotazování federovaných prostředků v metastore Hive poskytuje Unity Catalog vrstvu pro správu, která provádí úkoly, jako jsou kontroly přístupu a audity, zatímco dotazy se zpracovávají pomocí sémantiky Hive metastore. 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.
  • Povolit definování tabulek pomocí sémantiky Hive, jako jsou například Hive SerDes a partitiony.
  • 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 zobrazení definovaná v úložišti metadat Hive

Tímto způsobem si můžete představit federované tabulky metastoru Hive jako zajištění zpětné kompatibility s metastorem Hive, což umožňuje úlohám používat pouze sémantiku Hive, ale se správou poskytovanou katalogem 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í 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 okrajově horší než zatížení v katalogu Unity nebo metastoru Hive, protože jak metastore Hive, tak Katalog Unity jsou na cestě dotazu 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 se podporují jenom pro federované interní metastory Hive, ne pro externí metastore 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 Hive meta-store. 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. Přečtěte si téma Jak během migrace do katalogu Unity používáte federaci metastoru Hive?.

Jak nastavíte federaci metastoru Hive?

Pokud chcete nastavit federaci metastoru Hive, postupujte takto:

  1. Vytvořte připojení v Unity Catalogu, které specifikují 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í lokace v Unity Catalog pro cesty k tabulkám registrovaným v metastoru Hive.

    Externí umístění obsahují cesty a přihlašovací údaje úložiště požadované 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 Unity Catalog pomocí připojení vytvořeného 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.

    U interních i externích metastorů Hive katalog Unity průběžně aktualizuje metadata tabulek podle změn v těchto metastorech Hive. V případě interních metastorů Hive se nové tabulky a aktualizace tabulek, které byly potvrzeny z federovaného katalogu, zapisují zpět do metastoru Hive a zajišťují plnou interoperabilitu mezi Unity Catalog a katalogy metastoru Hive.

Podrobné pokyny najdete tady:

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

Federace metastoru Hive umožňuje migrovat do Unity Catalog postupně, čímž snižuje potřebu koordinace mezi týmy a pracovními ú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á zátěž se může rozhodnout migrovat nezávisle na ostatních s vědomím toho, že během období migrace budou data k dispozici jak v metastoru Hive, tak v katalogu Unity, a tím odpadá nutnost koordinace mezi zátěžemi, 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 zastaralého metastoru Hive pracovního prostoru Azure Databricks do katalogu Unity, který usnadňuje přechod pomocí federace metastoru Hive. Nevztahuje se na migraci externího úložiště metadat Hive. Federované katalogy pro externí Hive metastery 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 řešení, abyste se mohli spolehnout na jakékoli přihlašovací údaje vymezené pro cluster nebo poznámkový blok, které byly definovány pro starší verzi úlohy. 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. Spusťte nové úlohy 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ím prostředku nebo přidejte USE CATALOG hms_in_uc na začátek 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í ve federovaném katalogu

Pro migraci stávajících úloh za účelem 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. Podívejte se na Správu 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 OPRÁVNĚNÍ MSCK REPAIR a oprávnění metastore Hive a zabezpečené objekty (starší verze).

  2. Zamezte uživatelům vytvářet a používat clustery, které obcházejí řízení přístupu k tabulce (clustery, které používají sdílený přístup bez izolace nebo starší typ vlastního clusteru) pomocí zásad pro výpočetní prostředky.

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

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

    Viz Správa katalogu výchozího.

Nejčastější dotazy

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

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

Fallback režim je nastavení na externích lokalitách, které můžete použít k obejití kontrol oprávnění v Unity Catalog při migraci 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á přístup ke cloudovému úložišti pomocí externích umístění, což jsou zabezpečitelné objekty, které definují cestu a přihlašovací údaje 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 zpozdit striktní prosazování ří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ě, jsou nejprve kontrolovány na základě oprávnění v katalogu Unity, a pokud selžou, vrací 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. Jakmile byly všechny úlohy migrovány a jste připraveni vynutit řízení přístupu ke katalogu Unity, měli byste ho vypnout.

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.

Mohu federovat metaúložiště Hive pomocí 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 představuje HMS metastore Hive.

Kategorie Podporovaný Nepodporováno
Úložiště metadat – Starší verze metastorů Hive pracovního prostoru (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 úložišti metadat Hive
-Schémata
-Pohledy
– Tabulky Hive SerDe
– Funkce Hivu a uživatelsky definované funkce
- Definování nových neúplný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řene DBFS
- Tabulky, jejichž cesty se překrývají s cestami jiných tabulek HMS definovaných v 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á umístění zaregistrovaná v externím HMS
– Přístup k tabulkám v kořenovém adresáři DBFS nebo k umístění připojení 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í katalogu Unity
- Filtry řádků a masky sloupců
-Kontrola
- Downstream návaznost
- Hledání tabulek
– 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 původních ACL tabulek na oprávnění katalogu Unity pro federovaný katalog. UCX vám s tím může pomoct.