Włącz federację magazynu metadanych Hive dla zewnętrznego magazynu metadanych Hive
Ważny
Ta funkcja jest dostępna w publicznej wersji zapoznawczej.
W tym artykule pokazano, jak zintegrować zewnętrzny magazyn metadanych Hive, aby organizacja mogła pracować z tabelami tego magazynu przy użyciu Unity Catalog.
Aby zapoznać się z przeglądem federacji metastore Hive, zobacz Federacja metastore Hive: włączenie katalogu Unity w celu zarządzania tabelami zarejestrowanymi w metastore Hive.
Przed rozpoczęciem
Przejrzyj listę usług i funkcji obsługiwanych przez federację magazynu metadanych Hive: Wymagania, obsługiwane funkcje i ograniczenia.
Konkretne wymagania są wymienione dla każdego z poniższych kroków.
Krok 1: Połącz Unity Catalog z zewnętrznym repozytorium metadanych Hive
W tym kroku utworzysz połączenie , obiekt zabezpieczalny w wykazie Unity Catalog, który określa ścieżkę oraz poświadczenia potrzebne do dostępu do systemu bazodanowego, w tym przypadku magazyn metadanych Hive.
Wymagania
Musisz mieć następujące elementy:
- Nazwa użytkownika i hasło, które udziela dostępu do systemu bazy danych, który hostuje magazyn metadanych Hive.
- Adres URL bazy danych (host i port).
- Nazwa bazy danych.
- Uprawnienie
CREATE CONNECTION
w repozytorium metadanych Unity Catalog. Administratorzy magazynu metadanych mają domyślnie te uprawnienia.
Tworzenie połączenia
Aby utworzyć połączenie, możesz użyć Eksploratora wykazu lub polecenia CREATE CONNECTION
SQL w notesie usługi Azure Databricks lub edytorze zapytań SQL usługi Databricks.
Notatka
Do utworzenia połączenia można również użyć interfejsu API REST usługi Databricks lub interfejsu wiersza polecenia usługi Databricks. Zapoznaj się z POST /api/2.1/unity-catalog/connections oraz polecenia Unity Catalog.
Eksplorator wykazu
W przestrzeni roboczej Azure Databricks kliknij ikonę katalogu Catalog.
Na stronie Szybki dostęp kliknij pozycję Dodaj dane > Dodaj połączenie.
Wprowadź przyjazną dla użytkownika nazwę połączenia .
Wybierz typ połączenia magazynu metadanych Hive i typ magazynu metadanych zewnętrznej.
Wprowadź następujące właściwości Authentication dla bazy danych hosta.
-
host: na przykład
mysql-demo.lb123.us-west-2.rds.amazonaws.com
-
port: na przykład
3306
-
użytkownik: na przykład
mysql_user
-
hasło: na przykład
password123
-
host: na przykład
Wprowadź następujące szczegóły połączenia dla bazy danych hosta.
- Wersja: Obsługiwane wersje magazynu metadanych Hive to między innymi wersje 0.13 i 2.3.
- Database: nazwa bazy danych, z którą nawiązujesz połączenie.
- Typ bazy danych: na przykład MySQL.
(Opcjonalnie) Dodaj komentarz.
Jest to konieczne tylko wtedy, gdy nie chcesz używać lokalizacji domyślnej.
Kliknij Utwórz.
SQL
Uruchom następujące polecenie w notesie lub edytorze zapytań SQL usługi 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',
);
Uwzględnij warehouse_directory
tylko wtedy, gdy nie chcesz używać domyślnej lokalizacji katalogu magazynu Hive dla magazynu metadanych Hive.
Zalecamy używanie sekretów Azure Databricks zamiast ciągów w postaci czystego tekstu dla poufnych wartości, takich jak poświadczenia. Na przykład:
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'
)
Jeśli musisz używać ciągów w postaci zwykłego tekstu w poleceniach SQL notesu, unikaj obcinania ciągu przez ucieczkę znaków specjalnych, takich jak $
z \
. Na przykład: \$
.
Aby uzyskać informacje dotyczące konfigurowania tajemnic, zobacz Zarządzanie tajemnicami.
Krok 2. Tworzenie lokalizacji zewnętrznych dla danych w magazynie metadanych Hive
W tym kroku skonfigurujesz lokalizację zewnętrzną w Unity Catalog, aby zarządzać dostępem do lokalizacji magazynu w chmurze, które przechowują dane zarejestrowane w zewnętrznym metastore Hive.
Zewnętrzne lokalizacje w chmurze to zabezpieczalne obiekty Katalogu Unity, które kojarzą poświadczenia dostępu do magazynu ze ścieżkami kontenerów magazynowania w chmurze. Zobacz Lokalizacje zewnętrzne i poświadczenia magazynu.
Wymagania
Aby uzyskać informacje o wymaganiach dotyczących uprawnień magazynu w chmurze i usługi Azure Databricks, zobacz "Przed rozpoczęciem" w Tworzenie lokalizacji zewnętrznej w celu połączenia magazynu w chmurze z usługą Azure Databricks.
Opcje tworzenia lokalizacji zewnętrznej
Databricks zaleca proces tworzenia lokalizacji zewnętrznej w katalogu Unity, który zależy od sytuacji:
- Jeśli sfederujesz magazyn metadanych Programu Hive, który przechowuje dane w punktach montowania DBFS, utwórz lokalizację zewnętrzną przy użyciu Eksploratora katalogów i użyj opcji Kopiuj z punktu montowania DBFS. Zobacz Ręczne tworzenie lokalizacji zewnętrznej przy użyciu Eksploratora katalogu lub Tworzenie lokalizacji zewnętrznej dla danych w głównym katalogu systemu plików DBFS.
- W przeciwnym razie możesz użyć Eksploratora wykazu lub poleceń SQL. Zobacz Ręczne tworzenie lokalizacji zewnętrznej przy użyciu eksploratora wykazu lub Tworzenie lokalizacji zewnętrznej przy użyciu programu SQL.
Włącz tryb rezerwowy w lokalizacjach zewnętrznych
Gdy tylko utworzysz lokalizację zewnętrzną w katalogu aparatu Unity, dostęp do ścieżki reprezentowanej przez tę lokalizację zewnętrzną jest wymuszany przez uprawnienia wykazu aparatu Unity podczas uruchamiania zapytań dotyczących zasobów obliczeniowych z obsługą wykazu aparatu Unity (pojedynczego użytkownika, udostępnionego lubusługi SQL Warehouse). Może to przerwać istniejące obciążenia robocze, które nie mają odpowiednich uprawnień Katalogu Unity, aby uzyskać dostęp do tej ścieżki.
Gdy lokalizacja zewnętrzna jest w trybie rezerwowym, system najpierw sprawdza uprawnienia Katalogu Unity zapytującego podmiotu na tej lokalizacji, a jeśli to nie powiedzie się, przechodzi na używanie istniejących poświadczeń o zakresie klastra lub notesu, takich jak profile wystąpień lub właściwości konfiguracji Apache Spark, aby zapewnić nieprzerwane działanie istniejących obciążeń.
Tryb rezerwowy jest wygodny, gdy przeprowadzasz migrację starszych zadań. Po zaktualizowaniu obciążeń tak, aby działały pomyślnie przy użyciu uprawnień Unity Catalog, należy wyłączyć tryb rezerwowy, aby uniemożliwić użycie starszych poświadczeń w zakresie klastra do omijania zarządzania danymi w Unity Catalog.
Tryb awaryjny można włączyć przy użyciu Eksploratora Katalogu lub zewnętrznych lokalizacji Unity Catalog REST API.
Uprawnienia wymagane: właściciel lokalizacji zewnętrznej.
Eksplorator wykazu
- W obszarze roboczym usługi Azure Databricks kliknij ikonę katalogu Catalog.
- Na stronie Szybki dostęp kliknij Dane zewnętrzne >.
- Wybierz lokalizację zewnętrzną, którą chcesz zaktualizować.
- Włącz tryb rezerwowy, przesuwając przełącznik , a następnie kliknij Włącz, aby potwierdzić.
API
W poniższych przykładach programu curl pokazano, jak włączyć tryb rezerwowy podczas tworzenia lokalizacji zewnętrznej i aktualizowania istniejącej lokalizacji zewnętrznej.
Tworzenie nowej lokalizacji zewnętrznej:
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
}'
Aktualizowanie lokalizacji zewnętrznej:
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
}'
Krok 3. Tworzenie wykazu federacyjnego
W tym kroku użyjesz połączenia, które utworzyłeś w Kroku 1, aby utworzyć wykaz federacyjny w katalogu Unity, wskazujący na lokalizację zewnętrzną utworzoną w Kroku 2. Wykaz federacyjny to typ katalogu obcego, który jest zabezpieczonym obiektem w Unity Catalog, odzwierciedlającym bazę danych lub katalog w zewnętrznym systemie danych, umożliwiającym wykonywanie zapytań dotyczących tych danych w obszarze roboczym usługi Azure Databricks, z dostępem zarządzanym przez Unity Catalog. W tym przypadku zmirrorowany katalog to twoje dane zarejestrowane w metastore Hive.
Za każdym razem, gdy użytkownik lub przepływ pracy współdziała z wykazem federacyjnym, metadane są synchronizowane z magazynu metadanych Hive.
wymagania dotyczące
wymagania dotyczące uprawnień:
Aby utworzyć katalog obcy:
- Uprawnienia
CREATE CATALOG
w metastore katalogu Unity. - Własność połączenia lub uprawnienia
CREATE FOREIGN CATALOG
na połączeniu. - Aby wprowadzić autoryzowane ścieżki dla katalogu zewnętrznego, musisz mieć uprawnienia
CREATE FOREIGN SECURABLE
w lokalizacji zewnętrznej obejmującej te ścieżki. Domyślnie właściciel lokalizacji zewnętrznej ma to uprawnienie.
Aby korzystać z katalogu zagranicznego:
- Własność katalogu lub
USE CATALOG
wymagania dotyczące obliczeń:
- Aby utworzyć wykaz przy użyciu Eksploratora wykazu: nie jest wymagane przetwarzanie.
- Aby utworzyć katalog przy użyciu programu SQL: Databricks Runtime 13.3 LTS lub nowszego.
- Aby można było używać katalogu: udostępniony klaster w środowisku Databricks Runtime 13.3 LTS, 14.3 LTS, 15.1 lub nowszym.
Utwórz katalog zagraniczny
Aby utworzyć wykaz obcy, możesz użyć Eksploratora wykazu lub polecenia CREATE FOREIGN CATALOG
SQL w notesie usługi Azure Databricks lub edytorze zapytań SQL.
Notatka
Możesz również użyć interfejsu API katalogu Unity. Zobacz Tworzenie katalogu w dokumentacji interfejsu API REST usługi Databricks.
W obszarze roboczym usługi Azure Databricks kliknij ikonę katalogu katalog, aby otworzyć Eksploratora Katalogu.
Na stronie Szybki dostęp kliknij przycisk Dodaj dane i wybierz pozycję Dodaj katalog .
Wprowadź nazwę katalogu
i wybierz katalog typu obcych . Z listy rozwijanej wybierz utworzone w kroku 1 połączenie .
W polu Autoryzowane ścieżki wprowadź ścieżki do lokalizacji przechowywania w chmurze zdefiniowanych jako lokalizacje zewnętrzne w kroku 2. Na przykład
abfss://container@storageaccount.dfs.core.windows.net/demo,abfss://container@storageaccount.dfs.core.windows.net/depts/finance
.Autoryzowane ścieżki to dodatkowa warstwa zabezpieczeń tylko dla katalogów federacyjnych. Zobacz Co to są autoryzowane ścieżki?.
Kliknij pozycję Utwórz.
(Opcjonalnie) Kliknij przycisk Konfiguruj, aby otworzyć kreatora, który poprowadzi Cię przez proces udzielania uprawnień do katalogu i dodawania tagów. Te kroki można również wykonać później.
Zobacz Zarządzanie uprawnieniami w katalogu Unity i Tagowanie zabezpieczanych obiektów w katalogu Unity.
(Opcjonalnie) Powiąż katalog z określonymi obszarami roboczymi.
Z domyślnych ustawień katalogi można przeglądać z dowolnego obszaru roboczego połączonego z metasklepem Unity Catalog, z zastrzeżeniem ograniczeń wynikających z uprawnień użytkownika. Jeśli chcesz zezwolić na dostęp tylko z określonych obszarów roboczych, przejdź do karty obszarów roboczych
i przypisz obszary robocze. Zobacz Ograniczanie dostępu katalogu do określonych obszarów roboczych. Wypełnij wykaz federacyjny metadanymi magazynu metadanych Hive.
Za każdym razem, gdy użytkownik lub przepływ pracy współdziała z wykazem federacyjnym, metadane są synchronizowane z magazynu metadanych Hive. Pierwsza interakcja wypełnia katalog w Unity Catalog i sprawia, że jego zawartość jest widoczna w interfejsie użytkownika Catalog Explorer. Możesz wypełnić katalog, wybierając i uruchamiając obsługiwany zasób obliczeniowy w Eksploratorze Katalogu. Musisz być właścicielem katalogu (co wynika z jego utworzenia) lub użytkownikiem z uprawnieniami
USE CATALOG
.Uruchom następujące polecenie SQL w notesie lub edytorze zapytań SQL. Elementy umieszczone w nawiasach kwadratowych są opcjonalne. Zastąp wartości symboli zastępczych:
-
<catalog-name>
: nazwa wykazu w usłudze Azure Databricks. -
<connection-name>
: nazwa obiektu połączenia utworzonego w kroku 1. -
<path1>,<path2>
: Ścieżki do lokalizacji magazynu w chmurze, które zdefiniowałeś jako lokalizacje zewnętrzne w kroku 2. Na przykładabfss://container@storageaccount.dfs.core.windows.net/demo,abfss://container@storageaccount.dfs.core.windows.net/depts/finance
. Autoryzowane ścieżki to dodatkowa warstwa zabezpieczeń tylko dla katalogów federacyjnych. Zobacz Co to są autoryzowane ścieżki?.
CREATE FOREIGN CATALOG [IF NOT EXISTS] <catalog-name> USING CONNECTION <connection-name> OPTIONS (authorized_paths '<path1>,<path2>');
Za każdym razem, gdy użytkownik lub przepływ pracy współdziała z wykazem federacyjnym, metadane są synchronizowane z magazynu metadanych Hive.
-
Zobacz również Zarządzanie katalogami obcymi i praca z nimi.