Dela via


Uppgradera Hive-tabeller och vyer till Unity Catalog

Den här artikeln beskriver hur du uppgraderar tabeller och vyer som är registrerade i ditt befintliga hive-metaarkiv för arbetsytor till Unity Catalog. Du kan uppgradera en Hive-tabell till en hanterad tabell eller en extern tabell i Unity Catalog.

  • Hanterade tabeller är det bästa sättet att skapa tabeller i Unity Catalog. Unity Catalog hanterar helt sin livscykel, fillayout och lagring. Unity Catalog optimerar också deras prestanda automatiskt. Hanterade tabeller använder alltid deltatabellformatet .

    Hanterade tabeller finns på en hanterad lagringsplats som du reserverar för Unity Catalog. På grund av det här lagringskravet måste du använda CLONE eller CREATE TABLE AS SELECT (CTAS) om du vill kopiera befintliga Hive-tabeller till Unity Catalog som hanterade tabeller.

  • Externa tabeller är tabeller vars datalivscykel, fillayout och lagringsplats inte hanteras av Unity Catalog. Flera dataformat stöds för externa tabeller.

    Vanligtvis använder du endast externa tabeller när du också behöver direkt åtkomst till data med hjälp av beräkning som inte är Databricks (dvs. inte med Databricks-kluster eller Databricks SQL-lager). Externa tabeller är också praktiska i migreringsscenarier eftersom du snabbt kan registrera befintliga data i Unity Catalog utan att behöva kopiera data. Detta beror på att data i externa tabeller inte behöver finnas i reserverad hanterad lagring.

Mer information om hanterade och externa tabeller i Unity Catalog finns i Vad är en tabell?.

Migreringsalternativ för Hive till Unity-katalog

När du är redo att migrera Hive-tabeller till Unity Catalog har du flera alternativ, beroende på ditt användningsfall:

Migreringsverktyg beskrivning Krav för Hive-tabeller Unity Catalog-tabell har skapats Varför ska jag använda den?
UCX En omfattande uppsättning kommandoradsverktyg och andra verktyg som utvärderar arbetsytans beredskap för migrering av Unity Catalog och utför arbetsflöden som migrerar identiteter, behörigheter, lagringsplatser och tabeller till Unity Catalog. UCX är tillgängligt på GitHub på databrickslabs/ucx. Hanterade eller externa Hive-tabeller Hanterad eller extern Du vill ha ett omfattande planeringsverktyg för arbetsytor som går utöver att uppgradera Hive-tabeller till Unity Catalog. Du vill uppgradera arbetsytor som har stora mängder data i Hive-metaarkivet. Du är bekväm med att köra skript. Om du vill utföra en massuppgradering av Hive-tabeller till hanterade Unity Catalog-tabeller är detta det enda alternativet. UCX, liksom alla Databricks Labs-projekt, är en offentlig GitHub-lagringsplats och stöds inte direkt av Databricks.
Uppgraderingsguiden för Unity Catalog En katalogutforskaren-funktion som gör att du kan masskopiera hela scheman (databaser) och flera hanterade och externa tabeller från Hive-metaarkivet till Unity Catalog-metaarkivet som externa tabeller. Uppgraderingsguiden SYNC utför kommandot på de tabeller som du väljer, vilket lämnar de ursprungliga Hive-tabellerna intakta. Du har möjlighet att schemalägga regelbundna uppgraderingar för att hämta ändringar i Hive-källtabellerna. Hanterade eller externa Hive-tabeller Endast externt Du vill snabbt uppgradera dina Hive-tabeller till externa tabeller i Unity Catalog och du föredrar ett visuellt gränssnitt. Möjligheten att schemalägga regelbundna synkroniseringar när hive-källtabellen ändras gör det till ett användbart verktyg för att hantera en "hybrid" Hive- och Unity Catalog-arbetsyta under övergången till Unity Catalog.
SYNC SQL-kommando SYNC gör att du kan kopiera externa tabeller och hanterade tabeller (om de hanterade tabellerna lagras utanför Databricks-arbetsytans lagring, kallas ibland DBFS-rot) i hive-metaarkivet till externa tabeller i Unity Catalog. Du kan synkronisera enskilda tabeller eller hela scheman.

