Upgrade tabulek a zobrazení Hivu na katalog Unity

Tento článek popisuje, jak upgradovat tabulky a zobrazení zaregistrovaná v Hive metastore místního pracovního prostoru na Unity Catalog.

Note

Jako alternativu k procesům migrace tabulek popsaným v tomto článku můžete použít federaci metastoru Hive k vytvoření katalogu v katalogu Unity, který zrcadlí metastore Hive. Viz federaci metastoru Hive : Povolte službě Unity Catalog řízení tabulek registrovaných v metastoru Hive.

Tabulku Hive můžete upgradovat na spravovanou tabulku nebo externí tabulku v katalogu Unity.

  • Spravované tabulky jsou upřednostňovaným způsobem vytváření tabulek v katalogu Unity. Katalog Unity plně spravuje životní cyklus, rozložení souborů a úložiště. Unity Catalog také optimalizuje výkon automaticky. Spravované tabulky vždy používají formát tabulky Delta .

    Spravované tabulky se nacházejí ve spravovaném umístění úložiště, které si rezervujete pro Katalog Unity. Kvůli tomuto požadavku na úložiště musíte použít CLONE nebo CREATE TABLE AS SELECT (CTAS), pokud chcete zkopírovat existující tabulky Hive do katalogu Unity jako spravované tabulky.

  • Externí tabulky jsou tabulky, jejichž životní cyklus dat, rozložení souborů a umístění úložiště nejsou spravovány katalogem Unity. U externích tabulek je podporováno více formátů dat.

    Externí tabulky obvykle používáte jenom v případě, že potřebujete přímý přístup k datům pomocí výpočetních prostředků jiných než Databricks (to znamená, že nepoužíváte clustery Databricks ani databricks SQL Warehouse). Externí tabulky jsou také vhodné ve scénářích migrace, protože existující data můžete rychle zaregistrovat v katalogu Unity, aniž byste museli kopírovat data. Důvodem je skutečnost, že data v externích tabulkách se nemusí nacházet v rezervovaném spravovaném úložišti.

Další informace o spravovaných a externích tabulkách v katalogu Unity najdete v tématu Tabulky Azure Databricks.

Možnosti migrace Hive do Unity katalogu

Až budete připraveni migrovat tabulky Hive do katalogu Unity, máte několik možností v závislosti na vašem případu použití:

Nástroj pro migraci Description Požadavky na tabulku Hive Vytvořená tabulka katalogu Unity Proč bych ho měl používat?
UCX Komplexní sada nástrojů příkazového řádku a dalších nástrojů, které vyhodnocují připravenost vašeho pracovního prostoru na migraci katalogu Unity a provádějí pracovní postupy, které migrují identity, oprávnění, umístění úložiště a tabulky do katalogu Unity. UCX je k dispozici na GitHubu na databrickslabs/ucx. Spravované nebo externí tabulky Hive Spravované nebo externí Chcete mít k dispozici komplexní nástroj pro plánování upgradu pracovního prostoru, který zahrnuje více než jen upgrade tabulek Hive na Unity Catalog. Chcete upgradovat pracovní prostory s velkým množstvím dat v metastoru Hive. Jste zvyklí spouštět skripty. Pokud chcete hromadně upgradovat tabulky Hive na spravované tabulky Unity, je to jediná možnost. UCX, podobně jako všechny projekty Databricks Labs, je veřejné úložiště GitHubu, které databricks nepodporuje přímo.
Průvodce upgradem katalogu Unity Funkce Průzkumníka katalogu, která umožňuje hromadně kopírovat celá schémata (databáze) a více spravovaných a externích tabulek z metastoru Hive do metastoru katalogu Unity jako externí tabulky. Průvodce upgradem SYNC provede příkaz u vybraných tabulek a ponechá původní tabulky Hive nedotčené. Máte možnost naplánovat pravidelné upgrady, aby byly zachyceny změny v zdrojových tabulkách Hive. Spravované nebo externí tabulky Hive Pouze externí Tabulky Hive chcete rychle upgradovat na externí tabulky v katalogu Unity a dáváte přednost vizuálnímu rozhraní. Možnost naplánovat pravidelnou synchronizaci, když se změní zdrojová tabulka Hive, je užitečným nástrojem pro správu "hybridního" pracovního prostoru Hive a katalogu Unity během přechodu do katalogu Unity.
SYNC příkazu SQL SYNC Umožňuje kopírovat externí tabulky a spravované tabulky (pokud jsou spravované tabulky uložené mimo úložiště pracovních prostorů Databricks, někdy označované jako kořen DBFS) v metastoru Hive do externích tabulek v katalogu Unity. Můžete synchronizovat jednotlivé tabulky nebo celá schémata.
SYNC je navržen tak, aby byl spouštěn podle harmonogramu, aby mohl detekovat nové změny v Hive metastore a synchronizovat je s Unity Catalog.
Spravované nebo externí tabulky Hive Pouze externí Tabulky Hive chcete rychle upgradovat na externí tabulky v katalogu Unity a raději místo vizuálního rozhraní používat příkazy SQL.
Plánování pravidelných běhů SYNC pro aktualizaci existujících tabulek Katalogu Unity při změnách zdrojových tabulek Hive je užitečným nástrojem pro správu "hybridního" pracovního prostoru Hive a Katalogu Unity během přechodu na Katalog Unity.
Vzhledem k tomu, že nemůžete použít SYNC k upgradu spravovaných tabulek, které jsou v úložišti pracovního prostoru Databricks, použijte pro tyto tabulky CREATE TABLE CLONE.
CREATE TABLE CLONE příkazu SQL CREATE TABLE CLONE umožňuje upgradovat spravované tabulky v metastoru Hive na spravované tabulky v katalogu Unity. Jednotlivé tabulky můžete klonovat.
Hluboké klony kopírují data a metadata zdrojové tabulky do cílového klonu.
Spravované tabulky Hive, které jsou ve formátu Delta. Pouze spravované Chcete migrovat spravované tabulky Hive do spravovaných tabulek Unity Catalog, abyste mohli plně využít zásady správného řízení dat katalogu Unity a tabulky Hive splňují kritéria uvedená v buňce Požadavky na tabulku Hive.
Pokud tabulky Hive nesplňují požadavky pro tabulky Hive, můžete k upgradu tabulky Hive na spravovanou tabulku Unity použít SQL příkaz CREATE TABLE AS SELECT. Je však CLONE téměř vždy upřednostňovaný. Klonování má jednodušší syntaxi než CREATE TABLE AS SELECT: nemusíte zadávat dělení, formát, invarianty, nullability, stream, COPY INTOa další metadata, protože jsou naklonovány ze zdrojové tabulky.

Tento článek popisuje, jak provést všechny procesy upgradu kromě procesu řízeného UCX. Databricks doporučuje UCX pro většinu scénářů upgradu pracovního prostoru. Pro jednodušší případy použití však můžete preferovat jeden nebo více zde popsaných nástrojů.

Než začnete

Tato část popisuje některé dopady migrace, na které byste měli být připraveni, spolu s oprávněními a požadavky na výpočetní prostředky.

Vysvětlení dopadu

Měli byste vědět, že při úpravě úloh tak, aby používaly nové tabulky katalogu Unity, možná budete muset změnit některé chování:

  • Katalog Unity spravuje oddíly jinak než Hive. Příkazy Hive, které přímo manipulují s oddíly, nejsou podporovány v tabulkách spravovaných katalogem Unity.
  • Historie tabulek se při spuštění CREATE TABLE CLONEnemigruje . Všechny tabulky v metastoru Hive, které klonujete do katalogu Unity, se považují za nové tabulky. Nelze provádět cestování časem v Delta Lake ani jiné operace, které závisí na historii před migrací.

Další informace najdete v tématu Práce se starší verzí metastoru Hive společně s katalogem Unity.

Requirements

