Dela via


Aktivera Hive-metastore-federation för ett äldre arbetsyta-Hive-metaarkiv

Den här artikeln visar hur du federerar ditt äldre Azure Databricks Hive-metaarkiv så att din organisation kan arbeta med hive-metaarkivtabeller med hjälp av Unity Catalog.

En översikt över Hive-metaarkivfederationen finns i Hive-metaarkivfederation: aktivera Unity Catalog för att styra tabeller som är registrerade i ett Hive-metaarkiv.

Innan du börjar

Granska listan över tjänster och funktioner som stöds av Hive-metabutikfederationen: Krav, funktioner som stöds och begränsningar.

Specifika krav anges för varje steg nedan.

Steg 1: Ansluta Unity Catalog till hive-metaarkivet

I det här steget skapar du en anslutning, ett skyddsbart Objekt i Unity Catalog som anger en sökväg och autentiseringsuppgifter för åtkomst till ett databassystem, i det här fallet din Azure Databricks-arbetsytas äldre Hive-metaarkiv.

Krav

  • CREATE CONNECTION-behörigheten i Unity Catalog-metaarkivet.

Skapa anslutningen

En anslutning anger en sökväg och autentiseringsuppgifter för åtkomst till ett externt databassystem. Om du vill skapa en anslutning kan du använda Catalog Explorer eller kommandot CREATE CONNECTION SQL i en Azure Databricks-notebook-fil eller Databricks SQL-frågeredigeraren.

Obs

Du kan också använda Databricks REST API eller Databricks CLI för att skapa en anslutning. Se kommandona POST /api/2.1/unity-catalog/connections och Unity Catalog.

Behörigheter som krävs: metaarkivadministratör eller användare med CREATE CONNECTION behörighet.

Katalogutforskaren

  1. På din Azure Databricks-arbetsyta klickar du på ikonen KatalogCatalog.

  2. På sidan Snabbåtkomst klickar du på Lägg till data > Lägg till en anslutning.

  3. På sidan Anslutningsgrunder i guiden Konfigurera anslutning, ange ett användarvänligt Anslutningsnamn.

  4. Välj en anslutningstyp för Hive-metaarkiv och metaarkivtyp av Intern.

  5. (Valfritt) Lägg till en kommentar.

  6. Klicka på Nästa.

  7. (Valfritt) På sidan Anslutningsinformation anger du den fullt kvalificerade sökvägen till Hive Warehouse-katalogen .

    Du behöver bara detta om du inte vill använda standardplatsen.

  8. Klicka på Skapa anslutning.

  9. catalog basics-sidan anger du ett namn för den externa katalogen.

  10. För Auktoriserade sökvägarväljer du molnlagringssökvägar som kan nås via katalogen. Endast tabeller som faller under dessa sökvägar kan efterfrågas via den federerade katalogen. Sökvägar måste täckas av externa platser. Mer information finns i Vad är auktoriserade sökvägar?.

  11. Klicka på Skapa katalog.

  12. På sidan Access väljer du de arbetsytor där användarna kan komma åt katalogen som du skapade. Du kan välja Alla arbetsytor har åtkomsteller klicka på Tilldela till arbetsytor, välj arbetsytor och klicka sedan på Tilldela.

  13. Lägg till en ägare som kan hantera åtkomst till alla objekt i katalogen. Börja skriva en användare eller grupp i textrutan och klicka sedan på användaren eller gruppen i de returnerade resultaten.

  14. Bevilja privilegier i katalogen.

    1. Klicka på Tillåt.
    2. Ange principals vem som ska ha åtkomst till objekt i katalogen. Börja skriva en användare eller grupp i textrutan och klicka sedan på användaren eller gruppen i de returnerade resultaten.
    3. Välj Privilege-förinställningar som ska beviljas varje användare eller grupp. Alla kontoanvändare beviljas BROWSE som standard.
      • Välj dataläsare från den nedrullningsbara menyn för att bevilja read behörigheter för objekt i katalogen.
      • Välj dataredigeraren från den nedrullningsbara menyn för att bevilja read och modify behörigheter för objekt i katalogen.
      • Välj de behörigheter som ska beviljas manuellt.
    4. Klicka på Tillåt.
  15. Klicka på Nästa.

  16. På sidan metadata kan du ange taggar som nyckel/värde-par. Mer information finns i Tillämpa taggar på skyddsbara objekt i Unity Catalog.

  17. (Valfritt) Lägg till en kommentar.

  18. Klicka på Spara.

SQL

Kör följande kommando i en notebook-fil eller SQL-frågeredigeraren.

CREATE CONNECTION IF NOT EXISTS <connection-name> TYPE hive_metastore
  OPTIONS (
    builtin true,
    warehouse_directory '/path/to/warehouse-directory' );

Inkludera endast warehouse_directory om du inte vill använda standardplatsen för Hive-lagerkatalogen för ditt Hive-metaarkiv från klusterkonfigurationen. Den här sökvägen används för att härleda platsen för hanterade tabeller eller scheman när de skapas från den federerade katalogen.