SYNC är utformad för att köras enligt ett schema för att hämta nya ändringar i Hive-metaarkivet och synkronisera dem till Unity Catalog.
Hanterade eller externa Hive-tabeller Endast externt Du vill snabbt uppgradera Dina Hive-tabeller till externa tabeller i Unity Catalog och du föredrar att använda SQL-kommandon i stället för ett visuellt gränssnitt.

Schemaläggning av vanliga SYNC körningar för att uppdatera befintliga Unity Catalog-tabeller när hive-källtabelländringarna gör det till ett användbart verktyg för att hantera en "hybrid" Hive- och Unity Catalog-arbetsyta under övergången till Unity Catalog.

Eftersom du inte kan använda SYNC för att uppgradera hanterade tabeller som finns i Databricks-arbetsytans lagring använder du CREATE TABLE CLONE för dessa tabeller.
KOMMANDOT CREATE TABLE CLONE SQL CREATE TABLE CLONE gör att du kan uppgradera hanterade tabeller i hive-metaarkivet till hanterade tabeller i Unity Catalog. Du kan klona enskilda tabeller.

Djupa kloner föredras eftersom de kopierar källtabelldata till klonmålet utöver befintliga tabellmetadata.
Hanterade Hive-tabeller som är i Delta-, Parquet- eller Iceberg-format. Kloning av Parquet- och Iceberg-källtabeller har vissa specifika krav och begränsningar: se Krav och begränsningar för kloning av Parquet- och Iceberg-tabeller. Endast hanterad Du vill migrera Hive-hanterade tabeller till hanterade Unity Catalog-tabeller för att dra full nytta av datastyrningen i Unity Catalog, och dina Hive-tabeller uppfyller kriterierna som anges i cellen "Hive-tabellkrav".

Om hive-tabellerna inte uppfyller "Hive-tabellkraven" kan du använda kommandot CREATE TABLE AS SELECT SQL för att uppgradera en Hive-tabell till en hanterad Unity Catalog-tabell. Men CLONE är nästan alltid att föredra. Kloning har enklare syntax än CREATE TABLE AS SELECT: du behöver inte ange partitionering, format, invarianter, nullability, COPY INTOstream och andra metadata, eftersom dessa klonas från källtabellen.

Den här artikeln beskriver hur du utför alla utom den UCX-drivna uppgraderingsprocessen. Databricks rekommenderar UCX för de flesta scenarier för uppgradering av arbetsytor. Men för enklare användningsfall kanske du föredrar ett eller flera av de verktyg som beskrivs här.

Innan du börjar

I det här avsnittet beskrivs några av de effekter av migrering som du bör förbereda dig för, tillsammans med behörigheter och beräkningskrav.

Förstå effekten

Du bör vara medveten om att när du ändrar dina arbetsbelastningar så att de använder de nya Unity Catalog-tabellerna kan du behöva ändra vissa beteenden:

  • Unity Catalog hanterar partitioner på ett annat sätt än Hive. Hive-kommandon som direkt manipulerar partitioner stöds inte i tabeller som hanteras av Unity Catalog.
  • Tabellhistoriken migreras inte när du kör CREATE TABLE CLONE. Alla tabeller i Hive-metaarkivet som du klonar till Unity Catalog behandlas som nya tabeller. Du kan inte utföra Delta Lake-tidsresor eller andra åtgärder som förlitar sig på historik före migreringen.

Mer information finns i Arbeta med Unity Catalog och det äldre Hive-metaarkivet.

Krav

Om du vill utföra migreringar måste du ha:

  • En arbetsyta som har ett Unity Catalog-metaarkiv och minst en Unity Catalog-katalog. Se Konfigurera och hantera Unity Catalog.

  • Behörigheter i De Unity-katalogkataloger som du migrerar tabeller till. Dessa behörighetskrav räknas upp i början av varje procedur som beskrivs i den här artikeln.

  • För migrering till externa Unity Catalog-tabeller: autentiseringsuppgifter för lagring och externa platser som definierats i Unity Catalog och behörigheten CREATE EXTERNAL TABLE på den externa platsen.

  • Åtkomst till Azure Databricks-beräkning som uppfyller båda följande krav:

    • Har stöd för Unity Catalog (SQL-lager eller beräkningsresurser som använder läge för enskild användare eller delad åtkomst).
    • Tillåter åtkomst till tabellerna i Hive-metaarkivet.

    Eftersom beräkningsresurser som använder läget för delad åtkomst är aktiverade för äldre tabellåtkomstkontroll som standard innebär det att om du använder det åtkomstläget måste du ha behörigheter för tabellåtkomstkontroll i Hive-metaarkivet som du migrerar från. Du kan ge dig själv åtkomst med följande SQL-kommando:

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

    Du kan också använda en beräkningsresurs i enanvändarläge.