Pokud chcete provádět migrace, musíte mít:

  • Pracovní prostor, který má metastore Unity Catalog a alespoň jeden katalog Unity Catalog. Viz Začínáme s katalogem Unity.

  • Oprávnění k katalogům Unity, do kterých migrujete tabulky. Tyto požadavky na oprávnění jsou uvedeny na začátku každého postupu popsaného v tomto článku.

  • Pro migraci do externích tabulek v Unity Catalog: přihlašovací údaje k úložišti, externí umístění definovaná v Unity Catalog, a oprávnění CREATE EXTERNAL TABLE k externímu umístění.

  • Přístup k výpočetním prostředkům Azure Databricks, který splňuje obě následující požadavky:

    • Podporuje katalog Unity (sklady SQL nebo výpočetní prostředky, které používají standardní nebo vyhrazený režim přístupu).
    • Umožňuje přístup k tabulkám v metastoru Hive.

    Vzhledem k tomu, že výpočetní prostředky, které používají standardní režim přístupu, jsou ve výchozím nastavení povolené pro řízení přístupu ke starším verzím tabulek , znamená to, že pokud používáte tento režim přístupu, musíte mít oprávnění řízení přístupu k tabulce v metastoru Hive, ze kterého migrujete. Přístup můžete udělit pomocí následujícího příkazu SQL:

    GRANT ALL PRIVILEGES ON catalog hive_metastore TO `<user>`
    

    Případně můžete použít výpočetní prostředek v režimu vyhrazeného přístupu.

    Note

    Ukázky aktualizace výpočetních prostředků pro Katalog Unity najdete tady:

Další informace o správě oprávnění k objektům v metastoru Hive najdete v tématu Oprávnění metastoru Hive a zabezpečitelné objekty (starší verze). Další informace o správě oprávnění k objektům v metastoru katalogu Unity najdete v tématu Správa oprávnění v katalogu Unity.

Identifikace tabulek spravovaných metastorem Hive

Pokud chcete zjistit, jestli je tabulka aktuálně zaregistrovaná v katalogu Unity, zkontrolujte název katalogu. Tabulky v katalogu hive_metastore se registrují v metastoru Hive v místním pracovním prostoru. Všechny ostatní uvedené katalogy se řídí katalogem Unity.

Zobrazení tabulek v hive_metastore katalogu pomocí Průzkumníka katalogu:

  1. Klikněte na ikonu Data.Katalog na bočním panelu
  2. V podokně katalogu přejděte do hive_metastore katalogu a rozbalte uzly schématu.

Konkrétní tabulku můžete také vyhledat pomocí pole filtru v podokně Katalog.

Upgrade schématu nebo tabulek z metastoru Hive na externí tabulky katalogu Unity pomocí průvodce upgradem

Pomocí průvodce upgradem Průzkumníka katalogů můžete zkopírovat kompletní schémata (databáze) a více externích nebo spravovaných tabulek z výchozího metastoru Hive v Azure Databricks do metastoru v katalogu Unity. Upgradované tabulky budou externí tabulky v katalogu Unity.

Nápovědu k rozhodování o tom, kdy použít průvodce upgradem, najdete v tématu Možnosti migrace katalogu Unity do Hive.

Requirements

Požadavky na formát dat:

Požadavky na výpočetní prostředky:

Požadavky na objekt a oprávnění v Katalogu Unity:

  • Přihlašovací údaje úložiště pro spravovanou identitu Azure nebo zástupce služby, které umožňují katalogu Unity přístup k umístění tabulek.
  • Externí umístění , které odkazuje na přihlašovací údaje úložiště, které jste právě vytvořili, a cestu k datům ve vašem cloudovém tenantovi.
  • Oprávnění CREATE EXTERNAL TABLE pro externí umístění tabulek, které se mají upgradovat.

Požadavky na přístup k tabulce Hive:

  • Pokud váš výpočetní výkon používá standardní režim přístupu, potřebujete přístup k tabulkám v metastoru Hive uděleným pomocí starší verze řízení přístupu k tabulkám. Podívejte se na dříve, než začnete.

