Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln visar hur du federerar ett externt 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-metaarkivfederation: Krav och funktionsstöd.
Specifika krav anges för varje steg nedan.
Steg 1: Ansluta Unity Catalog till ditt externa Hive-metaarkiv
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 hive-metaarkivet.
Requirements
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-behörigheten i Unity Catalog-metaarkivet. 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.
Note
Du kan även använda Databricks REST API eller Databricks CLI för att skapa en anslutning. Se POST /api/2.1/unity-catalog/connections och Unity Catalog-kommandon.
Katalogutforskaren
På din Azure Databricks-arbetsyta klickar du på
Katalog.
På sidan Snabbåtkomst klickar du på Lägg till data > Lägg till en anslutning.
På sidan Anslutningsgrundläggande i Installera anslutningsguiden anger du ett användarvänligt Anslutningsnamn.
Välj en anslutningstyp för Hive-metaarkiv och metaarkivtyp av Extern.
(Valfritt) Lägg till en kommentar.
Klicka på Nästa.
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
-
Host: Till exempel
Klicka på Nästa.
På sidan Anslutningsinformation väljer eller anger du följande för värddatabasen:
- Database type: Select MySQL, SQLSERVEReller POSTGRESQL.
- Version: Hive-metaarkivversioner som stöds är 0.13, 2.3 och 3.1.
- Database: Namnet på den databas som du ansluter till.
(Valfritt) Om databasinstansen inte använder ett CA-signerat servercertifikat väljer du Förtroendeservercertifikat.
Klicka på Skapa anslutning.
På sidan Grundläggande katalog anger du ett namn för den externa katalogen.
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?.
På sidan Åtkomst väljer du de arbetsytor där användarna kan komma åt katalogen som du skapade. Du kan välja Alla arbetsytor har åtkomst eller klicka på Tilldela till arbetsytor, välja arbetsytor och sedan klicka på Tilldela.
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.
Bevilja privilegier i katalogen.
- Klicka på Tillåt.
- Ange de huvudnamn 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.
- Välj behörighetsförinställningar som ska beviljas åt varje användare eller grupp. Alla kontoanvändare beviljas
BROWSEsom standard.- Välj Dataläsare på den nedrullningsbara menyn för att bevilja
readbehörigheter för objekt i katalogen. - Välj Dataredigeraren på den nedrullningsbara menyn för att bevilja
readochmodifybehörigheter för objekt i katalogen. - Välj de behörigheter som ska beviljas manuellt.
- Välj Dataläsare på den nedrullningsbara menyn för att bevilja
- Klicka på Tillåt.
Klicka på Nästa.
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.
(Valfritt) Lägg till en kommentar.
Klicka på Spara.
SQL
Kör följande kommando i en notebook-fil eller 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'
);
Vi rekommenderar att du använder Azure Databricks-hemligheter i stället för klartextsträngar för känsliga värden som autentiseringsuppgifter. 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 de molnlagringsplatser som innehåller data som är registrerade i ditt externa Hive-metaarkiv.
Externa platser är skyddsbara objekt i Unity Catalog som associerar autentiseringsuppgifter för lagring med sökvägar för molnlagringscontainer.
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:
- Om du federerar ett Hive-metaarkiv som lagrar data i DBFS-monteringar skapar du den externa platsen med Hjälp av Catalog Explorer eller SQL och använder alternativet Kopiera från DBFS-montering . Mer information finns i Ansluta till en extern DBFS-rotplats (äldre).
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 arbetsflöden som inte har rätt Unity-katalogens 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 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.
Fallback-läge är bekvämt när du håller på att migrera din legacy-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 autentiseringsuppgifter på klusternivå 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
- På din Azure Databricks-arbetsyta klickar du på
Katalog.
- På sidan Snabbåtkomst klickar du på Externa data >.
- Välj den externa plats som du vill uppdatera.
- 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
Note
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 CATALOGpå din Unity Catalog-metastore. - Antingen ägarskap för anslutningen eller
CREATE FOREIGN CATALOGbehörighet för anslutningen. - Om du vill ange auktoriserade sökvägar för den externa katalogen måste du ha
CREATE FOREIGN SECURABLEbehö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.
Note
Du kan också använda API:et för Unity Catalog. Se Skapa en katalog i referensen för Databricks REST API.
Katalogutforskaren
På din Azure Databricks-arbetsyta klickar du på
Katalog för att öppna Katalogutforskaren.
På sidan Snabbåtkomst klickar du på Lägg till data-knappen och väljer Lägg till en katalog.
Ange ett katalognamn och välj en katalogtyp för Utländsk.
Välj anslutning som du skapade i steg 1 från listrutan.
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?.
Klicka på Skapa.
(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.
(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.
Befolka den externa katalogen med metadata från Hive-metadatalagret.
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 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 exempelabfss://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ändaALTER CATALOGför att lägga till dem senare. Se även 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.