Mer information om hur du hanterar privilegier för objekt i Hive-metaarkivet finns i Hive-metaarkivbehörigheter och skyddsbara objekt (äldre). Mer information om hur du hanterar behörigheter för objekt i Metaarkivet för Unity-katalogen finns i Hantera privilegier i Unity Catalog.

Identifiera tabeller som hanteras av Hive-metaarkivet

Kontrollera katalognamnet för att avgöra om en tabell för närvarande är registrerad i Unity Catalog. Tabeller i katalogen hive_metastore registreras i det arbetsytelokala Hive-metaarkivet. Alla andra kataloger som listas styrs av Unity Catalog.

Så här visar du tabellerna hive_metastore i katalogen med hjälp av Catalog Explorer:

  1. Klicka på Katalogikon Katalog i sidofältet.
  2. I katalogfönstret bläddrar du till hive_metastore katalogen och expanderar schemanoderna.

Du kan också söka efter en specifik tabell med hjälp av filterfältet i fönstret Katalog.

Uppgradera ett schema eller flera tabeller från Hive-metaarkivet till externa Unity Catalog-tabeller med hjälp av uppgraderingsguiden

Du kan kopiera fullständiga scheman (databaser) och flera externa eller hanterade tabeller från ditt Azure Databricks-standardmetaarkiv för Hive till Unity Catalog-metaarkivet med hjälp av uppgraderingsguiden för Katalogutforskaren . De uppgraderade tabellerna blir externa tabeller i Unity Catalog.

Mer information om när du ska använda uppgraderingsguiden finns i Migreringsalternativ för Hive till Unity Catalog.

Krav

Krav för dataformat:

Beräkningskrav:

Objekt- och behörighetskrav för Unity Catalog:

  • En lagringsautentiseringsuppgift för en Hanterad Azure-identitet eller tjänstens huvudnamn som ger Unity Catalog åtkomst till tabellernas platssökväg.
  • En extern plats som refererar till lagringsautentiseringsuppgifterna som du nyss skapade och sökvägen till data i din molnklientorganisation.
  • CREATE EXTERNAL TABLE-behörighet på de externa platserna för de tabeller som ska uppgraderas.

Åtkomstkrav för Hive-tabeller:

  • Om din beräkning använder läget för delad åtkomst behöver du åtkomst till tabellerna i Hive-metaarkivet, som beviljas med hjälp av äldre åtkomstkontroll för tabeller. Se Innan du börjar.