Proces upgradu

  1. Klikněte na ikonu Data.Katalog na bočním panelu pro otevření Průzkumníka katalogu.

  2. Vyberte hive_metastore jako katalog a vyberte schéma (databázi), které chcete upgradovat.

    Výběr databáze

  3. V pravém horním rohu zobrazení podrobností schématu klikněte na Upgradovat .

  4. Vyberte všechny tabulky, které chcete upgradovat, a klikněte na Další.

    Pomocí průvodce upgradem je možné upgradovat pouze externí tabulky ve formátech podporovaných katalogem Unity. Viz Práce s externími tabulkami.

  5. Nastavte cílový katalog, schéma (databázi) a vlastníka pro každou tabulku.

    Uživatelé budou mít přístup k nově vytvořené tabulce v kontextu svých oprávnění v katalogu a schématu.

    Vlastníci tabulek mají všechna oprávnění k tabulce, včetně SELECT a MODIFY. Pokud nevyberete vlastníka, spravované tabulky se vytvoří s vámi jako vlastníkem. Databricks obecně doporučuje udělit vlastnictví tabulky skupinám. Další informace o vlastnictví objektů v katalogu Unity najdete v tématu Správa vlastnictví objektu.

    Pokud chcete přiřadit stejný katalog a schéma více tabulkám, vyberte tabulky a klikněte na tlačítko Nastavit cíl .

    Pokud chcete přiřadit stejného vlastníka více tabulkám, vyberte tabulky a klikněte na tlačítko Nastavit vlastníka.

  6. Zkontrolujte konfigurace tabulek. Pokud je chcete upravit, klikněte na tlačítko Předchozí .

  7. Klikněte na Spustit upgrade a spusťte upgrade okamžitě nebo klikněte na Vytvořit poznámkový blok pro upgrade.

    Pokud vytvoříte poznámkový blok pro upgrade, pojmenujte poznámkový blok a zvolte cestu, kterou chcete uložit. Pak poznámkový blok spusťte.

    Po dokončení upgradu se metadata každé tabulky zkopírují z metastoru Hive do katalogu Unity. Tyto tabulky jsou v průvodci upgradem označené jako upgradované.

  8. Definujte jemně odstupňované řízení přístupu pomocí karty Oprávnění každé nové tabulky.

  9. (Volitelné) Přidejte komentáře ke každé upgradované tabulce Hive, která uživatele odkazuje na novou tabulku katalogu Unity.

    Vraťte se do původní tabulky v hive.metastore katalogu a přidejte komentář k tabulce.

    Pokud v komentáři k tabulce použijete následující syntaxi, poznámkové bloky a dotazy editoru dotazů SQL, které odkazují na zastaralou tabulku Hive, zobrazí se zastaralý název tabulky pomocí přeškrtnutého textu, zobrazí se komentář jako upozornění a poskytne odkaz Rychlá oprava na Genie Code, který může aktualizovat kód tak, aby odkazoval na novou tabulku.

    This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.
    

    Viz přidat komentáře, aby označily, že byla migrována tabulka Hive.

  10. Upravte úlohy tak, aby používaly nové tabulky.

    Pokud jste přidali komentář k původní tabulce Hive, jako je ta, která je uvedená v volitelném předchozím kroku, můžete pomocí nástroje Genie Code pomoct najít a upravit úlohy. Podívejte se na Použití kódu Genie k aktualizaci odkazu na zastaralou tabulku.

    Note

    Pokud už staré tabulky nepotřebujete, můžete je odstranit z metastoru Hive. Vyřazení externí tabulky neupravuje datové soubory v cloudovém tenantovi.

upgrade tabulky Hive na externí tabulku katalogu Unity pomocí SYNC

Pomocí příkazu SQL můžete SYNC zkopírovat externí tabulky v metastoru Hive do externích tabulek v katalogu Unity. Můžete synchronizovat jednotlivé tabulky nebo celá schémata.

Můžete také použít SYNC ke kopírování spravovaných tabulek Hive uložených mimo úložiště pracovního prostoru Databricks (někdy označované jako kořen DBFS) do externích tabulek v katalogu Unity. Nemůžete ji použít ke kopírování spravovaných tabulek Hive uložených v úložišti pracovního prostoru. Pokud chcete tyto tabulky zkopírovat, použijte místo toho CREATE TABLE CLONE.

Příkaz SYNC provede operaci zápisu do každé zdrojové tabulky, kterou upgraduje, a přidá další vlastnosti tabulky pro účetní správu, včetně záznamu o externí cílové tabulce Unity Catalog.