Steg 2: Skapa externa platser för data i ditt interna äldre Hive-metaarkiv

I det här steget konfigurerar du en extern plats i Unity Catalog för att styra åtkomsten till molnlagringsplatserna som innehåller data som är registrerade i ditt äldre interna Hive-metaarkiv.

Externa platser är skyddsbara objekt i Unity Catalog som associerar autentiseringsuppgifter för lagring med sökvägar för molnlagringscontainer. Se Externa platser och lagringsautentiseringsuppgifter.

Krav

Behörighetskrav för molnlagring och Azure Databricks finns i "Innan du börjar" i Skapa en extern plats för att ansluta molnlagring till Azure Databricks.

Om du skapar en extern plats för arbetsytans äldre DBFS-rot läser du i stället "Innan du börjar" i Skapa en extern plats för data i DBFS-roten.

Alternativ för att skapa den externa platsen

Den process som Databricks rekommenderar för att skapa en extern plats i Unity Catalog beror på din situation:

Aktivera reservläge på externa platser

Så snart du skapar en extern plats i Unity Catalog styrs åtkomsten till den sökväg som representeras av den externa platsen av Unity Catalog-behörigheter när du kör frågor på beräkningar aktiverade för Unity Catalog. Detta kan avbryta befintliga arbetsbelastningar som inte har rätt Unity Catalog-behörigheter för att få åtkomst till sökvägen.

När en extern plats är i återställningsläge kontrollerar systemet först det frågande huvudobjektets Unity Catalog-behörigheter på platsen, och om det inte lyckas återgår det till att använda befintliga kluster- eller notebook-begränsade autentiseringsuppgifter, till exempel instansprofiler eller Apache Spark-konfigurationsegenskaper, så att dina befintliga arbetsbelastningar fortsätter att köras oavbrutet.

Återställningsläge är praktiskt när du håller på att migrera din äldre arbetsbelastning. När du har uppdaterat dina arbetsflöden så att de körs framgångsrikt med behörigheter för Unity Catalog bör du inaktivera återfallsläge för att förhindra att äldre klusteromfattande behörigheter används för att kringgå datastyrning i Unity Catalog.

Du kan aktivera återställningsläge med hjälp av Catalog Explorer eller REST API för externa platser i Unity Catalog.

Behörigheter som krävs: Ägare av den externa platsen.

Katalogutforskaren

  1. På din Azure Databricks-arbetsyta klickar du på ikonen KatalogCatalog.
  2. På sidan Snabbåtkomst klickar du på Extern data >.
  3. Välj den externa plats som du vill uppdatera.
  4. Aktivera Fallback-läge genom att slå på växlingsknappen och klicka på Aktivera för att bekräfta.

API

Följande curl-exempel visar hur du aktiverar återställningsläge när du skapar en extern plats och när du uppdaterar en befintlig extern plats.

Skapa en ny extern plats:

curl -X POST -H 'Authorization: Bearer <token>' \
https://<workspace-URL>/api/2.1/unity-catalog/external-locations \
--data
'{
  "name": "fallback_mode_enabled_external_location",
  "url": "abfss://container-name@storage-account.dfs.core.windows.net/external_location_container/url",
  "credential_name": "external_location_credential",
  "fallback": true
  "skip_validation": true
}'

Uppdaterar en extern plats:

curl -X PATCH \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
https://<workspace-URL>/api/2.1/unity-catalog/external-locations/<external-location-name> \
--data
 '{
   "comment": "fallback mode enabled",
   "fallback": true
  }'

Steg 3: Skapa en utländsk katalog

Obs

Du kanske redan har slutfört det här steget om du använde guiden för att skapa anslutningar i Katalogutforskaren för att slutföra steg 1. Om du inte skapade den externa katalogen när du slutförde steg 1, eller om du använde SQL för att skapa anslutningen, måste du följa anvisningarna i det här avsnittet.

I det här steget använder du anslutningen som du skapade i steg 1 för att skapa en sekundär katalog i Unity Catalog som pekar på den externa plats som du skapade i steg 2. En utländsk katalog är ett skyddsbart objekt i Unity Catalog som speglar en databas eller katalog i ett externt datasystem, så att du kan köra frågor om dessa data på din Azure Databricks-arbetsyta med åtkomst som hanteras av Unity Catalog. I det här fallet är den speglade katalogen dina data registrerade i ett Hive-metaarkiv.

Varje gång en användare eller ett arbetsflöde interagerar med den externa katalogen synkroniseras metadata från Hive-metaarkivet.

krav

behörighetskrav:

Så här skapar du den externa katalogen:

  • Privilegiet CREATE CATALOG på din Unity Catalog-metastore.
  • Antingen ägarskap för anslutningen eller CREATE FOREIGN CATALOG behörighet för anslutningen.
  • Om du vill ange auktoriserade sökvägar för den externa katalogen måste du ha CREATE FOREIGN SECURABLE behörighet på en extern plats som täcker dessa sökvägar. Ägaren till den externa platsen har den här behörigheten som standard.

Så här arbetar du med den externa katalogen:

  • Ägarskap för katalogen eller USE CATALOG