Uppgraderingsprocess

  1. Klicka på Katalogikon Katalog i sidofältet för att öppna Katalogutforskaren.

  2. Välj hive_metastore som katalog och välj det schema (databas) som du vill uppgradera.

    Välj databas

  3. Klicka på Uppgradera längst upp till höger i schemainformationsvyn.

  4. Markera alla tabeller som du vill uppgradera och klicka på Nästa.

    Endast externa tabeller i format som stöds av Unity Catalog kan uppgraderas med hjälp av uppgraderingsguiden. Se Arbeta med externa tabeller.

  5. Ange målkatalogen, schemat (databasen) och ägaren för varje tabell.

    Användare kommer att kunna komma åt den nyligen skapade tabellen i samband med sina privilegier i katalogen och schemat.

    Tabellägare har alla behörigheter i tabellen, inklusive SELECT och MODIFY. Om du inte väljer en ägare skapas de hanterade tabellerna med dig som ägare. Databricks rekommenderar vanligtvis att du beviljar tabellägarskap till grupper. Mer information om objektägarskap i Unity Catalog finns i Hantera objektägarskap för Unity Catalog.

    Om du vill tilldela samma katalog och schema till flera tabeller väljer du tabellerna och klickar på knappen Ange mål .

    Om du vill tilldela samma ägare till flera tabeller väljer du tabellerna och klickar på knappen Ange ägare .

  6. Granska tabellkonfigurationerna. Om du vill ändra dem klickar du på knappen Föregående .

  7. Klicka på Skapa fråga för uppgradering.

    En frågeredigerare visas med genererade SQL-instruktioner.

  8. Köra frågan.

    När frågan är klar har varje tabells metadata kopierats från Hive-metaarkivet till Unity Catalog. Dessa tabeller markeras som uppgraderade i uppgraderingsguiden.

  9. Definiera detaljerad åtkomstkontroll med hjälp av fliken Behörigheter i varje ny tabell.

  10. (Valfritt) Lägg till kommentarer i varje uppgraderad Hive-tabell som pekar användare till den nya Unity Catalog-tabellen.

    Gå tillbaka till den ursprungliga tabellen i hive.metastore katalogen för att lägga till tabellkommenten.

    Om du använder följande syntax i tabellkommentaren visar notebook-filer och SQL-frågeredigerare frågor som refererar till den inaktuella Hive-tabellen det inaktuella tabellnamnet med hjälp av genomstrykningstext, visar kommentaren som en varning och tillhandahåller en snabbkorrigeringslänk till Databricks Assistant, som kan uppdatera koden för att referera till den nya tabellen.

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

    Se Lägg till kommentarer för att ange att en Hive-tabell har migrerats.

  11. Ändra dina arbetsbelastningar så att de använder de nya tabellerna.

    Om du har lagt till en kommentar i den ursprungliga Hive-tabellen som den som anges i det valfria föregående steget kan du använda snabbkorrigeringslänken och Databricks Assistant för att hitta och ändra arbetsbelastningar.

Uppgradera en enda Hive-tabell till en extern Unity Catalog-tabell med hjälp av uppgraderingsguiden

Du kan kopiera en enskild tabell från ditt standardmetaarkiv för Hive till Metaarkivet i Unity Catalog med hjälp av uppgraderingsguiden i Katalogutforskaren

Mer information om när du ska använda uppgraderingsguiden finns i Migreringsalternativ för Hive till Unity Catalog.

Krav

Krav för dataformat:

Beräkningskrav:

Objekt- och behörighetskrav för Unity Catalog:

  • En lagringsautentiseringsuppgift för en Hanterad Azure-identitet eller tjänstens huvudnamn som ger Unity Catalog åtkomst till tabellens platssökväg.
  • En extern plats som refererar till lagringsautentiseringsuppgifterna som du nyss skapade och sökvägen till data i din molnklientorganisation.
  • CREATE EXTERNAL TABLE-behörighet på de externa platserna för de tabeller som ska uppgraderas.

Uppgraderingsprocess

