Dela via


Aktivera Hive-metaarkivfederation för ett externt Hive-metaarkiv

Viktig

Den här funktionen finns i offentlig förhandsversion.

Den här artikeln visar hur du federerar ett externt Hive-metaarkiv så att din organisation kan arbeta med ditt Hive-metaarkiv tables med Unity Catalog.

En översikt över Hive-metastore-federation finns i Hive-metastore-federation: aktivera Unity Catalog för att hantera tables som är registrerade i en Hive-metastore.

Innan du börjar

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

Specifika krav anges för varje steg nedan.

Steg 1: Anslut Unity Catalog till ditt externa Hive-metaarkiv

I det här steget skapar du en anslutning, ett Unity-Catalog skyddsbart objekt som anger en sökväg och credentials för åtkomst till ett databassystem, i det här fallet hive-metaarkivet.

Krav

Du måste ha följande:

  • Ett användarnamn och lösenord som ger åtkomst till databassystemet som är värd för Hive-metaarkivet.
  • URL:en till databasen (värd och port).
  • Databasnamnet
  • CREATE CONNECTION-privilegiet på Unity Catalog-metastore. Metaarkivadministratörer har den här behörigheten som standard.

Skapa anslutningen

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.

Not

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.

Catalog Explorer

  1. På din Azure Databricks-arbetsyta klickar du på ikonen CatalogCatalog.
  2. På sidan Snabbåtkomst klickar du på Lägg till data > Lägg till en anslutning.
  3. På sidan Anslutningsgrunder i guiden för Set-anslutning, ange ett användarvänligt Anslutningsnamn.
  4. Select en Anslutningstyp av Hive Metastore och Metastoretyp av Extern.
  5. (Valfritt) Lägg till en kommentar.
  6. Klicka på Nästa.
  7. På sidan autentisering anger du följande för värddatabasen:
    • Host: Till exempel mysql-demo.lb123.us-west-2.rds.amazonaws.com
    • Port: Till exempel 3306
    • Användare: Till exempel mysql_user
    • Lösenord: Till exempel password123
  8. Klicka på Nästa.
  9. På sidan Anslutningsinformation anger du följande för värddatabasen:
    • Version: Hive-metaarkivversioner som stöds är 0.13 och 2.3.
    • Database: Namnet på den databas som du ansluter till.
    • Databastyp: Till exempel MySQL.
  10. Klicka på Skapa anslutning.
  11. På sidan Catalog grundläggande sida anger du ett namn för den utländska catalog.
  12. För Auktoriserade sökvägarväljer du molnlagringssökvägar som kan nås via catalog. Endast tables som faller under dessa sökvägar kan förfrågas via den federerade catalog. Sökvägar måste täckas av externa platser. Mer information finns i Vad är auktoriserade sökvägar?.
  13. (Valfritt) För Lagringsplatsväljer du en plats i molnlagring where valda data ska lagras för tables i den här catalog. Om den inte anges kommer platsen som standard att vara rotplatsen för metaarkivet, om den finns.
  14. Klicka på Skapa catalog.
  15. På sidan Access är select de arbetsytor där användarna kan komma åt catalog som du skapade. Du kan select, alla arbetsytor har åtkomst, eller klicka på Tilldela till arbetsytor, select arbetsytorna och klicka sedan på Tilldela.
  16. Lägg till en ägare som kan hantera åtkomst till alla objekt i catalog. Börja skriva en användare eller grupp i textrutan och klicka sedan på användaren eller gruppen i de returnerade resultaten.
  17. Grant Rättigheter på catalog. Klicka på Grant:
    1. Ange principals som ska ha åtkomst till objekt i catalog. Börja skriva en användare eller grupp i textrutan och klicka sedan på användaren eller gruppen i de returnerade resultaten.
    2. Select förinställningar av Privilege för att tilldela grant till varje användare eller grupp. Alla kontoanvändare beviljas BROWSE som standard.
      • Select dataläsare från rullgardinsmenyn för att grantread behörigheter för objekt i catalog.
      • Select Dataredigeraren från den nedrullningsbara menyn till grantread och modify behörigheter på objekt i catalog.
      • select manuellt behörigheterna åt grant.
    3. Klicka på Grant.
  18. Klicka på Nästa.
  19. På sidan metadata anger du taggar för nyckel/värde-par. Mer information finns i Tillämpa taggar på Unity Catalog skyddsbara objekt.
  20. (Valfritt) Lägg till en kommentar.
  21. Klicka på Spara.

SQL

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

CREATE CONNECTION <connection-name> TYPE hive_metastore
OPTIONS (
  host '<hostname>',
  port '<port>',
  user '<user>',
  password '<password>',
  database '<database-name>',
  db_type 'MYSQL',
  version '2.3',
);

Inkludera endast warehouse_directory om du inte vill använda standardplatsen för Hive-lagerkatalogen för din Hive-metastore.