SYNC lze také použít k aktualizaci existujících tabulek Katalogu Unity při změně zdrojových tabulek v metastoru Hive. Díky tomu je vhodný nástroj pro postupné přechody do katalogu Unity.

Podrobnosti najdete v SYNC. Nápovědu k rozhodování o tom, kdy použít průvodce upgradem, najdete v tématu Možnosti migrace katalogu Unity do Hive.

Requirements

Požadavky na formát dat:

Požadavky na výpočetní prostředky:

Požadavky na objekt a oprávnění v Katalogu Unity:

  • Přihlašovací údaje úložiště pro spravovanou identitu Azure nebo zástupce služby, které umožňují katalogu Unity přístup k umístění tabulek.
  • Externí umístění , které odkazuje na přihlašovací údaje úložiště, které jste právě vytvořili, a cestu k datům ve vašem cloudovém tenantovi.
  • Oprávnění CREATE EXTERNAL TABLE pro externí umístění tabulek, které se mají upgradovat.

Požadavky na přístup k tabulce Hive:

  • Pokud váš výpočetní výkon používá standardní režim přístupu, potřebujete přístup k tabulkám v metastoru Hive uděleným pomocí starší verze řízení přístupu k tabulkám. Podívejte se na dříve, než začnete.

Proces upgradu

Aktualizace tabulek v metastoru Hive na externí tabulky Katalogu Unity pomocí SYNC:

  1. V poznámkovém bloku nebo editoru dotazů SQL spusťte jednu z následujících možností:

    Synchronizace externí tabulky Hive:

    SYNC TABLE <uc-catalog>.<uc-schema>.<new-table> FROM hive_metastore.<source-schema>.<source-table>
    SET OWNER <principal>;
    

    Synchronizujte externí schéma Hive a všechny její tabulky:

    SYNC SCHEMA <uc-catalog>.<new-schema> FROM hive_metastore.<source-schema>
    SET OWNER <principal>;
    

    Synchronizace spravované tabulky Hive, která je uložená mimo úložiště pracovního prostoru Databricks:

    SYNC TABLE <uc-catalog>.<uc-schema>.<new-table> AS EXTERNAL FROM hive_metastore.<source-schema>.<source-table>
    SET OWNER <principal>;
    

    Synchronizujte schéma obsahující spravované tabulky Hive, které jsou uložené mimo úložiště pracovního prostoru Databricks:

    SYNC SCHEMA <uc-catalog>.<new-schema> AS EXTERNAL FROM hive_metastore.<source-schema>
    SET OWNER <principal>;
    
  2. Udělte uživatelům nebo skupinám na úrovni účtu přístup k nové tabulce. Viz Správa oprávnění v katalogu Unity.

  3. (Volitelné) Přidejte komentář k původní tabulce Hive, která uživatele odkazuje na novou tabulku katalogu Unity.

    Vraťte se do původní tabulky v hive.metastore katalogu a přidejte komentář k tabulce. Pokud chcete zjistit, jak přidat komentáře k tabulce pomocí Průzkumníka katalogu, přečtěte si článek Přidání komentářů k datům a prostředkům AI. Informace o přidávání komentářů k tabulce pomocí příkazů SQL v poznámkovém bloku nebo editoru dotazů SQL najdete v tématu COMMENT ON.

    Pokud v komentáři k tabulce použijete následující syntaxi, poznámkové bloky a dotazy editoru dotazů SQL, které odkazují na zastaralou tabulku Hive, zobrazí se zastaralý název tabulky pomocí přeškrtnutého textu, zobrazí se komentář jako upozornění a poskytne odkaz Rychlá oprava na Genie Code, který může aktualizovat kód tak, aby odkazoval na novou tabulku.

    This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.
    

    Viz přidat komentáře, aby označily, že byla migrována tabulka Hive.

  4. Po migraci tabulky by uživatelé měli aktualizovat stávající dotazy a úlohy tak, aby používali novou tabulku.

    Pokud jste přidali komentář k původní tabulce Hive, jako je ta, která je uvedená v volitelném předchozím kroku, můžete pomocí nástroje Genie Code pomoct najít a upravit úlohy. Podívejte se na Použití kódu Genie k aktualizaci odkazu na zastaralou tabulku.

  5. Před vyřazením staré tabulky otestujte závislosti odvoláním přístupu k ní a opětovným spuštěním souvisejících dotazů a úloh.

    Starou tabulku nezahazujte, pokud stále spoléháte na komentáře o zastaralosti, abyste mohli najít a aktualizovat kód, který stále existuje, a odkazuje na starou tabulku. Stejně tak nezahazujte starou tabulku, pokud se tato tabulka od původní synchronizace změnila: SYNC je možné ji použít k aktualizaci existujících tabulek katalogu Unity se změnami ze zdrojových tabulek Hive.

