Hive-metastore-federatie inschakelen voor een verouderde Hive-metastore
Belangrijk
Deze functie bevindt zich in openbare preview-versie.
In dit artikel wordt beschreven hoe u uw verouderde Azure Databricks Hive-metastore kunt federeren, zodat uw organisatie kan werken met uw Hive-metastoretabellen met behulp van Unity Catalog.
Voor een overzicht van de federatie van Hive-metastores, zie Hive metastore-federatie: schakel Unity Catalog in om de controle over tabellen te krijgen die zijn geregistreerd in een Hive-metastore.
Voordat u begint
Bekijk de lijst met 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 Hive-metastore
In deze stap maakt u een verbinding, een beveiligbaar Object voor Unity Catalog dat een pad en referenties opgeeft voor toegang tot een databasesysteem, in dit geval de verouderde Hive-metastore van uw Azure Databricks-werkruimte.
Eisen
- De
CREATE CONNECTION
bevoegdheid voor de Unity Catalog-metastore.
De verbinding maken
Een verbinding geeft een pad en referenties op voor toegang tot een extern databasesysteem. 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 Catalog-opdrachten.
vereiste machtigingen: Metastore-beheerder of gebruiker met de CREATE CONNECTION
-bevoegdheid.
Catalogusverkenner
Klik in uw Azure Databricks-werkruimte op Catalogus.
Klik op de pagina Snelle toegang op Gegevens toevoegen > Een verbindingtoevoegen.
Voer op de pagina Verbindingsbeginselen van de wizard Verbinding instellen een gebruiksvriendelijke verbindingsnaam in.
Selecteer een verbindingstype van Hive Metastore en Metastore-type van Intern.
(Optioneel) Voeg een opmerking toe.
Klik op Volgende.
(Optioneel) Voer op de pagina Verbindingsgegevens het volledig gekwalificeerde pad in naar de map Hive Warehouse.
U hebt dit alleen nodig als u de standaardlocatie niet wilt gebruiken.
Klik op Verbinding maken.
Voer op de basisbeginselen van de catalogus pagina een naam in voor de vreemde catalogus.
Kies voor geautoriseerde padencloudopslagpaden die toegankelijk zijn via de catalogus. Alleen tabellen die onder deze paden vallen, kunnen worden opgevraagd via de federatieve catalogus. Paden moeten door externe locaties worden afgedekt. Voor meer informatie, zie Wat zijn geautoriseerde paden?.
(Optioneel) Kies voor opslaglocatieeen locatie in de cloudopslag waar geselecteerde gegevens worden opgeslagen voor tabellen in deze catalogus. Als dit niet is opgegeven, wordt de locatie standaard ingesteld op de hoofdlocatie van de metastore, indien aanwezig.
Klik op Catalogus maken.
Selecteer op de pagina Access de werkruimten waarin gebruikers toegang hebben tot de catalogus die u hebt gemaakt. U kunt Alle werkruimten toegang geven, of klik op Aan werkruimten toewijzen, selecteer de werkruimten en klik vervolgens op Toewijzen.
Voeg een eigenaar toe die de toegang tot alle objecten in de catalogus kan beheren. Begin een gebruiker of groep in het tekstvak te typen en klik vervolgens op de gebruiker of groep in de geretourneerde resultaten.
Verleent rechten aan de catalogus. Klik op Toestaan:
- Specificeer de Principals die toegang hebben tot objecten in de catalogus. Begin een gebruiker of groep in het tekstvak te typen en klik vervolgens op de gebruiker of groep in de geretourneerde resultaten.
- Selecteer de vooraf ingestelde bevoegdheden om aan elke gebruiker of groep te verlenen. Alle accountgebruikers krijgen standaard
BROWSE
toegekend.- Selecteer Gegevenslezer in de vervolgkeuzelijst om
read
bevoegdheden te verlenen voor objecten in de catalogus. - Selecteer Gegevenseditor in de vervolgkeuzelijst om
read
enmodify
bevoegdheden voor objecten in de catalogus toe te kennen. - Selecteer handmatig de bevoegdheden die u wilt verlenen.
- Selecteer Gegevenslezer in de vervolgkeuzelijst om
- Klik op verleen.
Klik op Volgende.
Op de pagina Metagegevens, geef de tags en sleutel-waardeparen op. Zie Tags toepassen op beveiligbare objecten van Unity Catalogvoor 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 IF NOT EXISTS <connection-name> TYPE hive_metastore
OPTIONS (builtin true);
Stap 2: Externe locaties maken voor gegevens in uw interne verouderde 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 verouderde interne Hive-metastore.
externe locaties zijn beveiligbare objecten van Unity Catalog die opslagreferenties koppelen aan cloudopslagcontainerpaden. Zie externe locaties en opslagreferenties.
Eisen
Voor cloudopslag en Azure Databricks-toestemmingsvereisten, zie 'Voordat u begint' in Een externe locatie maken om cloudopslag te verbinden met Azure Databricks.
Als u een externe locatie maakt voor de verouderde DBFS-hoofdmap van uw werkruimte, raadpleegt u in plaats daarvan 'Voordat u begint' in Een externe locatie maken voor gegevens in de DBFS-hoofdmap.
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 interne Databricks Hive-metastore die gegevens in DBFS-koppelingen of DBFS-hoofdmapopslaat, samenvoegt, maakt u de externe locatie met Catalog Explorer en gebruikt u de optie Kopiƫren van DBFS-koppeling. Volg de instructies in Handmatig een externe locatie maken met behulp van Catalog Explorer of Een externe locatie maken voor gegevens in de hoofdmap van DBFS.
- Anders kunt u Catalog Explorer of SQL-opdrachten gebruiken. Volg de instructies in Handmatig een externe locatie maken met behulp van Catalog Explorer of Een externe locatie maken met behulp van SQL.
terugvalmodus inschakelen op externe locaties
Zodra u een externe locatie in Unity Catalog maakt, wordt toegang tot het pad dat wordt vertegenwoordigd door die externe locatie afgedwongen door machtigingen voor Unity Catalog wanneer u query's uitvoert op compute met Unity Catalog (enkele gebruiker, gedeeld of SQL Warehouse). Bestaande workloads die niet over de juiste machtigingen in de Unity Catalog beschikken om toegang tot het pad te krijgen, kunnen hierdoor worden onderbroken.
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, valt u terug op het gebruik van bestaande referenties met cluster- of notebookbereik, 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 succesvol te draaien met behulp van Unity Catalog-machtigingen, moet u de terugvalmodus uitschakelen om te voorkomen dat verouderde clustergerichte referenties worden gebruikt om het gegevensbeheer van Unity Catalog te omzeilen.
U kunt de terugvalmodus inschakelen met behulp van Catalog Explorer of de REST API voor externe locaties van Unity Catalog.
vereiste machtigingen: eigenaar van de externe locatie.
Catalogusverkenner
- Klik in uw Azure Databricks-werkruimte op Catalogus.
- Klik op de pagina Snelle toegang op Externe gegevens >.
- Selecteer de externe locatie die u wilt bijwerken.
- Schakel de terugvalmodus in door de schakelaar om te zetten en klik op Inschakelen om te bevestigen.
API (Application Programming Interface)
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 bijwerkt.
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 catalogus maken
In deze stap gebruikt u de verbinding die u in stap 1 hebt gemaakt om een federatieve catalogus te maken in Unity Catalog die verwijst naar de externe locatie die u in stap 2 hebt gemaakt. Een federatieve catalogus is een type externe catalogus. Dit is een beveiligbaar object in Unity Catalog dat een database of catalogus in een extern gegevenssysteem spiegelt. Hierdoor kunt u query's uitvoeren op die gegevens in uw Azure Databricks-werkruimte, waarbij de toegang wordt beheerd door Unity Catalog. In dit geval is de gespiegelde catalogus uw gegevens die zijn geregistreerd in een Hive-metastore.
Telkens wanneer een gebruiker of werkstroom communiceert met de federatieve catalogus, worden metagegevens gesynchroniseerd vanuit de Hive-metastore.
vereisten voor
machtigingsvereisten:
De buitenlandse catalogus maken:
- De
CREATE CATALOG
-toegang tot uw Unity Catalog-metastore. - Eigendom van de verbinding of het
CREATE FOREIGN CATALOG
privilege op de verbinding. - Om toegang te krijgen tot geautoriseerde paden voor de vreemde catalogus, moet u de
CREATE FOREIGN SECURABLE
-bevoegdheid hebben op een externe locatie die die paden omvat. De eigenaar van de externe locatie heeft deze bevoegdheid standaard.
Werken met de buitenlandse catalogus:
- Eigendom van de catalogus of van
USE CATALOG
Compute-vereisten:
- De catalogus maken met Catalog Explorer: geen rekenkracht vereist.
- De catalogus maken met behulp van SQL: Databricks Runtime 13.3 LTS of hoger.
- Werken met de catalogus: een gedeeld cluster in Databricks Runtime 13.3 LTS, 14.3 LTS, 15.1 of hoger.
De buitenlandse catalogus maken
Als u een buitenlandse catalogus wilt 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. Zie Maak een catalogus in de Databricks REST API-referentie.
Klik in uw Azure Databricks-werkruimte op Catalogus om Catalog Explorer te openen.
Klik op de pagina Snelle toegang op de Gegevens toevoegen botton en selecteer Een catalogus toevoegen.
Voer een catalogusnaam in en selecteer een catalogus Type van Buitenlandse.
Selecteer in de vervolgkeuzelijst de Connection die u in stap 1 hebt gemaakt.
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 zijn alleen een extra beveiligingslaag voor federatieve catalogi. Zie Wat zijn geautoriseerde paden?.
Klik op maken.
(Optioneel) Klik op configureren om een wizard te openen waarmee u machtigingen voor de catalogus kunt verlenen en tags kunt toevoegen. U kunt deze stappen ook later uitvoeren.
Zie Bevoegdheden beheren in Unity Catalog en Tags toepassen op beveiligbare objecten van Unity Catalog.
(Optioneel) Bind de catalogus aan specifieke werkruimten.
Catalogussen zijn standaard 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 Catalogustoegang beperken tot specifieke werkruimten.
Vul de federatieve catalogus in met de metagegevens van de Hive-metastore.
Telkens wanneer een gebruiker of werkstroom communiceert met de federatieve catalogus, worden metagegevens gesynchroniseerd vanuit de Hive-metastore. De eerste interactie vult de catalogus in Unity Catalog en maakt de inhoud zichtbaar in de gebruikersinterface van Catalog Explorer. U kunt de catalogus vullen door een ondersteunde rekenresource te selecteren en te starten in Catalog Explorer. U moet de cataloguseigenaar zijn (die u hebt als gevolg van het maken van de catalogus) of een gebruiker met de bevoegdheid
USE CATALOG
.Voer de volgende SQL-opdracht uit in een notebook of de SQL-queryeditor. Items tussen haakjes zijn optioneel. Vervang de waarden van de tijdelijke aanduidingen:
-
<catalog-name>
: naam voor de catalogus 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 zijn alleen een extra beveiligingslaag voor federatieve catalogi. Zie Wat zijn geautoriseerde paden?.
CREATE FOREIGN CATALOG [IF NOT EXISTS] <catalog-name> USING CONNECTION <connection-name> OPTIONS (authorized_paths '<path1>,<path2>');
Telkens wanneer een gebruiker of werkstroom communiceert met de federatieve catalogus, worden metagegevens gesynchroniseerd vanuit de Hive-metastore.
-