Så här uppgraderar du en extern tabell:

  1. Klicka på Katalogikon Katalog i sidofältet för att öppna Katalogutforskaren.

  2. Välj den databas och sedan den tabell som du vill uppgradera.

  3. Klicka på Uppgradera i det övre högra hörnet i tabellinformationsvyn.

  4. Välj tabellen för att uppgradera och klicka på Nästa.

  5. Välj målkatalog, schema (databas) och ägare.

    Användare kommer att kunna komma åt den nyligen skapade tabellen i samband med sina privilegier i katalogen och schemat.

    Tabellägare har alla behörigheter i tabellen, inklusive SELECT och MODIFY. Om du inte väljer en ägare skapas den hanterade tabellen med dig som ägare. Databricks rekommenderar vanligtvis att du beviljar tabellägarskap till grupper. Mer information om objektägarskap i Unity Catalog finns i Hantera objektägarskap för Unity Catalog.

  6. Klicka på Uppgradera i det övre högra hörnet i tabellinformationsvyn.

  7. Välj tabellen för att uppgradera och klicka på Nästa.

    Tabellmetadata kopieras nu till Unity Catalog och en ny tabell har skapats. Du kan nu använda fliken Behörigheter för att definiera detaljerad åtkomstkontroll.

  8. Använd fliken Behörigheter för att definiera detaljerad åtkomstkontroll.

  9. (Valfritt) Lägg till en kommentar i Hive-tabellen som pekar användare till den nya Unity Catalog-tabellen.

    Gå tillbaka till den ursprungliga tabellen i hive.metastore katalogen för att lägga till tabellkommenten.

    Om du använder följande syntax i tabellkommentaren visar notebook-filer och SQL-frågeredigerare frågor som refererar till den inaktuella Hive-tabellen det inaktuella tabellnamnet med hjälp av genomstrykningstext, visar kommentaren som en varning och tillhandahåller en snabbkorrigeringslänk till Databricks Assistant, som kan uppdatera koden för att referera till den nya tabellen.

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

    Se Lägg till kommentarer för att ange att en Hive-tabell har migrerats.

  10. Ändra befintliga arbetsbelastningar så att de använder den nya tabellen.

    Om du har lagt till en kommentar i den ursprungliga Hive-tabellen som den som anges i det valfria föregående steget kan du använda snabbkorrigeringslänken och Databricks Assistant för att hitta och ändra arbetsbelastningar.

    Kommentar

    Om du inte längre behöver den gamla tabellen kan du släppa den från Hive-metaarkivet. Om du tar bort en extern tabell ändras inte datafilerna i molnklientorganisationen.

Uppgradera en Hive-tabell till en extern Unity Catalog-tabell med hjälp av SYNC

Du kan använda SYNC SQL-kommandot för att kopiera externa tabeller i Hive-metaarkivet till externa tabeller i Unity Catalog. Du kan synkronisera enskilda tabeller eller hela scheman.

Du kan också använda SYNC för att kopiera Hive-hanterade tabeller som lagras utanför Databricks-arbetsytans lagring (kallas ibland DBFS-rot) till externa tabeller i Unity Catalog. Du kan inte använda den för att kopiera Hive-hanterade tabeller som lagras i arbetsytelagring. Om du vill kopiera dessa tabeller använder du CREATE TABLE CLONE i stället.

Kommandot SYNC utför en skrivåtgärd till varje källtabell som uppgraderas för att lägga till ytterligare tabellegenskaper för bokföring, inklusive en post i den externa enhetskatalogens måltabell.

SYNC kan också användas för att uppdatera befintliga Unity Catalog-tabeller när källtabellerna i Hive-metaarkivet ändras. Detta gör det till ett bra verktyg för att gradvis övergå till Unity Catalog.

Mer information finns i SYNC. Mer information om när du ska använda uppgraderingsguiden finns i Migreringsalternativ för Hive till Unity Catalog.

Krav

Krav för dataformat:

Beräkningskrav:

Objekt- och behörighetskrav för Unity Catalog:

  • En lagringsautentiseringsuppgift för en Hanterad Azure-identitet eller tjänstens huvudnamn som ger Unity Catalog åtkomst till tabellernas platssökväg.
  • En extern plats som refererar till lagringsautentiseringsuppgifterna som du nyss skapade och sökvägen till data i din molnklientorganisation.
  • CREATE EXTERNAL TABLE-behörighet på de externa platserna för de tabeller som ska uppgraderas.

Åtkomstkrav för Hive-tabeller:

  • Om din beräkning använder läget för delad åtkomst behöver du åtkomst till tabellerna i Hive-metaarkivet, som beviljas med hjälp av äldre åtkomstkontroll för tabeller. Se Innan du börjar.

Uppgraderingsprocess