Vi rekommenderar att du använder Azure Databricks hemligheter i stället för textsträngar för känsliga values som credentials. Till exempel:

CREATE CONNECTION <connection-name> TYPE hive_metastore
OPTIONS (
  host '<hostname>',
  port '<port>',
  user secret ('<secret-scope>','<secret-key-user>'),
  password secret ('<secret-scope>','<secret-key-password>'),
  database '<database-name>',
  db_type 'MYSQL',
  version '2.3'
)

Om du måste använda textsträngar i SQL-kommandon för notebook-filer bör du undvika att trunkera strängen genom att undvika specialtecken som $ med \. Till exempel: \$.

Information om hur du konfigurerar hemligheter finns i Hemlighetshantering.

Steg 2: Skapa externa platser för data i hive-metaarkivet

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

Externa platser är Unity Catalog skyddsbara objekt som associerar lagring credentials med containersökvägar för molnlagring. Se Externa platser och lagring credentials.

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.

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, tillämpas åtkomst till sökvägen som representeras av den externa platsen genom Unity Catalog-behörigheter när du utför frågor på Unity Catalog-aktiverad beräkning (enskild användare, delad eller SQL Warehouse). Detta kan avbryta befintliga arbetsbelastningar som inte har rätt Unity-Catalog behörigheter för att komma åt sökvägen.

När en extern plats är i återställningsläge kontrollerar systemet först det frågande huvudkontots Unity-Catalog behörigheter på platsen, och om det inte lyckas återgår det till att använda befintliga kluster- eller notebook-begränsade credentials, 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 arbetsbelastningar så att de körs med Unity-Catalog-behörigheter bör du inaktivera fallback-läge för att förhindra att äldre klusteromfång credentials används för att kringgå Unity-Catalog-datastyrning.

Du kan aktivera reservläge med hjälp av Catalog Explorer eller REST-API:et för Unity Catalog externa platser.

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

Catalog Explorer

  1. På din Azure Databricks-arbetsyta klickar du på ikonen CatalogCatalog.
  2. På sidan Snabbåtkomst klickar du på Externa data >.
  3. Select den externa plats som du vill update.
  4. Aktivera återställningsläge växla 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 update 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 federerad catalog

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

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

krav

behörighetskrav:

Så här skapar du den externa catalog:

  • Det CREATE CATALOG privilegiet för ditt Unity-Catalog metaarkiv.
  • Antingen ägarskap för anslutningen eller ha CREATE FOREIGN CATALOG-behörighet till anslutningen.
  • Om du vill ange auktoriserade sökvägar för den externa catalogmå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 utländska catalog:

  • Ägarskap för catalog eller USE CATALOG

Beräkningskrav:

  • Skapa catalog med hjälp av Catalog Explorer: ingen beräkning krävs.
  • Skapa catalog med SQL: Databricks Runtime 13.3 LTS eller senare.
  • Arbeta med catalog: ett delat kluster på Databricks Runtime 13.3 LTS, 14.3 LTS, 15.1 eller senare.

Skapa den främmande catalog

Om du vill skapa en främmande catalogkan du använda Catalog Explorer eller SQL-kommandot CREATE FOREIGN CATALOG i en Azure Databricks-notebook eller SQL-frågeredigeraren.

Not

Du kan också använda Unity Catalog-API:et. Se Skapa en catalog i Databricks REST API-referensen.

  1. På din Azure Databricks-arbetsyta klickar du på ikonen CatalogCatalog för att öppna Catalog Explorer.

  2. På sidan Snabbåtkomst klickar du på Lägg till data botton och selectLägg till en catalog .

  3. Ange ett Catalog namn och select en catalogtyp av utland.

  4. Select 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 endast för federerade catalogs. 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 catalog 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å Unity Catalog skyddsbara objekt.

  8. (Valfritt) Binda catalog till specifika arbetsytor.

    Som standard kan catalogs nås från alla arbetsytor som är kopplade till Metaarkivet Unity Catalog (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 Limitcatalog åtkomst till specifika arbetsytor.

  9. Fyll de federerade catalog med metadata från Hive-metaarkiv.

    Varje gång en användare eller ett arbetsflöde interagerar med den federerade catalogsynkroniseras metadata från Hive-metaarkivet. Den första interaktionen fyller catalog i Unity Catalog och gör innehållet synligt i användargränssnittet för Catalog Explorer. Du kan fylla i catalog genom att välja och starta en beräkningsresurs som stöds i Catalog Explorer. Du måste vara catalog ägare (vilket du är genom att skapa catalog) eller en användare med USE CATALOG behörighet.

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

    • <catalog-name>: Namn på catalog 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 endast för federerade catalogs. Se Vad är auktoriserade sökvägar?.
    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 catalogsynkroniseras metadata från Hive-metaarkivet.

Se även Hantera och arbeta med utländska catalogs.