Upgrade spravované tabulky Hive na spravovanou tabulku Unity Catalog pomocí CLONE

Slouží CREATE TABLE CLONE k upgradu spravovaných tabulek Delta v metastore Hive na spravované tabulky v katalogu Unity. Jednotlivé tabulky můžete klonovat. Při klonování tabulek ze starší verze metastoru Hive do katalogu Unity je nutné použít hluboké klony.

Pomoc s rozhodnutím, kdy použít CLONE, najdete v Možnosti migrace Hive do katalogu Unity. Další informace najdete v CLONEtématu Klonování tabulky v Azure Databricks.

Requirements

Požadavky na formát dat:

  • Spravované tabulky Hive ve formátu Delta

Požadavky na výpočetní prostředky:

Požadavky na oprávnění:

  • USE CATALOG a USE SCHEMA oprávnění ke katalogu a schématu, do kterého přidáváte tabulku, spolu s CREATE TABLE na schématu, nebo musíte být vlastníkem katalogu nebo schématu. Viz referenční informace k oprávněním katalogu Unity.
  • Pokud váš výpočetní výkon používá standardní režim přístupu, potřebujete přístup k tabulkám v metastoru Hive uděleným pomocí starší verze řízení přístupu k tabulkám. Podívejte se na dříve, než začnete.

Proces upgradu

K upgradu spravovaných tabulek v úložišti Hive na spravované tabulky v katalogu Unity:

  1. V poznámkovém bloku nebo editoru dotazů SQL spusťte jednu z následujících možností:

    Kompletní klonování spravované tabulky v úložišti metadat Hive:

    CREATE OR REPLACE TABLE <uc-catalog>.<uc-schema>.<new-table>
    DEEP CLONE hive_metastore.<source-schema>.<source-table>;
    

    Informace o dalších parametrech, včetně vlastností tabulky, naleznete v tématu CREATE TABLE CLONE.

  2. Udělte uživatelům nebo skupinám na úrovni účtu přístup k nové tabulce. Viz Správa oprávnění v katalogu Unity.

  3. (Volitelné) Přidejte komentář k původní tabulce Hive, která uživatele odkazuje na novou tabulku katalogu Unity.

    Vraťte se do původní tabulky v hive.metastore katalogu a přidejte komentář k tabulce. Pokud chcete zjistit, jak přidat komentáře k tabulce pomocí Průzkumníka katalogu, přečtěte si článek Přidání komentářů k datům a prostředkům AI. Informace o přidávání komentářů k tabulce pomocí příkazů SQL v poznámkovém bloku nebo editoru dotazů SQL najdete v tématu COMMENT ON.

    Pokud v komentáři k tabulce použijete následující syntaxi, poznámkové bloky a dotazy editoru dotazů SQL, které odkazují na zastaralou tabulku Hive, zobrazí se zastaralý název tabulky pomocí přeškrtnutého textu, zobrazí se komentář jako upozornění a poskytne odkaz Rychlá oprava na Genie Code, který může aktualizovat kód tak, aby odkazoval na novou tabulku.

    This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.
    

    Viz přidat komentáře, aby označily, že byla migrována tabulka Hive.

  4. Po migraci tabulky by uživatelé měli aktualizovat stávající dotazy a úlohy tak, aby používali novou tabulku.

    Pokud jste přidali komentář k původní tabulce Hive, jako je ta, která je uvedená v volitelném předchozím kroku, můžete pomocí nástroje Genie Code pomoct najít a upravit úlohy. Podívejte se na Použití kódu Genie k aktualizaci odkazu na zastaralou tabulku.

  5. Před vyřazením staré tabulky otestujte závislosti odvoláním přístupu k ní a opětovným spuštěním souvisejících dotazů a úloh.

    Starou tabulku nezahazujte, pokud stále spoléháte na komentáře o zastaralosti, abyste mohli najít a aktualizovat kód, který stále existuje, a odkazuje na starou tabulku. Stejně tak nezahoďte starou tabulku, pokud jste provedli mělký klon. Mělké klony odkazují na data ze zdrojové tabulky Hive.

