Federacja magazynu metadanych Hive: włącz katalog Unity, aby zarządzać tabelami zarejestrowanymi w magazynie metadanych Hive
Ważny
Ta funkcja jest dostępna w wersji zapoznawczej.
W tym artykule przedstawiono federację metastore Hive, funkcję, która umożliwia katalogowi Unity zarządzanie tabelami przechowywanymi w metastore Hive. Możesz sfederować zewnętrzny magazyn metadanych Hive lub starszy wewnętrzny magazyn metadanych usługi Azure Databricks Hive.
Federacja metastore Hive może być używana w następujących scenariuszach użycia:
Jako krok na ścieżce migracji do Unity Catalogu, umożliwienie migracji przyrostowej bez adaptacji kodu, przy czym niektóre obciążenia nadal korzystają z danych zarejestrowanych w metadanych Hive, podczas gdy inne są migrowane.
Ten przypadek użycia jest najbardziej odpowiedni dla organizacji korzystających ze starszego wewnętrznego magazynu metadanych usługi Azure Databricks Hive, ponieważ federacyjne wewnętrzne magazyny metadanych Hive umożliwiają zarówno obciążenia odczytu, jak i zapisu.
Aby zapewnić długoterminowy model hybrydowy dla organizacji, które muszą przechowywać dane w magazynie metadanych Hive wraz z danymi zarejestrowanymi w katalogu Unity.
Ten przypadek użycia jest najbardziej odpowiedni dla organizacji korzystających z zewnętrznego magazynu metadanych Hive, ponieważ federacyjne katalogi dla tych magazynów metadanych Hive są tylko do odczytu.
federacji Hive
Omówienie federacji repozytorium metadanych Hive
W federacji metastore Hive utworzysz połączenie z obszaru roboczego Azure Databricks do swojego magazynu metadanych Hive, a Unity Catalog przeszuka magazyn metadanych Hive, aby utworzyć federacyjny katalog, który umożliwia organizacji pracę z tabelami magazynu metadanych Hive w Unity Catalog, oferując scentralizowane mechanizmy kontroli dostępu, śledzenie pochodzenia, wyszukiwanie i inne funkcje.
Federacyjne magazyny metadanych Hive zewnętrzne wobec obszaru roboczego Azure Databricks umożliwiają odczyt z użyciem Unity Catalog. Wewnętrzne metastore'y Hive umożliwiają odczyty i zapisy, aktualizując metadane metastore'a Hive oraz metadane Katalogu Unity podczas zapisu.
Podczas wykonywania zapytań dotyczących zasobów metadanych Hive w federacyjnym magazynie danych, Katalog Unity zapewnia warstwę zarządzania, wykonując funkcje, takie jak kontrole dostępu i inspekcje, a zapytania są wykonywane przy użyciu semantyki magazynu metadanych Hive. Jeśli na przykład użytkownik wysyła zapytanie do tabeli przechowywanej w formacie Parquet w wykazie federacyjnym, wówczas:
- Unity Catalog sprawdza, czy użytkownik ma dostęp do tabeli i określa pochodzenie zapytania.
- Samo zapytanie działa na bazowym metastore Hive, korzystając z najnowszych metadanych i przechowywanych tam informacji o partycji.
W jaki sposób federacja Hive Metastore porównuje się z używaniem tabel zewnętrznych Unity Catalog?
Katalog Unity umożliwia tworzenie tabel zewnętrznychz danych, które już istnieją w dowolnej lokalizacji magazynu w chmurze i rejestrowanie ich w Katalogu Unity jako tabelę. W tej sekcji omówiono różnice między zewnętrznymi i federacyjnymi tabelami metadanych Hive.
Oba typy tabel mają następujące właściwości:
- Można go użyć do zarejestrowania dowolnej lokalizacji w chmurze jako tabeli.
- Może stosować uprawnienia Unity Catalog i drobiazgowe mechanizmy kontroli dostępu.
- Można wyświetlić w pochodzeniu zapytań, które się do nich odwołują.
Tylko tabele federacyjne mają następujące właściwości:
- Są automatycznie odnajdywane na podstawie przeszukiwania magazynu metadanych Hive. Po utworzeniu tabel w magazynie metadanych Hive są one widoczne i dostępne do zapytań w federacyjnym katalogu Unity Catalog.
- Umożliwienie definiowania tabel za pomocą semantyki Hiva, takich jak Hive SerDes i partycje.
- Zezwalaj tabelom na nakładanie się ścieżek z innymi tabelami w wykazach federacyjnych.
- Zezwalaj na umieszczanie tabel w katalogu głównym systemu plików DBFS .
- Uwzględnij widoki zdefiniowane w magazynie metadanych Hive.
W ten sposób można myśleć o federacyjnych tabelach magazynu metadanych Hive jako oferujących wsteczną kompatybilność z magazynem metadanych Hive, co pozwala na użycie wyłącznie semantyki Hive, ale z nadzorem zapewnianym przez Unity Catalog.
Jednak niektóre funkcje Unity Catalog nie są dostępne w tabelach federacyjnych, na przykład:
- Funkcje dostępne tylko dla tabel zarządzanych przez Unity Catalog, takie jak optymalizacja predykcyjna.
- Wyszukiwanie wektorów, Delta Sharing, monitorowanie Lakehouse i tabele online.
- Niektóre funkcje magazynu cech, w tym tworzenie magazynu cech, tworzenie serwowania modelu, tworzenie specyfikacji cech, rejestrowanie modeli i ocena wsadowa.
Wydajność może być nieznacznie gorsza niż w przypadku obciążeń w katalogu Unity Catalog lub magazynie metadanych Hive, ponieważ zarówno magazyn metadanych Hive, jak i katalog Unity Catalog znajdują się w ścieżce zapytania tabeli federacyjnej.
Aby uzyskać więcej informacji na temat obsługiwanych funkcji, zobacz wymagania , obsługiwane funkcje i ograniczenia.
Co oznacza zapisywanie do federacyjnego katalogu systemu metadanych Hive w usłudze Azure Databricks?
Obsługiwane są zapisy tylko w przypadku wewnętrznych federacyjnych magazynów metadanych Hive, a nie zewnętrznych magazynów metadanych Hive.
Operacje zapisu w federacyjnych magazynach metadanych mają dwa typy:
Operacje DDL, takie jak
CREATE TABLE
,ALTER TABLE
iDROP TABLE
.Operacje DDL są synchronicznie odzwierciedlane w bazowym magazynie metadanych Hive. Na przykład uruchomienie instrukcji
CREATE TABLE
powoduje utworzenie tabeli w magazynie metadanych Hive i katalogu federacyjnym.Ostrzeżenie
Oznacza to również, że polecenia
DROP
są odzwierciedlane w magazynie metadanych Hive. Na przykładDROP SCHEMA mySchema CASCADE
odrzuca wszystkie tabele w podstawowym schemacie magazynu metadanych Hive bez opcjiUNDROP
, ponieważ magazyn metadanych Hive nie obsługujeUNDROP
.Operacje DML, takie jak
INSERT
,UPDATE
iDELETE
.Operacje DML są również synchronicznie odzwierciedlane w bazowej tabeli magazynu metadanych Hive. Na przykład uruchomienie
INSERT INTO
dodaje rekordy do tabeli w magazynie metadanych Hive.Obsługa zapisu jest kluczowa dla umożliwienia bezproblemowego przejścia podczas migracji z magazynu metadanych Hive do Unity Catalog. Zobacz Jak używać federacji magazynu metadanych Hive podczas migracji do Unity Catalog?.
Jak skonfigurować federację magazynu metadanych Hive?
Aby skonfigurować federację magazynu metadanych Hive, należy wykonać następujące czynności:
Utwórz połączenie w Unity Catalog, które określa ścieżkę i poświadczenia do dostępu do metastore Hive.
Federacja magazynu metadanych Hive używa tego połączenia do przeszukiwania magazynu metadanych Hive. W przypadku większości systemów baz danych należy podać nazwę użytkownika i hasło. W przypadku połączenia ze starszym wewnętrznym obszarem roboczym Azure Databricks z metadanymi Hive, federacja magazynu metadanych Hive zajmuje się autoryzacją.
Utwórz poświadczenie magazynu i lokalizację zewnętrzną w katalogu Unity dla ścieżek do tabel zarejestrowanych w magazynie metadanych Hive.
Lokalizacje zewnętrzne zawierają ścieżki oraz poświadczenia magazynu, które są wymagane do uzyskania dostępu do tych ścieżek. Poświadczenia magazynu to obiekty zabezpieczalne w Unity Catalog, które określają poświadczenia, takie jak zarządzane tożsamości Azure, umożliwiające dostęp do magazynu w chmurze. W zależności od przepływu pracy wybranego do tworzenia lokalizacji zewnętrznych, może być konieczne utworzenie danych uwierzytelniających dla pamięci masowej przed utworzeniem lokalizacji zewnętrznej.
Utwórz katalogu federacyjnego w katalogu aparatu Unity przy użyciu połączenia utworzonego w kroku 1.
Jest to wykaz wykorzystywany przez użytkowników i procesy robocze obszaru roboczego do pracy z tabelami metastore Hive przy użyciu Unity Catalog. Po utworzeniu katalogu federacyjnego katalog Unity Catalog uzupełnia go tabelami zarejestrowanymi w magazynie metadanych Hive.
Udziel uprawnień tabelom w katalogu federacyjnym przy użyciu Katalogu Unity.
Możesz również użyć filtrów wierszy i kolumn Unity Catalog do dokładnej kontroli dostępu.
Rozpocznij wykonywanie zapytań dotyczących danych.
Dostęp do danych federacyjnych przy użyciu Unity Catalog jest tylko do odczytu dla zewnętrznych magazynów metadanych Hive oraz umożliwia odczyt i zapis dla wewnętrznych magazynów metadanych Hive.
W przypadku wewnętrznych magazynów metadanych Hive i zewnętrznych magazynów metadanych Hive, Unity Catalog stale aktualizuje metadane tabeli wraz ze zmianami w magazynie metadanych Hive. W przypadku wewnętrznych metasklepów Hive nowe tabele i aktualizacje tabel zatwierdzone z katalogu zintegrowanego są zapisywane z powrotem do metasklepu Hive, zachowując pełną współdziałalność między Unity Catalog a metasklepami Hive.
Aby uzyskać szczegółowe instrukcje, zobacz:
- Włącz federację magazynu metadanych Hive dla starszego środowiska
- Włącz federację magazynu metadanych Hive dla zewnętrznego magazynu metadanych
Jak używać federacji metarepozytorium Hive podczas migracji do Unity Catalog?
Federacja metastore Hive umożliwia stopniową migrację do Unity Catalog, zmniejszając potrzebę koordynacji między zespołami i obciążeniami. W szczególności, jeśli migrujesz z wewnętrznego magazynu metadanych Hive w obszarze roboczym Azure Databricks, możliwość odczytu i zapisu zarówno do magazynu metadanych Hive, jak i Unity Catalog oznacza, że podczas migracji można zachować "lustrzane" magazyny metadanych, zapewniając następujące korzyści:
- Obciążenia uruchamiane względem katalogów federacyjnych, działają w trybie zgodności z metastore Hive, co zmniejsza koszt adaptacji kodu podczas migracji.
- Każde obciążenie może zdecydować się na migrację niezależnie od pozostałych, wiedząc, że w trakcie okresu migracji dane będą dostępne zarówno w magazynie metadanych Hive, jak i w Unity Catalog. Tym samym ogranicza to potrzebę koordynacji pomiędzy obciążeniami, które są od siebie zależne.
W tej sekcji opisano typowy przepływ pracy migracji wewnętrznego przestarzałego magazynu metadanych Hive obszaru roboczego usługi Azure Databricks do wykazu Unity Catalog, przy czym federacja magazynu metadanych Hive ułatwia przejście. Nie dotyczy migrowania zewnętrznego magazynu metadanych Hive. Katalogi federacyjne dla zewnętrznych magazynów metadanych Hive nie obsługują zapisów.
Krok 1: Federacja wewnętrznego magazynu metadanych Hive
W tym kroku utworzysz katalog złączony, który odzwierciedla metastore Hive w Unity Catalog. Nazwijmy to hms_in_uc
.
Notatka
W ramach procesu federacyjnego należy skonfigurować lokalizacje zewnętrzne w celu zapewnienia dostępu do danych w magazynie w chmurze. W scenariuszach migracji, w których niektóre obciążenia wysyłają zapytania do danych przy użyciu starszych mechanizmów dostępu, a inne obciążenia wysyłają zapytania do tych samych danych w Unity Catalog, kontrola dostępu zarządzana przez Unity Catalog w lokalizacjach zewnętrznych może uniemożliwić starszym obciążeniom uzyskiwanie dostępu do ścieżek do magazynu z zasobów obliczeniowych wspieranych przez Unity Catalog. Możesz włączyć "tryb awaryjny" w tych zewnętrznych lokalizacjach, aby korzystać z poświadczeń obejmujących klaster lub notebooka, które zostały zdefiniowane dla starszego obciążenia. Następnie po zakończeniu migracji należy wyłączyć tryb rezerwowy. Zobacz Co to jest tryb rezerwowy?.
Aby uzyskać szczegółowe informacje, zobacz Włącz federację bazy danych metastore Hive dla metastore Hive przestrzeni roboczej w wersji starszej.
Krok 2. Uruchom nowe obciążenia robocze w katalogu federacyjnym w ramach Unity Catalog
Jeśli masz katalog federacyjny, możesz udzielić analitykom SQL i konsumentom nauki o danych dostępu do niego i rozpocząć opracowywanie nowych obciążeń, które wskazują na nie. Nowe obciążenia korzystają z dodatkowego zestawu funkcji w Unity Catalog, w tym kontroli dostępu, wyszukiwania i śledzenia pochodzenia.
W tym kroku zazwyczaj są wykonywane następujące czynności:
- Wybierz zgodne z katalogiem Unity przetwarzanie (czyli tryby dostępu jednoosobowy lub wspólny klaster, magazyny danych SQL lub przetwarzanie bezserwerowe). Zobacz wymagania , obsługiwane funkcje i ograniczenia.
- Ustaw katalog federacyjny jako domyślny katalog na zasobie obliczeniowym, lub dodaj
USE CATALOG hms_in_uc
na początku kodu. Ponieważ schematy i nazwy tabel w wykazie federacyjnym są dokładnymi duplikatami tych w magazynie metadanych Hive, kod zacznie odwoływać się do katalogu federacyjnego.
Krok 3. Migrować istniejące zadania, by działały względem wykazu federacyjnego
Aby przeprowadzić migrację istniejących zadań w celu wykonywania zapytań dotyczących wykazu federacyjnego:
- Zmień domyślny wykaz w klastrze zadań na
hms_in_uc
, ustawiając właściwość w samym klastrze lub dodającUSE CATALOG hms_in_uc
w górnej części kodu. - Przełącz zadanie na środowisko obliczeniowe w trybie pojedynczego użytkownika lub dostępu współdzielonego i uaktualnij je do jednej z wersji środowiska Databricks Runtime obsługującej federację magazynu metadanych Hive. Zobacz wymagania , obsługiwane funkcje i ograniczenia.
- Poproś administratora usługi Azure Databricks o przyznanie poprawnych uprawnień Unity Catalog do obiektów danych w
hms_in_uc
oraz do wszelkich ścieżek magazynu w chmurze (zawartych w zewnętrznych lokalizacjach Unity Catalog), do których dostęp ma zadanie. Zobacz Zarządzanie uprawnieniami w katalogu Unity.
Krok 4. Odmowa dostępu do magazynu metadanych Hive
Po przeprowadzeniu migracji wszystkich obciążeń w celu wykonywania zapytań dotyczących wykazu federacyjnego nie potrzebujesz już magazynu metadanych Hive. Możesz użyć starszych kontrolek dostępu do tabel i uprawnień obliczeniowych, aby zablokować bezpośredni dostęp z obszaru roboczego usługi Azure Databricks do magazynu metadanych Hive. Możesz na przykład:
Odwołaj wszystkie uprawnienia do obiektów w katalogu magazynu metadanych Hive.
Polecenie
MSCK REPAIR PRIVILEGES
jest wygodne w tym celu. Zobacz UPRAWNIENIA DO NAPRAWY USŁUGI MSCK i uprawnienia magazynu metadanych Hive oraz zabezpieczane obiekty (starsza wersja).Uniemożliwić użytkownikom tworzenie i używanie klastrów, które pomijają kontrolę dostępu do tabel (klastry, które używają trybu dostępu współdzielonego bez izolacji albo starszego niestandardowego typu klastra) przy użyciu zasad obliczeniowych.
Ustaw katalog federacyjny jako domyślny wykaz obszaru roboczego.
Zobacz Zarządzanie domyślnym katalogiem.
Często zadawane pytania
Poniższe sekcje zawierają bardziej szczegółowe informacje dotyczące federacji metadanych Hive.
Co to jest tryb rezerwowy?
tryb awaryjny to ustawienie w lokalizacjach zewnętrznych, z którego można skorzystać, aby ominąć sprawdzanie uprawnień Unity Catalog podczas migracji do Unity Catalog. Ustawienie zapewnia, że obciążenia, które nie zostały jeszcze zmigrowane, nie będą miały wpływu na fazę instalacji.
Katalog Unity uzyskuje dostęp do magazynu w chmurze za pomocą lokalizacji zewnętrznych, które są obiektami zabezpieczanymi definiującymi ścieżkę i poświadczenie dostępu do twojego konta magazynu w chmurze. Możesz wydać im uprawnienia, takie jak READ FILES
, aby zarządzać, kto może używać ścieżki. Jednym z wyzwań podczas procesu migracji jest to, że Unity Catalog może nie zacząć natychmiast nadzorować całego dostępu do ścieżki, zwłaszcza gdy istniejące, niezmigrowane uruchomienia odwołują się do tej ścieżki.
Tryb rezerwowy umożliwia opóźnienie ścisłego egzekwowania kontroli dostępu Unity Catalog w lokalizacjach zewnętrznych. Gdy tryb awaryjny jest włączony, obciążenia uzyskujące dostęp do ścieżki są najpierw sprawdzane względem uprawnień katalogu Unity. Jeśli nie zostaną spełnione, nastąpi powrót do korzystania z poświadczeń przypisanych do klastra lub notesu, takich jak profile wystąpień lub właściwości konfiguracji Apache Spark. Dzięki temu istniejące obciążenia mogą nadal korzystać z ich bieżącego poświadczenia.
Tryb awaryjny jest przeznaczony tylko do użycia podczas migracji. Należy wyłączyć tę funkcję, gdy wszystkie obciążenia zostaną zmigrowane i będziesz gotowy, aby wymusić kontrolę dostępu do Unity Catalog.
Co to są autoryzowane ścieżki?
Podczas tworzenia katalogu federacyjnego zostaniesz poproszony o podanie autoryzowanych ścieżek do magazynu w chmurze, w którym są przechowywane tabele metadanych Hive. Każda tabela, do której chcesz uzyskać dostęp przy użyciu federacji magazynu metadanych Hive, musi być objęta tymi ścieżkami. Usługa Databricks zaleca, aby autoryzowane ścieżki zawierały ścieżki podrzędne, które są wspólne dla dużej liczby tabel. Jeśli na przykład masz tabele w abfss://container@storageaccount.dfs.core.windows.net/bucket/table1
, ./bucket/table2
i ./bucket/table3
, należy podać abfss://container@storageaccount.dfs.core.windows.net/bucket/
jako autoryzowaną ścieżkę.
Możesz użyć UCX, aby ułatwić identyfikowanie ścieżek znajdujących się w magazynie metadanych Hive.
Autoryzowane ścieżki dodają dodatkową warstwę zabezpieczeń w katalogach federacyjnych, umożliwiając właścicielowi wykazu stosowanie barier zabezpieczających do danych, do których użytkownicy mogą uzyskiwać dostęp za pomocą federacji. Jest to przydatne, jeśli magazyn metadanych Hive umożliwia użytkownikom aktualizowanie metadanych i arbitralne zmienianie lokalizacji tabeli — aktualizacje, które w przeciwnym razie zostaną zsynchronizowane z wykazem federacyjnym. W tym scenariuszu użytkownicy mogą potencjalnie ponownie zdefiniować tabele, do których mają już dostęp, tak aby wskazywały nowe lokalizacje, do których w przeciwnym razie nie mieliby dostępu.
Czy mogę sfederować magazyny metadanych Hive przy użyciu interfejsu UCX?
UCX, projekt Databricks Labs do migrowania obszarów roboczych Azure Databricks do Unity Catalog, obejmuje narzędzia pozwalające na federację metastore'a Hive.
enable-hms-federation
create-federated-catalog
Zobacz plik readme projektu w witrynie GitHub. Aby zapoznać się z wprowadzeniem do UCX, zobacz Skorzystaj z narzędzi UCX, aby zaktualizować swoje środowisko pracy do Unity Catalog.
wymagania, obsługiwane funkcje i ograniczenia
W poniższej tabeli wymieniono usługi i funkcje obsługiwane przez federację magazynu metadanych Hive. W niektórych przypadkach wyświetlane są również nieobsługiwane usługi lub funkcje. W tych tabelach "HMS" oznacza magazyn metadanych Hive.
Kategoria | Obsługiwane | Nieobsługiwany |
---|---|---|
Metamagazyny | - Dziedziczne magazyny metadanych Hive w obszarze roboczym (wewnętrzne w usłudze Databricks) — Zewnętrzne magazyny metadanych w usłudze Apache Hive w wersji 0.13 lub 2.3 przy użyciu programu mySQL |
- Zewnętrzne magazyny metadanych w bazach danych innych niż mySQL - Hive 3.1 |
Operacji | - Internal Databricks HMS: odczyty i zapisy - Zewnętrzny HMS: tylko do odczytu |
|
Zasoby danych magazynu metadanych Hive | - Zarządzane i zewnętrzne tabele w magazynie metadanych Hive -Schematów - Wyświetlenia - Tabele Hive SerDe |
- Funkcje Hive i UDF (funkcje zdefiniowane przez użytkownika) - Definiowanie nowych płytkich klonów w katalogu federacyjnym - Tabele oparte na JDBC — Udostępnione tabele Delta Sharing - Uzyskiwanie dostępu do płytkich klonów zarejestrowanych w magazynie metadanych Hive za pośrednictwem katalogu federacyjnego |
Magazynowanie | — Azure Data Lake Storage Gen2 — Tabele odwołujące się do lokalizacji instalacji systemu plików DBFS, w tym katalog główny systemu plików DBFS - Tabele, których ścieżki nakładają się na inne ścieżki tabeli HMS zdefiniowane w lokalizacjach zewnętrznych |
- Tabele HMS, których ścieżki nakładają się na natywne ścieżki obiektów katalogu Unity - Dostęp do tabel w katalogu głównym systemu plików DBFS lub lokalizacjach instalacji zarejestrowanych w zewnętrznym HMS - Dostęp do tabel w głównej lokalizacji DBFS lub zamontowanych lokalizacjach z dowolnego obszaru roboczego innego niż ten, w którym zdefiniowany jest wewnętrzny HMS. obsługa zapory - dla konta magazynu obszaru roboczego |
Typy obliczeniowe | - Udostępnione klastry - Klastry przydzielone jednemu użytkownikowi - Bezserwerowe (wszystkie) — Magazyny SQL (wszystkie) |
Brak klastrów izolacji |
Wersje obliczeniowe | — Wszystkie kanały SQL usługi Databricks - Wszystkie kanały „Delta Live Tables” — Databricks Runtime 13.3 LTS — Databricks Runtime 14.3 LTS — Środowisko Databricks Runtime 15.1 lub nowsze |
|
Funkcje katalogu Unity | — Model uprawnień Unity Catalog - Filtry wierszy i maski kolumn -Inspekcja - Pochodzenie podrzędne - Wyszukiwanie w tabelach — Dostęp między obszarami roboczymi (z wyjątkiem katalogu głównego i instalacji systemu PLIKÓW DBFS) — Dostęp do danych ograniczony do zdefiniowanych lokalizacji zewnętrznych |
- Delta Sharing - Monitorowanie lakehouse - Wyszukiwanie wektorowe - Tabele online — Niektóre funkcje magazynu cech, w tym tworzenie magazynu cech, tworzenie usługi modelu, tworzenie specyfikacji cech, rejestrowanie modelu i ocenianie wsadowe - Nie można zapisywać zmaterializowanych widoków i tabel strumieniowych Delta Live Tables do katalogu federacyjnego, ale można użyć zasobów federacyjnych jako źródła dla zmaterializowanych widoków i tabel strumieniowych Delta Live Tables. — Automatyczna migracja starszych list ACL tabel do uprawnień Unity Catalog dla katalogu scentralizowanego. UCX może pomóc w tym. |