Hive-metastore-federatie: Unity Catalog inschakelen voor het beheren van tabellen die zijn geregistreerd in een Hive-metastore
Belangrijk
Deze functie bevindt zich in openbare preview-versie.
In dit artikel wordt hive-metastore-federatie geïntroduceerd, een functie waarmee Unity Catalog tabellen kan beheren die zijn opgeslagen in een Hive-metastore. U kunt een externe Hive-metastore of een verouderde interne Azure Databricks Hive-metastore federeren.
Hive-metastore-federatie kan worden gebruikt voor de volgende toepassingsgevallen:
Als stap in het migratiepad naar Unity Catalog, waardoor incrementele migratie zonder codeaanpassing mogelijk is, blijven sommige van uw workloads gegevens gebruiken die zijn geregistreerd in uw Hive-metastore terwijl anderen worden gemigreerd.
Deze use-case is het meest geschikt voor organisaties die tegenwoordig een verouderde interne Azure Databricks Hive-metastore gebruiken, omdat federatieve interne Hive-metastores zowel lees- als schrijfworkloads toestaan.
Om een hybride model op langere termijn te bieden voor organisaties die bepaalde gegevens in een Hive-metastore moeten onderhouden naast hun gegevens die zijn geregistreerd in Unity Catalog.
Deze gebruikssituatie is het meest geschikt voor organisaties die een externe Hive-metastore gebruiken, omdat federatieve catalogi voor deze Hive-metastores in alleen-lezen-modus zijn.
Overzicht van Hive-metastore-federatie
In Hive-metastorefederatie maakt u een verbinding van uw Azure Databricks-werkruimte met uw Hive-metastore, en verkent Unity Catalog de Hive-metastore om een gefedereerde catalogus te vullen waarmee uw organisatie kan werken met uw Hive-metastoretabellen in Unity Catalog, en waardoor gecentraliseerd toegangsbeheer, herkomst, zoekopdrachten en meer worden geboden.
Federatieve Hive-metastores die zich buiten uw Azure Databricks-werkruimte bevinden, staan leesbewerkingen toe met behulp van Unity Catalog. Interne Hive-metastores staan lees- en schrijfbewerkingen toe, werken de Metagegevens van de Hive-metastore en de Metagegevens van de Unity Catalog bij wanneer u schrijft.
Wanneer u federated Hive-metastore-assets opvraagt, biedt Unity Catalog de beheerlaag, waarbij functies zoals toegangsbeheer en auditing worden uitgevoerd, terwijl query's worden uitgevoerd met behulp van Hive-metastore-semantiek. Als een gebruiker bijvoorbeeld een query uitvoert op een tabel die is opgeslagen in Parquet-indeling in een federatieve catalogus, dan:
- Unity Catalog controleert of de gebruiker toegang heeft tot de tabel en bepaalt de herkomst van de query.
- De query zelf wordt uitgevoerd op de onderliggende Hive-metastore, waarbij gebruik wordt gemaakt van de meest recente metagegevens en partitiegegevens die daar zijn opgeslagen.
Hoe vergelijkt hive-metastore-federatie zich met het gebruik van externe tabellen van Unity Catalog?
Unity Catalog biedt de mogelijkheid om externe tabellen te maken, waarbij gegevens die al bestaan op een willekeurige locatie in de cloudopslag worden geregistreerd in Unity Catalog als een tabel. In deze sectie worden de verschillen tussen externe en federatieve Hive-metastoretabellen besproken.
Beide tabeltypen hebben de volgende eigenschappen:
- Kan worden gebruikt voor het registreren van een willekeurige locatie in cloudopslag als een tabel.
- Kan Unity Catalog-machtigingen en verfijnde toegangsbeheer toepassen.
- Kan worden weergegeven in herkomst voor query's waarnaar wordt verwezen.
Alleen federatieve tabellen hebben de volgende eigenschappen:
- Worden automatisch gedetecteerd door een Hive-metastore te crawlen. Zodra tabellen worden gemaakt in de Hive-metastore, worden ze weergegeven en beschikbaar om query's uit te voeren in de federatieve catalogus van Unity Catalog.
- Toestaan dat tabellen worden gedefinieerd met Hive-semantiek zoals Hive SerDes en partities.
- Toestaan dat tabellen overlappende paden hebben met andere tabellen in federatieve catalogi.
- Toestaan dat tabellen zich in DBFS-hoofdmap locaties bevinden.
- Neem weergaven op die zijn gedefinieerd in de Hive Metastore.
Op deze manier kunt u federatieve Hive-metastore-tabellen beschouwen als het aanbieden van achterwaartse compatibiliteit met Hive-metastore, zodat workloads alleen semantiek van Hive kunnen gebruiken, maar met governance van Unity Catalog.
Sommige Unity Catalog-functies zijn echter niet beschikbaar voor federatieve tabellen, bijvoorbeeld:
- Functies die alleen beschikbaar zijn voor beheerde tabellen van Unity Catalog, zoals voorspellende optimalisatie.
- Vectorzoekopdrachten, Delta Sharing, Lakehouse-bewaking en onlinetabellen.
- Sommige functionaliteit van de functieopslag, waaronder het maken van een functieopslag, het implementeren van modelserving, het maken van functiespecificaties, het loggen van modellen en batchverwerking.
De prestaties kunnen marginaal slechter zijn dan workloads in Unity Catalog of Hive-metastore, omdat zowel Hive-metastore als Unity Catalog zich op het querypad van een federatieve tabel bevinden.
Zie Vereisten, ondersteunde functies en beperkingenvoor meer informatie over ondersteunde functionaliteit.
Wat betekent het schrijven naar een federatieve Hive-metastore-catalogus in Azure Databricks?
Schrijfbewerkingen worden alleen ondersteund voor federatieve interne Hive-metastores, niet voor externe Hive-metastores.
Schrijfbewerkingen naar federatieve metastores zijn van twee typen:
DDL-bewerkingen zoals
CREATE TABLE
,ALTER TABLE
enDROP TABLE
.DDL-bewerkingen worden synchroon weergegeven in de onderliggende Hive-metastore. Als u bijvoorbeeld een
CREATE TABLE
-instructie uitvoert, wordt de tabel gemaakt in zowel de Hive-metastore als de federatieve catalogus.Waarschuwing
Dit betekent ook dat
DROP
opdrachten worden weergegeven in de Hive-metastore.DROP SCHEMA mySchema CASCADE
verwijdert bijvoorbeeld alle tabellen in het onderliggende Hive-metastoreschema, zonder de optie omUNDROP
, omdat Hive-metastore geen ondersteuning biedt voorUNDROP
.DML-bewerkingen zoals
INSERT
,UPDATE
enDELETE
.DML-bewerkingen worden ook synchroon weergegeven in de onderliggende Hive-metastoretabel. Als u bijvoorbeeld
INSERT INTO
uitvoert, worden records toegevoegd aan de tabel in de Hive-metastore.Schrijfondersteuning is een sleutel voor het inschakelen van een naadloze overgang tijdens de migratie van Hive-metastore naar Unity Catalog. Zie Hoe gebruikt u hive-metastore-federatie tijdens de migratie naar Unity Catalog?.
Hoe stelt u de Hive Metastore-federatie in?
Om de Hive-metastore-federatie in te stellen, doe je het volgende:
Maak een verbinding in Unity Catalog waarmee het pad en de referenties worden opgegeven voor toegang tot de Hive-metastore.
Hive-metastore-federatie gebruikt deze verbinding om de Hive-metastore te verkennen. Voor de meeste databasesystemen geeft u een gebruikersnaam en wachtwoord op. Voor een verbinding met een verouderde interne Azure Databricks-werkruimte hive-metastore zorgt de Hive-metastore-federatie voor autorisatie.
Maak een opslagreferentie en een externe locatie in Unity Catalog voor de paden naar de tabellen die zijn geregistreerd in de Hive-metastore.
Externe locaties bevatten paden en de opslaggegevens die nodig zijn voor toegang tot deze paden. Opslagreferenties zijn beveiligbare objecten van Unity Catalog die referenties opgeven, zoals door Azure beheerde identiteiten, voor toegang tot cloudopslag. Afhankelijk van de werkstroom die u kiest voor het maken van externe locaties, moet u mogelijk opslagreferenties maken voordat u de externe locatie maakt.
Maak een federatieve catalogus in Unity Catalog met behulp van de verbinding die u in stap 1 hebt gemaakt.
Dit is de catalogus die werkruimtegebruikers en werkstromen gebruiken om te werken met Hive-metastoretabellen met behulp van Unity Catalog. Nadat u de federatieve catalogus hebt gemaakt, wordt deze gevuld met de tabellen die zijn geregistreerd in de Hive-metastore.
Ververleent bevoegdheden aan de tabellen in de federatieve catalogus met behulp van Unity Catalog.
U kunt ook rij- en kolomfilters voor Unity Catalog gebruiken voor fijnmazig toegangsbeheer.
Begin met het opvragen van gegevens.
Toegang tot gefedereerde gegevens met behulp van Unity Catalog is alleen-lezen voor externe Hive-metastores en lees- en schrijfbaar voor interne Hive-metastores.
Voor interne Hive-metastores en externe Hive-metastores werkt Unity Catalog voortdurend tabelmetagegevens bij wanneer deze wordt gewijzigd in de Hive-metastore. Voor interne Hive-metastores worden nieuwe tabellen en tabelupdates die zijn doorgevoerd vanuit de federatieve catalogus teruggeschreven naar de Hive-metastore, met behoud van volledige interoperabiliteit tussen de Unity Catalog en Hive-metastore-catalogi.
Zie voor gedetailleerde instructies:
- Hive-metastore-federatie inschakelen voor een verouderde werkruimte
- Hive-metastore-federatie inschakelen voor een externe Hive-metastore
Hoe gebruikt u hive-metastore-federatie tijdens de migratie naar Unity Catalog?
Met hive-metastore-federatie kunt u stapsgewijs migreren naar Unity Catalog door de noodzaak voor coördinatie tussen teams en workloads te verminderen. Met name als u migreert vanuit de interne Hive-metastore van uw Azure Databricks-werkruimte, betekent de mogelijkheid om te lezen van en schrijven naar zowel de Hive-metastore als de Unity Catalog-metastore dat u gespiegelde metastores tijdens uw migratie kunt onderhouden, wat de volgende voordelen biedt:
- Workloads die worden uitgevoerd op federatieve catalogi worden uitgevoerd in de compatibiliteitsmodus van Hive-metastore, waardoor de kosten van codeaanpassing tijdens de migratie worden verminderd.
- Elke workload kan ervoor kiezen om onafhankelijk van andere migreren, in de wetenschap dat tijdens de migratieperiode gegevens beschikbaar zijn in zowel Hive Metastore als Unity Catalog, waardoor de noodzaak tot coördinatie tussen workloads met onderlinge afhankelijkheden wordt weggenomen.
In deze sectie wordt een typische werkstroom beschreven voor het migreren van de interne verouderde Hive-metastore van een Azure Databricks-werkruimte naar Unity Catalog, met hive-metastorefederatie die de overgang versoepelt. Het is niet van toepassing op het migreren van een externe Hive-metastore. Federatieve catalogi voor externe Hive-metastores bieden geen ondersteuning voor schrijfbewerkingen.
Stap 1: De interne Hive-metastore federeren
In deze stap maakt u een federatieve catalogus die uw Hive-metastore spiegelt in Unity Catalog. Laten we het hms_in_uc
noemen.
Notitie
Als onderdeel van het federatieproces stelt u externe locaties in om toegang te bieden tot de gegevens in de cloudopslag. In migratiescenario's waarin sommige workloads query's uitvoeren op de gegevens met behulp van verouderde toegangsmechanismen en andere werkbelastingen dezelfde gegevens in Unity Catalog doorzoeken, kunnen de door de Unity Catalog beheerde toegangsbeheer op externe locaties voorkomen dat de verouderde workloads toegang hebben tot de paden naar opslag vanuit compute met Unity Catalog. U kunt 'terugvalmodus' op deze externe locaties inschakelen om terug te vallen op alle cluster- of notebookreferenties die zijn gedefinieerd voor de verouderde workload. Wanneer uw migratie is voltooid, schakelt u de terugvalmodus uit. Zie Wat houdt de terugvalmodus in?.
Voor meer informatie, zie Hive-metastore-federatie inschakelen voor een verouderde werkruimte Hive-metastore.
Stap 2. Nieuwe workloads uitvoeren op de federatieve catalogus in Unity Catalog
Wanneer u een federatieve catalogus hebt, kunt u SQL-analisten en data science-consumenten toegang verlenen tot deze catalogus en beginnen met het ontwikkelen van nieuwe workloads die ernaar verwijzen. De nieuwe workloads profiteren van de extra functieset in Unity Catalog, waaronder toegangsbeheer, zoeken en herkomst.
In deze stap doet u meestal het volgende:
- Kies Unity Catalog-compatibele berekeningen (dat wil gezegd: toegangsmodi voor één gebruiker of gedeeld cluster, SQL-warehouses of serverloze rekenkracht). Zie Vereisten, ondersteunde functies en beperkingen.
- Maak de federatieve catalogus de standaardcatalogus op de rekenresource of voeg
USE CATALOG hms_in_uc
toe aan het begin van uw code. Omdat schema's en tabelnamen in de federatieve catalogus exacte spiegels zijn van de schema's en tabelnamen in de Hive-metastore, verwijst uw code naar de federatieve catalogus.
stap 3. Bestaande taken migreren om uit te voeren op basis van de federatieve catalogus
Bestaande taken migreren om een query uit te voeren op de federatieve catalogus:
- Wijzig de standaardcatalogus van het taakcluster in
hms_in_uc
door een eigenschap in te stellen op het cluster zelf of doorUSE CATALOG hms_in_uc
toe te voegen aan de bovenkant van uw code. - Schakel de taak over naar rekenkracht van één gebruiker of gedeelde toegangsmodus en voer een upgrade uit naar een van de Databricks Runtime-versies die ondersteuning bieden voor Hive-metastore-federatie. Zie Vereisten, ondersteunde functies en beperkingen.
- Vraag een Azure Databricks-beheerder om de juiste Unity Catalog-bevoegdheden te verlenen voor de gegevensobjecten in
hms_in_uc
en op cloudopslagpaden (opgenomen in externe locaties van Unity Catalog) waartoe de taak toegang heeft. Zie Bevoegdheden beheren in Unity Catalog.
Stap 4. Toegang tot de Hive-metastore weigeren
Nadat u al uw workloads hebt gemigreerd om een query uit te voeren op de federatieve catalogus, hebt u de Hive-metastore niet meer nodig. U kunt verouderde toegangsbeheer voor tabellen en rekenmachtigingen gebruiken om directe toegang van uw Azure Databricks-werkruimte tot de Hive-metastore te blokkeren. U kunt bijvoorbeeld het volgende doen:
Alle bevoegdheden voor de objecten in de Hive-metastore-catalogus intrekken.
De opdracht
MSCK REPAIR PRIVILEGES
is voor dit doel handig. Zie MSCK REPAIR PRIVILEGES en Hive-metastorebevoegdheden en beveiligbare objecten (verouderd).Voorkom dat gebruikers clusters maken en gebruiken die toegangsbeheer voor tabellen omzeilen (clusters die geen isolatiemodus voor gedeelde toegang of een verouderd aangepast clustertype gebruiken) met behulp van rekenbeleid.
Maak de federatieve catalogus de standaardcatalogus van de werkruimte.
Veelgestelde vragen
De volgende secties bevatten meer gedetailleerde informatie over Hive-metastore-federatie.
Wat is de terugvalmodus?
Fallbackmodus is een instelling op externe locaties die u kunt gebruiken om de machtigingscontroles van Unity Catalog tijdens de migratie naar Unity Catalog te omzeilen. Het instellen zorgt ervoor dat workloads die nog niet zijn gemigreerd, niet worden beïnvloed tijdens de installatiefase.
Unity Catalog krijgt toegang tot cloudopslag met behulp van externe locaties, die beveiligbare objecten zijn die een pad en een referentie definiëren voor toegang tot uw cloudopslagaccount. U kunt machtigingen voor hen verlenen, zoals READ FILES
, om te bepalen wie het pad kan gebruiken. Een uitdaging tijdens het migratieproces is dat u mogelijk niet wilt dat Unity Catalog alle toegang tot het pad onmiddellijk regelt, bijvoorbeeld wanneer u bestaande, niet-gemigreerde workloads hebt die verwijzen naar het pad.
Met de terugvalmodus kunt u het strikte toegangsbeheer voor Unity Catalog op externe locaties vertragen. Wanneer de terugvalmodus is ingeschakeld, worden workloads die toegang hebben tot een pad eerst gecontroleerd op basis van Unity Catalog-machtigingen, en indien ze niet worden toegestaan, wordt teruggevallen op het gebruik van cluster- of notebook-specifieke referenties, zoals instance profielen of Apache Spark-configuratie-eigenschappen. Hierdoor kunnen bestaande workloads hun huidige verificatiegegevens blijven gebruiken.
De terugvalmodus is alleen bedoeld voor gebruik tijdens de migratie. Schakel deze functie uit wanneer alle workloads zijn gemigreerd en u bent klaar om toegangsbeheer voor Unity Catalog af te dwingen.
Query uitvoeren op auditlogboek voor terugvalgebruik
Gebruik de volgende query om te controleren of er in de afgelopen 30 dagen toegang tot de externe locatie in de fallbackmodus heeft plaatsgevonden. Als uw account geen terugvalmodustoegang heeft, raadt Databricks aan om de terugvalmodus uit te schakelen.
SELECT event_time, user_identity, action_name, request_params, response, identity_metadata
FROM system.access.audit
WHERE
request_params.fallback_enabled = 'true' AND
request_params.path LIKE '%some-path%' AND
event_time >= current_date() - INTERVAL 30 DAYS
LIMIT 10
Wat zijn geautoriseerde paden?
Wanneer u een federatieve catalogus maakt, wordt u gevraagd geautoriseerde paden op te geven naar de cloudopslag waar de Hive-metastore-tabellen worden opgeslagen. Elke tabel die u wilt openen met Hive metastore-federatie, moet toegankelijk zijn via deze paden. Databricks raadt aan dat uw geautoriseerde paden subpaden zijn die gebruikelijk zijn in een groot aantal tabellen. Als u bijvoorbeeld tabellen hebt op abfss://container@storageaccount.dfs.core.windows.net/bucket/table1
, ./bucket/table2
en ./bucket/table3
, moet u abfss://container@storageaccount.dfs.core.windows.net/bucket/
opgeven als een geautoriseerd pad.
U kunt UCX- gebruiken om u te helpen bij het identificeren van de paden die aanwezig zijn in uw Hive-metastore.
Geautoriseerde paden voegen een extra beveiligingslaag toe aan federatieve catalogi door de cataloguseigenaar in staat te stellen kaders toe te passen op de gegevens waartoe gebruikers toegang hebben via federatie. Dit is handig als uw Hive-metastore gebruikers toestaat metagegevens bij te werken en willekeurige tabellocaties te wijzigen, updates die anders zouden worden gesynchroniseerd in de federatieve catalogus. In dit scenario kunnen gebruikers mogelijk tabellen opnieuw definiëren waartoe ze al toegang hebben, zodat ze verwijzen naar nieuwe locaties waartoe ze anders geen toegang zouden hebben.
Kan ik Hive-metastores federeren met UCX?
UCX, het Databricks Labs-project voor het migreren van Azure Databricks-werkruimten naar Unity Catalog, bevat hulpprogramma's voor het inschakelen van Hive-metastorefederatie:
enable-hms-federation
create-federated-catalog
Zie het README-bestand voor het project op GitHub. Zie De UCX-hulpprogramma's gebruiken om uw werkruimte te upgraden naar Unity Catalogvoor een inleiding tot UCX.
vereisten, ondersteunde functies en beperkingen
De volgende tabel bevat de services en functies die worden ondersteund door Hive-metastore-federatie. In sommige gevallen worden niet-ondersteunde services of functies ook vermeld. In deze tabellen staat 'HMS' voor Hive-metastore.
Categorie | Ondersteund | Niet ondersteund |
---|---|---|
Metastores | - Hive-metastore voor verouderde werkruimte (intern bij Databricks) - Externe metastores op Apache Hive versie 0.13 of 2.3 met mySQL |
- Externe metastores in andere databases dan mySQL - Hive 3.1 |
Operaties | - Interne Databricks HMS: lezen en schrijven - Externe HMS: alleen lezen |
|
Hive-metastore-gegevensbronnen | - Beheerde en externe tabellen in Hive-metastore -Schemas -Weergaven - Hive SerDe-tabellen |
- Hive-functies en UDFs - Nieuwe ondiepe kloonnen definiëren in de federatieve catalogus - Door JDBC ondersteunde tabellen - Gedeelde Delta-tabellen delen - Toegang tot ondiepe kloonnen die zijn geregistreerd in de Hive-metastore via de federatieve catalogus |
Opslag | - Azure Data Lake Storage Gen2 - Tabellen die verwijzen naar DBFS-koppelpunten, inclusief DBFS-hoofdmap - Tabellen waarvan de paden overlappen met andere HMS-tabelpaden die zijn gedefinieerd in externe locaties |
- HMS-tabellen waarvan de paden overlappen met systeemeigen Unity Catalog-objectpaden - Toegang tot tabellen in DBFS-hoofd- of koppellocaties die zijn geregistreerd in een externe HMS - Toegang tot tabellen in DBFS-hoofd- of koppellocaties vanuit een andere werkruimte dan de werkruimte waarin de interne HMS is gedefinieerd - Firewall-ondersteuning voor het opslagaccount van de werkruimte |
Rekentypen | - Gedeelde clusters - Clusters met één gebruiker (toegewezen) - Serverloos (alle) - SQL Warehouses (alle) |
Geen isolatieclusters |
Rekenversies | Alle Databricks SQL-kanalen - Alle Delta Live Tables-kanalen - Databricks Runtime 13.3 LTS - Databricks Runtime 14.3 LTS - Databricks Runtime 15.1 en hoger |
|
Unity Catalog functies | - Unity Catalog-bevoegdheidsmodel - Rijfilters en kolommaskers -Controle - Downstreamherkomst - Zoeken in tabellen - Werkruimtenoverschrijdende toegang (behalve DBFS-root en -koppelingen) - Toegang tot gegevens beperkt tot gedefinieerde externe locaties |
- Delta Delen - Lakehouse-toezicht - Vector zoeken - Onlinetabellen - Sommige functionaliteit van de feature-opslag, waaronder het maken van feature-opslag, model serving, functiespecificatie, modellogging en batchscoring - U kunt geen gerealiseerde weergaven en streamingtabellen van Delta Live-tabellen schrijven in een federatieve catalogus, maar u kunt federatieve assets gebruiken als bron voor gerealiseerde weergaven en streamingtabellen van Delta Live Tables. - Automatische migratie van verouderde tabel-ACL's naar Unity Catalog-bevoegdheden voor de federatieve catalogus. UCX- kan hierbij helpen. |