Uppgradera tabeller i hive-metaarkivet till externa Unity Catalog-tabeller med hjälp av SYNC:

  1. Kör något av följande i en notebook-fil eller SQL-frågeredigeraren:

    Synkronisera en extern Hive-tabell:

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

    Synkronisera ett externt Hive-schema och alla dess tabeller:

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

    Synkronisera en hanterad Hive-tabell som lagras utanför Databricks-arbetsytans lagring:

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

    Synkronisera ett schema som innehåller hanterade Hive-tabeller som lagras utanför Databricks-arbetsytans lagring:

    SYNC SCHEMA <uc-catalog>.<new-schema> AS EXTERNAL FROM hive_metastore.<source-schema>
    SET OWNER <principal>;
    
  2. Ge användare eller grupper på kontonivå åtkomst till den nya tabellen. Se Hantera privilegier i Unity Catalog.

  3. (Valfritt) Lägg till en kommentar i den ursprungliga Hive-tabellen som pekar användare till den nya Unity Catalog-tabellen.

    Gå tillbaka till den ursprungliga tabellen i hive.metastore katalogen för att lägga till tabellkommenten. Information om hur du lägger till tabellkommentar med Hjälp av Catalog Explorer finns i Lägga till kommentarer till data och AI-tillgångar. Information om hur du lägger till tabellkommenterar med SQL-instruktioner i en notebook-fil eller SQL-frågeredigeraren finns i KOMMENTERA.

    Om du använder följande syntax i tabellkommentaren visar notebook-filer och SQL-frågeredigerare frågor som refererar till den inaktuella Hive-tabellen det inaktuella tabellnamnet med hjälp av genomstrykningstext, visar kommentaren som en varning och tillhandahåller en snabbkorrigeringslänk till Databricks Assistant, som kan uppdatera koden för att referera till den nya tabellen.

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

    Se Lägg till kommentarer för att ange att en Hive-tabell har migrerats.

  4. När tabellen har migrerats bör användarna uppdatera sina befintliga frågor och arbetsbelastningar så att de använder den nya tabellen.

    Om du har lagt till en kommentar i den ursprungliga Hive-tabellen som den som anges i det valfria föregående steget kan du använda snabbkorrigeringslänken och Databricks Assistant för att hitta och ändra arbetsbelastningar.

  5. Innan du släpper den gamla tabellen testar du för beroenden genom att återkalla åtkomsten till den och köra relaterade frågor och arbetsbelastningar igen.

    Ta inte bort den gamla tabellen om du fortfarande förlitar dig på utfasningskommentorer som hjälper dig att hitta och uppdatera befintlig kod som refererar till den gamla tabellen. På samma sätt ska du inte släppa den gamla tabellen om tabellen har ändrats sedan den ursprungliga synkroniseringen: SYNC kan användas för att uppdatera befintliga Unity Catalog-tabeller med ändringar från Hive-källtabeller.

Uppgradera en Hive-hanterad tabell till en hanterad Unity Catalog-tabell med CLONE

Använd CREATE TABLE CLONE för att uppgradera hanterade tabeller i hive-metaarkivet till hanterade tabeller i Unity Catalog. Du kan klona enskilda tabeller. Djupa kloner kopierar källtabelldata till klonmålet utöver befintliga tabellmetadata. Använd djupkloning om du tänker släppa Hive-källtabellen. Grunda kloner kopierar inte datafilerna till klonmålet utan ger åtkomst till dem med hänvisning till källdata: tabellmetadata motsvarar källan. Grunda kloner är billigare att skapa, men kräver att användare som frågar efter data i klonmålet också har åtkomst till källdata.

Hjälp med att bestämma när du ska använda CLONEfinns i Migreringsalternativ för Hive till Unity Catalog. Hjälp med att bestämma vilken klontyp som ska användas finns i Klona en tabell i Azure Databricks.

Krav

Krav för dataformat:

Beräkningskrav:

Behörighetskrav:

  • Behörigheterna USE CATALOG och USE SCHEMA för katalogen och schemat som du lägger till tabellen i, tillsammans med CREATE TABLE i schemat, eller så måste du vara ägare till katalogen eller schemat. Se Behörigheter och skyddsbara objekt i Unity Catalog.
  • Om din beräkning använder läget för delad åtkomst behöver du åtkomst till tabellerna i Hive-metaarkivet, som beviljas med hjälp av äldre åtkomstkontroll för tabeller. Se Innan du börjar.

Uppgraderingsprocess