upgrade tabulky Hive na spravovanou tabulku Katalogu Unity pomocí CREATE TABLE AS SELECT

Pokud nemůžete použít nebo nechcete použít CREATE TABLE CLONE k migraci tabulky v metastoru Hive do spravované tabulky v katalogu Unity, můžete vytvořit novou spravovanou tabulku v katalogu Unity dotazováním tabulky Hive pomocí CREATE TABLE AS SELECT. Pro informace o rozdílech mezi CREATE TABLE CLONE a CREATE TABLE AS SELECT, viz možnosti migrace Hive do katalogu Unity.

Ukázku upgradu spravované tabulky pomocí CREATE TABLE AS SELECT najdete v části Spravované tabulky v HMS bez SYNC.

Requirements

Požadavky na výpočetní prostředky:

Požadavky na oprávnění:

  • USE CATALOG a USE SCHEMA oprávnění ke katalogu a schématu, do kterého přidáváte tabulku, spolu s CREATE TABLE na schématu, nebo musíte být vlastníkem katalogu nebo schématu. Viz referenční informace k oprávněním katalogu Unity.
  • Pokud váš výpočetní výkon používá standardní režim přístupu, potřebujete přístup k tabulkám v metastoru Hive uděleným pomocí starší verze řízení přístupu k tabulkám. Podívejte se na dříve, než začnete.

Proces upgradu