Beräkningskrav:

  • Så här skapar du katalogen med Hjälp av Katalogutforskaren: ingen beräkning krävs.
  • Så här skapar du katalogen med SQL: Databricks Runtime 13.3 LTS eller senare.
  • Så här fungerar du med katalogen: en beräkning med standardåtkomstläge på Databricks Runtime 13.3 LTS, 14.3 LTS, 15.1 eller senare.

Skapa den externa katalogen

För att skapa en utländsk katalog kan du använda Catalog Explorer eller SQL-kommandot CREATE FOREIGN CATALOG i en Azure Databricks-notebook eller i SQL-frågeredigeraren.

Se även Hantera och arbeta med externa kataloger.

Obs

Du kan också använda API:et för Unity Catalog. Se Skapa en katalog i referensen för Databricks REST API.

Katalogutforskaren

  1. På din Azure Databricks-arbetsyta klickar du på ikonen KatalogCatalog för att öppna Katalogutforskaren.

  2. På sidan Snabbåtkomst klickar du på Lägg till data-knappen och väljer Lägg till en katalog.

  3. Ange ett katalognamn och välj en katalogtyp för Utländsk.

  4. Välj anslutning som du skapade i steg 1 från listrutan.

  5. I fältet Auktoriserade sökvägar anger du sökvägar till de molnlagringsplatser som du definierade som externa platser i steg 2. Till exempel abfss://container@storageaccount.dfs.core.windows.net/demo, abfss://container@storageaccount.dfs.core.windows.net/depts/finance.

    Auktoriserade sökvägar är ett extra säkerhetslager för utländska kataloger som backas upp av Hive-metaarkivfederationen. Se Vad är auktoriserade sökvägar?.

  6. Klicka på Skapa.

  7. (Valfritt) Klicka på Konfigurera för att öppna en guide som vägleder dig genom att bevilja behörigheter för katalogen och lägga till taggar. Du kan också utföra de här stegen senare.

    Se Hantera behörigheter i Unity Catalog och Tillämpa taggar på skyddsbara objekt i Unity Catalog.

  8. (Valfritt) Binda katalogen till specifika arbetsytor.

    Som standard kan kataloger nås från alla arbetsytor som är anslutna till Unity Catalog-metaarkivet (begränsas av användarbehörigheter). Om du bara vill tillåta åtkomst från specifika arbetsytor går du till fliken Arbetsytor och tilldelar arbetsytor. Se Begränsa katalogåtkomst till specifika arbetsytor.

  9. Populera den externa katalogen med metadata för Hive-metastore.

    Varje gång en användare eller ett arbetsflöde interagerar med den externa katalogen synkroniseras metadata från Hive-metaarkivet. Den första interaktionen fyller katalogen i Unity Catalog och gör innehållet synligt i katalogutforskarens användargränssnitt. Du kan fylla på katalogen genom att välja och starta en stödd beräkningsresurs i Catalog Explorer. Du måste vara katalogägare (vilket du är i och med att du har skapat katalogen) eller en användare med USE CATALOG-behörighet.

SQL

Kör följande SQL-kommando i en notebook-fil eller SQL-frågeredigeraren. Objekt inom hakparenteser är valfria. Ersätt platshållarvärdena:

  • <catalog-name>: Namn på katalogen i Azure Databricks.
  • <connection-name>: Namnet på det anslutningsobjekt som du skapade i steg 1.
  • <path1>,<path2>: Sökvägar till de molnlagringsplatser som du definierade som externa platser i steg 2. Till exempel abfss://container@storageaccount.dfs.core.windows.net/demo, abfss://container@storageaccount.dfs.core.windows.net/depts/finance. Auktoriserade sökvägar är ett extra säkerhetslager för utländska kataloger som backas upp av Hive-metaarkivfederationen. Se Vad är auktoriserade sökvägar?. Se Vad är auktoriserade sökvägar?. Om du inte lägger till auktoriserade sökvägar när du skapar katalogen kan du använda ALTER CATALOG för att lägga till dem senare. Se ALTER CATALOG.
CREATE FOREIGN CATALOG [IF NOT EXISTS] <catalog-name> USING CONNECTION <connection-name>
OPTIONS (authorized_paths '<path1>,<path2>');

Varje gång en användare eller ett arbetsflöde interagerar med den federerade katalogen synkroniseras metadata från Hive-metaarkivet.

Obs

Om en utländsk tabell har en lagringsplats på DBFS och DBFS-monteringspunkten som stöder tabellen har mappats om till en annan sökväg sedan tabellen användes senast, kommer åtkomsten till tabellen att misslyckas med felkoden UC_RESOLVED_DBFS_PATH_MISMATCH. Använd följande kommando för att uppdatera den lösta DBFS-platsen och åtgärda felet:

REFRESH FOREIGN TABLE my_federated_catalog.schema.table RESOLVE DBFS LOCATION;

Du måste vara ÄGARE eller ha hantera-behörigheten i tabellen. Se REFRESH FOREIGN (CATALOG, SCHEMAoch TABLE).