Så här uppgraderar du hanterade tabeller i Hive-metaarkivet till hanterade tabeller i Unity Catalog:

  1. Kör något av följande i en notebook-fil eller SQL-frågeredigeraren:

    Djupkloning av en hanterad tabell i Hive-metaarkivet:

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

    Grunt klona en hanterad tabell i Hive-metaarkivet:

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

    Information om ytterligare parametrar, inklusive tabellegenskaper, finns i SKAPA TABELLKLONING.

  2. Ge användare eller grupper på kontonivå åtkomst till den nya tabellen. Se Hantera privilegier i Unity Catalog.

  3. (Valfritt) Lägg till en kommentar i den ursprungliga Hive-tabellen som pekar användare till den nya Unity Catalog-tabellen.

    Gå tillbaka till den ursprungliga tabellen i hive.metastore katalogen för att lägga till tabellkommenten. Information om hur du lägger till tabellkommentar med Hjälp av Catalog Explorer finns i Lägga till kommentarer till data och AI-tillgångar. Information om hur du lägger till tabellkommenterar med SQL-instruktioner i en notebook-fil eller SQL-frågeredigeraren finns i KOMMENTERA.

    Om du använder följande syntax i tabellkommentaren visar notebook-filer och SQL-frågeredigerare frågor som refererar till den inaktuella Hive-tabellen det inaktuella tabellnamnet med hjälp av genomstrykningstext, visar kommentaren som en varning och tillhandahåller en snabbkorrigeringslänk till Databricks Assistant, som kan uppdatera koden för att referera till den nya tabellen.

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

    Se Lägg till kommentarer för att ange att en Hive-tabell har migrerats.

  4. När tabellen har migrerats bör användarna uppdatera sina befintliga frågor och arbetsbelastningar så att de använder den nya tabellen.

    Om du har lagt till en kommentar i den ursprungliga Hive-tabellen som den som anges i det valfria föregående steget kan du använda snabbkorrigeringslänken och Databricks Assistant för att hitta och ändra arbetsbelastningar.

  5. Innan du släpper den gamla tabellen testar du för beroenden genom att återkalla åtkomsten till den och köra relaterade frågor och arbetsbelastningar igen.

    Ta inte bort den gamla tabellen om du fortfarande förlitar dig på utfasningskommentorer som hjälper dig att hitta och uppdatera befintlig kod som refererar till den gamla tabellen. På samma sätt ska du inte släppa den gamla tabellen om du utförde en ytlig klon. Ytliga kloner refererar till data från hive-källtabellen.

Uppgradera en Hive-tabell till en hanterad Unity Catalog-tabell med CREATE TABLE AS SELECT

Om du inte kan använda eller föredrar att inte använda CREATE TABLE CLONE för att migrera en tabell i Hive-metaarkivet till en hanterad tabell i Unity Catalog kan du skapa en ny hanterad tabell i Unity Catalog genom att fråga Hive-tabellen med .CREATE TABLE AS SELECT Information om skillnaderna mellan CREATE TABLE CLONE och CREATE TABLE AS SELECTfinns i Migreringsalternativ för Hive till Unity Catalog.

Krav

Beräkningskrav:

Behörighetskrav:

  • Behörigheterna USE CATALOG och USE SCHEMA för katalogen och schemat som du lägger till tabellen i, tillsammans med CREATE TABLE i schemat, eller så måste du vara ägare till katalogen eller schemat. Se Behörigheter och skyddsbara objekt i Unity Catalog.
  • Om din beräkning använder läget för delad åtkomst behöver du åtkomst till tabellerna i Hive-metaarkivet, som beviljas med hjälp av äldre åtkomstkontroll för tabeller. Se Innan du börjar.

Uppgraderingsprocess