Pro vylepšení tabulky v Hive metastore na spravovanou tabulku v Unity Catalog pomocí CREATE TABLE AS SELECT:

  1. Vytvořte novou tabulku katalogu Unity dotazováním existující tabulky. Nahraďte zástupné hodnoty:

    • <uc-catalog>: Katalog Unity Catalog pro novou tabulku.
    • <uc-schema>: Schéma katalogu Unity pro novou tabulku.
    • <new-table>: Název tabulky Katalogu Unity.
    • <source-schema>: Schéma pro tabulku Hive, například default.
    • <source-table>: Název tabulky Hive.

    SQL

    CREATE TABLE <uc-catalog>.<new-schema>.<new-table>
    AS SELECT * FROM hive_metastore.<source-schema>.<source-table>;
    

    Python

    df = spark.table("hive_metastore.<source-schema>.<source-table>")
    
    df.write.saveAsTable(
      name = "<uc-catalog>.<uc-schema>.<new-table>"
    )
    

    R

    %r
    library(SparkR)
    
    df = tableToDF("hive_metastore.<source-schema>.<source-table>")
    
    saveAsTable(
      df = df,
      tableName = "<uc-catalog>.<uc-schema>.<new-table>"
    )
    

    Scala

    val df = spark.table("hive_metastore.<source-schema>.<source-table>")
    
    df.write.saveAsTable(
      tableName = "<uc-catalog>.<uc-schema>.<new-table>"
    )
    

    Pokud chcete migrovat jenom některé sloupce nebo řádky, upravte SELECT příkaz.

    Note

    Zde uvedené příkazy vytvoří spravovanou tabulku , ve které se data zkopírují do vyhrazeného spravovaného umístění úložiště. Pokud místo toho chcete vytvořit externí tabulku, ve které je tabulka zaregistrovaná v katalogu Unity bez přesunu dat v cloudovém úložišti, přečtěte si téma Upgrade schématu nebo tabulek z metastoru Hive na externí tabulky katalogu Unity pomocí průvodce upgradem. Viz také Určení spravovaného umístění úložiště v katalogu Unity.

  2. Udělte uživatelům nebo skupinám na úrovni účtu přístup k nové tabulce. Viz Správa oprávnění v katalogu Unity.

  3. (Volitelné) Přidejte komentář k původní tabulce Hive, která uživatele odkazuje na novou tabulku katalogu Unity.

    Vraťte se do původní tabulky v hive.metastore katalogu a přidejte komentář k tabulce. Pokud chcete zjistit, jak přidat komentáře k tabulce pomocí Průzkumníka katalogu, přečtěte si článek Přidání komentářů k datům a prostředkům AI. Informace o přidávání komentářů k tabulce pomocí příkazů SQL v poznámkovém bloku nebo editoru dotazů SQL najdete v tématu COMMENT ON.

    Pokud v komentáři k tabulce použijete následující syntaxi, poznámkové bloky a dotazy editoru dotazů SQL, které odkazují na zastaralou tabulku Hive, zobrazí se zastaralý název tabulky pomocí přeškrtnutého textu, zobrazí se komentář jako upozornění a poskytne odkaz Rychlá oprava na Genie Code, který může aktualizovat kód tak, aby odkazoval na novou tabulku.

    This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.
    

    Viz přidat komentáře, aby označily, že byla migrována tabulka Hive.

  4. Po migraci tabulky by uživatelé měli aktualizovat stávající dotazy a úlohy tak, aby používali novou tabulku.

    Pokud jste přidali komentář k původní tabulce Hive, jako je ta, která je uvedená v volitelném předchozím kroku, můžete pomocí nástroje Genie Code pomoct najít a upravit úlohy. Podívejte se na Použití kódu Genie k aktualizaci odkazu na zastaralou tabulku.

  5. Před vyřazením staré tabulky otestujte závislosti odvoláním přístupu k ní a opětovným spuštěním souvisejících dotazů a úloh.

    Starou tabulku nezahazujte, pokud stále spoléháte na komentáře o zastaralosti, abyste mohli najít a aktualizovat kód, který stále existuje, a odkazuje na starou tabulku.

Povýšit pohled na Unity Catalog

Po upgradu všech odkazovaných tabulek zobrazení na stejný metastore katalogu Unity můžete vytvořit nové zobrazení , které odkazuje na nové tabulky.

Přidejte komentáře, aby bylo zřejmé, že byla migrována tabulka Hive

Když přidáte komentář do zastaralé tabulky Hive, který uživatele odkazuje na novou tabulku Unity Catalog, poznámkové bloky a dotazy editoru dotazů SQL, které odkazují na zastaralou tabulku Hive, zobrazí zastaralé názvy tabulek pomocí přeškrtnutého textu, zobrazí komentář jako upozornění a poskytnou odkaz typu Rychlá oprava na Genie Code, který může aktualizovat váš kód tak, aby odkazoval na novou tabulku.

Upozornění na zastarání tabulky Hive

Váš komentář musí používat následující formát:

This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.

Pokud chcete zjistit, jak přidat komentáře k tabulce pomocí Průzkumníka katalogu, přečtěte si článek Přidání komentářů k datům a prostředkům AI. Informace o přidávání komentářů k tabulce pomocí příkazů SQL v poznámkovém bloku nebo editoru dotazů SQL najdete v tématu COMMENT ON.

Použití nástroje Genie Code k aktualizaci zastaralého odkazu na tabulku

Pomocí Genie Code můžete nahradit odkazy na zastaralé tabulky metastoru Hive jejich ekvivalenty katalogu Unity. Genie Code má pokročilé funkce vyhledávání tabulek, které můžou najít ekvivalentní tabulku katalogu Unity, i když nevíte, kde je v katalogu. Požádejte Genie Code, aby nahradil hive_metastore tabulku ekvivalentní tabulkou v katalogu Unity a prohledá váš katalog, identifikuje nejlepší shodu na základě podobnosti schématu a aktualizuje váš kód.

Použití Genie Code k nahrazení tabulky metastoru Hive ekvivalentem UC.

Viz také Použití Genie Code.