Hive-metastore-federatie inschakelen voor een externe Hive-metastore
Belangrijk
Deze functie bevindt zich in openbare preview-versie.
In dit artikel wordt beschreven hoe u een externe Hive-metastore kunt federeren, zodat uw organisatie kan werken met uw Hive-metastore tables met behulp van Unity Catalog.
Voordat u begint
Bekijk de list van services en functies die worden ondersteund door Hive Metastore-federatie: Vereisten, Ondersteunde Functies en Beperkingen.
Voor elke onderstaande stap worden specifieke vereisten vermeld.
Stap 1: Unity Catalog verbinden met uw externe Hive-metastore
In deze stap maakt u een verbinding, een Unity-Catalog beveiligbaar object dat een pad opgeeft en credentials voor toegang tot een databasesysteem, in dit geval uw Hive-metastore.
Eisen
U moet het volgende hebben:
- Een gebruikersnaam en wachtwoord die toegang verleent tot het databasesysteem dat als host fungeert voor de Hive-metastore.
- De URL naar de database (host en poort).
- De naam van de database.
- De
CREATE CONNECTION
bevoegdheid op de Unity Catalog metastore. Metastore-beheerders hebben deze bevoegdheid standaard.
De verbinding maken
Als u een verbinding wilt maken, kunt u Catalog Explorer of de CREATE CONNECTION
SQL-opdracht gebruiken in een Azure Databricks-notebook of de Databricks SQL-queryeditor.
Notitie
U kunt ook de Databricks REST API of de Databricks CLI gebruiken om een verbinding te maken. Zie POST /api/2.1/unity-catalog/connections en Unity-opdrachten Catalog.
Catalog Explorer
- Klik in uw Azure Databricks-werkruimte op Catalog.
- Klik op de pagina Snelle toegang op Gegevens toevoegen > Een verbindingtoevoegen.
- Voer op de basisbeginselen pagina van de Set verbinding wizard een gebruiksvriendelijke verbindingsnaamin.
- Select een verbindingstype van Hive Metastore en een metastoretype van External.
- (Optioneel) Voeg een opmerking toe.
- Klik op Volgende.
- Voer op de pagina Authentication het volgende in voor uw hostdatabase:
-
Host: Bijvoorbeeld
mysql-demo.lb123.us-west-2.rds.amazonaws.com
-
poort: bijvoorbeeld
3306
-
gebruiker: bijvoorbeeld
mysql_user
-
wachtwoord: bijvoorbeeld
password123
-
Host: Bijvoorbeeld
- Klik op Volgende.
- Voer op de pagina Verbindingsgegevens het volgende in voor uw hostdatabase:
- versie: ondersteunde Hive-metastoreversies zijn 0.13 en 2.3.
- Database: de naam van de database waarmee u verbinding maakt.
- databasetype: bijvoorbeeld MySQL-.
- Klik op Verbinding maken.
- Voer op de Catalog basisbeginselen pagina een naam in voor de buitenlandse catalog.
- Kies voor geautoriseerde padencloudopslagpaden die toegankelijk zijn via de catalog. Alleen tables die onder deze paden vallen, kunnen via de federatieve catalogworden opgevraagd. Paden moeten worden toegedekt door externe locaties. Zie Wat zijn geautoriseerde paden?.
- (Optioneel) Kies voor opslaglocatieeen locatie in cloudopslag where geselecteerde gegevens worden opgeslagen voor tables in deze catalog. Als dit niet is opgegeven, wordt de locatie standaard ingesteld op de hoofdlocatie van de metastore, indien aanwezig.
- Klik op catalogmaken.
- Op de pagina Accessselect u de werkruimten waarin gebruikers toegang hebben tot de catalog die u hebt gemaakt. U kunt selectervoor kiezen dat alle werkruimten toegang hebben, of klik op Toewijzen aan werkruimten, selecteer select de werkruimten en klik vervolgens op Toewijzen.
- Voeg een eigenaar toe die de toegang tot alle objecten in de catalogkan beheren. Begin een gebruiker of groep in het tekstvak te typen en klik vervolgens op de gebruiker of groep in de geretourneerde resultaten.
-
Grant
bevoegdheden bij de catalog. Klik op Grant:
- Specificeer de Principals die toegang hebben tot objecten in de catalog. Begin een gebruiker of groep in het tekstvak te typen en klik vervolgens op de gebruiker of groep in de geretourneerde resultaten.
-
Select de voorinstellingen voor bevoegdheden voor elke gebruiker of groep grant. Alle accountgebruikers krijgen standaard
BROWSE
toegekend.-
Select
Gegevenslezer uit de vervolgkeuzelijst om grant
read
bevoegdheden te krijgen voor objecten in de catalog. -
Select
Gegevenseditor in de vervolgkeuzelijst naar grant
read
enmodify
bevoegdheden voor objecten in de catalog. - select de bevoegdheden voor granthandmatig.
-
Select
Gegevenslezer uit de vervolgkeuzelijst om grant
- Klik op Grant.
- Klik op Volgende.
- Geef op de pagina Metagegevens de sleutel-waardeparen van tags op. Zie Tags toepassen op Unity Catalog beveiligbare objectenvoor meer informatie.
- (Optioneel) Voeg een opmerking toe.
- Klik op Opslaan.
SQL
Voer de volgende opdracht uit in een notebook of de Sql-query-editor van Databricks.
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',
);
Neem warehouse_directory
alleen op als u de standaardlocatie van de Hive-magazijnmap voor uw Hive-metastore niet wilt gebruiken.
U wordt aangeraden Azure Databricks geheimen te gebruiken in plaats van tekenreeksen zonder opmaak voor gevoelige values, zoals credentials. Bijvoorbeeld:
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'
)
Als u tekenreeksen zonder opmaak moet gebruiken in SQL-opdrachten in notebooks, vermijdt u het afkappen van de tekenreeks door speciale tekens zoals $
met \
te ontsnappen. Bijvoorbeeld: \$
.
Zie Geheimbeheervoor meer informatie over het instellen van geheimen.
Stap 2: Externe locaties maken voor gegevens in uw Hive-metastore
In deze stap configureert u een externe locatie in Unity Catalog om de toegang tot de cloudopslaglocaties te beheren die de gegevens bevatten die zijn geregistreerd in uw externe Hive-metastore.
externe locaties zijn Unity Catalog beveiligbare objecten die opslag credentials koppelen aan cloudopslagcontainerpaden. Zie externe locaties en opslag credentials.
Eisen
Zie 'Voordat u begint' in Een externe locatie maken om cloudopslag te verbinden met Azure Databricksvoor vereisten met betrekking tot cloudopslag en Azure Databricks machtigingen.
Opties voor het maken van de externe locatie
Het proces dat Databricks aanbeveelt voor het maken van een externe locatie in Unity Catalog is afhankelijk van uw situatie:
- Als u een Hive-metastore heeft die gegevens opslaat in DBFS-mounts, maakt u de externe locatie aan met behulp van Catalog Explorer en gebruikt u de optie Kopiƫren vanuit DBFS-mount. Zie Een externe locatie handmatig maken met behulp van Catalog Explorer of Een externe locatie maken voor gegevens in de DBFS-hoofdmap.
- Anders kunt u Catalog Explorer- of SQL-opdrachten gebruiken. Zie Een externe locatie handmatig maken met Catalog Explorer of Een externe locatie maken met behulp van SQL.
terugvalmodus inschakelen op externe locaties
Zodra u een externe locatie in Unity Catalogmaakt, wordt de toegang tot het pad dat wordt vertegenwoordigd door die externe locatie afgedwongen door Unity Catalog machtigingen wanneer u query's uitvoert op Unity Catalog-enabled compute (enkele gebruiker, gedeeld of SQL Warehouse). Hierdoor kunnen bestaande workloads worden onderbroken die niet over de juiste Unity-Catalog machtigingen beschikken om toegang te krijgen tot het pad.
Wanneer een externe locatie zich in de terugvalmodus bevindt, controleert het systeem eerst de Unity Catalog-machtigingen van de query-principal op de locatie. Als dat niet lukt, wordt er teruggevallen op het gebruik van bestaande cluster- of notebook-scoped credentials, zoals instantieprofielen of Apache Spark-configuratie-eigenschappen, zodat uw bestaande workloads ononderbroken blijven werken.
De terugvalmodus is handig wanneer u bezig bent met het migreren van uw verouderde workload. Zodra u uw workloads hebt bijgewerkt om met succes te draaien met behulp van Unity Catalog-machtigingen, moet u de terugvalmodus uitschakelen om te voorkomen dat verouderde, cluster-gebaseerde credentials worden gebruikt om Unity Catalog databeheer te omzeilen.
U kunt de terugvalmodus inschakelen door Catalog Explorer of de Unity REST API voor externe locaties Catalog te gebruiken.
vereiste machtigingen: eigenaar van de externe locatie.
Catalog Explorer
- Klik in uw Azure Databricks-werkruimte op Catalog.
- Klik op de pagina Snelle toegang op Externe gegevens >.
- Select de externe locatie die u wilt update.
- Schakel de terugvalmodus in met de wisselknop en klik op Inschakelen om te bevestigen.
API
In de volgende curl-voorbeelden ziet u hoe u de terugvalmodus inschakelt wanneer u een externe locatie maakt en wanneer u een bestaande externe locatie update.
Een nieuwe externe locatie maken:
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
}'
Een externe locatie bijwerken:
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
}'
Stap 3: Een federatieve catalog maken
In deze stap gebruikt u de verbinding die u in stap 1 hebt gemaakt om een federatieve catalog te maken in Unity Catalog die verwijst naar de externe locatie die u in stap 2 hebt gemaakt. Een federatieve catalog is een soort buitenlandse catalog, een beveiligbaar object in Unity Catalog dat een database of catalog in een extern gegevenssysteem spiegelt, zodat u query's kunt uitvoeren op die gegevens in uw Azure Databricks-werkruimte, waarbij de toegang wordt beheerd door Unity Catalog. In dit geval is de gespiegelde catalog uw data die geregistreerd is in een Hive-metastore.
Wanneer een gebruiker of werkstroom communiceert met de federatieve catalog, worden metagegevens gesynchroniseerd vanuit de Hive-metastore.
vereisten voor
machtigingsvereisten:
Om de buitenlandse catalogte maken:
- De
CREATE CATALOG
bevoegdheid voor uw Unity Catalog metastore. - Eigendom van de verbinding of de
CREATE FOREIGN CATALOG
bevoegdheid voor de verbinding. - Als u geautoriseerde paden voor de buitenlandse catalogwilt invoeren, moet u de bevoegdheid
CREATE FOREIGN SECURABLE
hebben op een externe locatie die deze paden bedekt. De eigenaar van de externe locatie heeft deze bevoegdheid standaard.
Om te werken met de buitenlandse catalog:
- Eigendom van de catalog of
USE CATALOG
Compute-vereisten:
- Om catalog te maken met Catalog Explorer: geen rekenkracht nodig.
- De catalog maken met behulp van SQL: Databricks Runtime 13.3 LTS of hoger.
- Werken met de catalog: een gedeeld cluster in Databricks Runtime 13.3 LTS, 14.3 LTS, 15.1 of hoger.
De buitenlandse catalog maken
Als u een foreign catalogwilt maken, kunt u Catalog Explorer of de CREATE FOREIGN CATALOG
SQL-opdracht gebruiken in een Azure Databricks-notebook of de SQL-queryeditor.
Notitie
U kunt ook de Unity Catalog-API gebruiken. Raadpleeg om een catalog te maken in de Databricks REST API-referentie.
Klik in uw Azure Databricks-werkruimte op Catalog om Catalog Explorer te openen.
Klik op de pagina Snelle toegang op de knop Gegevens toevoegen en selecteen catalog toevoegen.
Voer een Catalog naam in en select een catalogType van Buitenlandse.
Select de verbinding die u in stap 1 hebt gemaakt in de vervolgkeuzelijst.
Voer in het geautoriseerde paden veld paden in naar de cloudopslaglocaties die u in stap 2 hebt gedefinieerd als externe locaties. Bijvoorbeeld
abfss://container@storageaccount.dfs.core.windows.net/demo,abfss://container@storageaccount.dfs.core.windows.net/depts/finance
.Geautoriseerde paden vormen een extra beveiligingslaag voor alleen gefedereerde catalogs. Zie Wat zijn geautoriseerde paden?.
Klik op maken.
(Optioneel) Klik op configureren om een wizard te openen die u begeleidt bij het verlenen van machtigingen voor de catalog en het toevoegen van tags. U kunt deze stappen ook later uitvoeren.
Zie Bevoegdheden beheren in Unity Catalog en Tags toepassen op Unity Catalog beveiligbare objecten.
(Optioneel) Bind de catalog aan specifieke werkruimten.
Standaard is catalogs toegankelijk vanuit elke werkruimte die is gekoppeld aan de Unity Catalog-metastore (beperkt door gebruikersbevoegdheden). Als u alleen toegang vanuit specifieke werkruimten wilt toestaan, gaat u naar het tabblad Werkruimten en wijst u werkruimten toe. Zie Limitcatalog toegang tot specifieke werkruimten.
Vul de federatieve catalog met de Hive-metastore-metagegevens.
Wanneer een gebruiker of werkstroom communiceert met de federatieve catalog, worden metagegevens gesynchroniseerd vanuit de Hive-metastore. De eerste interactie vult de catalog in Unity Catalog en maakt de inhoud zichtbaar in de Catalog Explorer-gebruikersinterface. U kunt de catalog vullen door een ondersteunde rekenresource te selecteren en te starten in Catalog Explorer. Je moet de eigenaar van catalog zijn (wat je bent doordat je de cataloghebt gemaakt) of een gebruiker met het
USE CATALOG
-voorrecht.Voer de volgende SQL-opdracht uit in een notebook of de SQL-queryeditor. Items tussen haakjes zijn optioneel. Vervang de tijdelijke aanduiding values:
-
<catalog-name>
: naam voor de catalog in Azure Databricks. -
<connection-name>
: de naam van het verbindingsobject dat u in stap 1 hebt gemaakt. -
<path1>,<path2>
: paden naar de cloudopslaglocaties die u in stap 2 hebt gedefinieerd als externe locaties. Bijvoorbeeldabfss://container@storageaccount.dfs.core.windows.net/demo,abfss://container@storageaccount.dfs.core.windows.net/depts/finance
. Geautoriseerde paden vormen een extra beveiligingslaag voor alleen gefedereerde catalogs. Zie Wat zijn geautoriseerde paden?.
CREATE FOREIGN CATALOG [IF NOT EXISTS] <catalog-name> USING CONNECTION <connection-name> OPTIONS (authorized_paths '<path1>,<path2>');
Wanneer een gebruiker of werkstroom communiceert met de federatieve catalog, worden metagegevens gesynchroniseerd vanuit de Hive-metastore.
-