Uppgradera en tabell i hive-metaarkivet till en hanterad tabell i Unity Catalog med hjälp av CREATE TABLE AS SELECT:

  1. Skapa en ny Unity Catalog-tabell genom att fråga den befintliga tabellen. Ersätt platshållarvärdena:

    • <uc-catalog>: Unity Catalog-katalogen för den nya tabellen.
    • <uc-schema>: Unity Catalog-schemat för den nya tabellen.
    • <new-table>: Ett namn på tabellen Unity Catalog.
    • <source-schema>: Schemat för Hive-tabellen, till exempel default.
    • <source-table>: Namnet på Hive-tabellen.

    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>"
    )
    

    Om du bara vill migrera vissa kolumner eller rader ändrar du -instruktionen SELECT .

    Kommentar

    Kommandona som visas här skapar en hanterad tabell där data kopieras till en dedikerad hanterad lagringsplats. Om du i stället vill skapa en extern tabell, där tabellen är registrerad i Unity Catalog utan att flytta data i molnlagringen, kan du läsa Uppgradera en enda Hive-tabell till en extern Unity Catalog-tabell med hjälp av uppgraderingsguiden. Se även Ange en hanterad lagringsplats i Unity Catalog.

  2. Ge användare eller grupper på kontonivå åtkomst till den nya tabellen. Se Hantera privilegier i Unity Catalog.

  3. (Valfritt) Lägg till en kommentar i den ursprungliga Hive-tabellen som pekar användare till den nya Unity Catalog-tabellen.

    Gå tillbaka till den ursprungliga tabellen i hive.metastore katalogen för att lägga till tabellkommenten. Information om hur du lägger till tabellkommentar med Hjälp av Catalog Explorer finns i Lägga till kommentarer till data och AI-tillgångar. Information om hur du lägger till tabellkommenterar med SQL-instruktioner i en notebook-fil eller SQL-frågeredigeraren finns i KOMMENTERA.

    Om du använder följande syntax i tabellkommentaren visar notebook-filer och SQL-frågeredigerare frågor som refererar till den inaktuella Hive-tabellen det inaktuella tabellnamnet med hjälp av genomstrykningstext, visar kommentaren som en varning och tillhandahåller en snabbkorrigeringslänk till Databricks Assistant, som kan uppdatera koden för att referera till den nya tabellen.

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

    Se Lägg till kommentarer för att ange att en Hive-tabell har migrerats.

  4. När tabellen har migrerats bör användarna uppdatera sina befintliga frågor och arbetsbelastningar så att de använder den nya tabellen.

    Om du har lagt till en kommentar i den ursprungliga Hive-tabellen som den som anges i det valfria föregående steget kan du använda snabbkorrigeringslänken och Databricks Assistant för att hitta och ändra arbetsbelastningar.

  5. Innan du släpper den gamla tabellen testar du för beroenden genom att återkalla åtkomsten till den och köra relaterade frågor och arbetsbelastningar igen.

    Ta inte bort den gamla tabellen om du fortfarande förlitar dig på utfasningskommentorer som hjälper dig att hitta och uppdatera befintlig kod som refererar till den gamla tabellen.

Uppgradera en vy till Unity Catalog

När du har uppgraderat alla en vys refererade tabeller till samma Unity Catalog-metaarkiv kan du skapa en ny vy som refererar till de nya tabellerna.

Lägg till kommentarer som anger att en Hive-tabell har migrerats

När du lägger till en kommentar i den inaktuella Hive-tabellen som pekar användare till den nya Unity Catalog-tabellen, visar notebook-filer och SQL-frågeredigeraren frågor som refererar till den inaktuella Hive-tabellen det inaktuella tabellnamnet med hjälp av genomstrykningstext, visar kommentaren som en varning och tillhandahåller en snabbkorrigeringslänk till Databricks Assistant, som kan uppdatera koden för att referera till den nya tabellen.

Utfasningsvarning för Hive-tabell

Kommentaren måste ha följande format:

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

Information om hur du lägger till tabellkommentar med Hjälp av Catalog Explorer finns i Lägga till kommentarer till data och AI-tillgångar. Information om hur du lägger till tabellkommenterar med SQL-instruktioner i en notebook-fil eller SQL-frågeredigeraren finns i KOMMENTERA.

Använda Databricks Assistant för att uppdatera en inaktuell tabellreferens

Om du ser genomstrykningstext på ett tabellnamn i en notebook-cell eller -instruktion i SQL-frågeredigeraren hovra över tabellnamnet för att visa ett varningsmeddelande. Om varningsmeddelandet beskriver tabellen som inaktuell och visar det nya tabellnamnet klickar du på Snabbkorrigering följt av Åtgärda utfasning. Databricks Assistant öppnas och erbjuder sig att ersätta det inaktuella tabellnamnet med det nya tabellnamnet i Unity Catalog. Följ anvisningarna för att slutföra uppgiften.

Video som visar Hive-tabelluppdatering med Hjälp av Databricks Assistant

Se även Använda Databricks Assistant.