Udostępnij za pośrednictwem


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

  1. W przestrzeni roboczej Azure Databricks kliknij ikonę katalogu Catalog.

  2. Na stronie Szybki dostęp kliknij pozycję Dodaj dane > Dodaj połączenie.

  3. Wprowadź przyjazną dla użytkownika nazwę połączenia .

  4. Wybierz typ połączenia magazynu metadanych Hive i typ magazynu metadanych zewnętrznej.

  5. 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
  6. 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.
  7. (Opcjonalnie) Dodaj komentarz.

    Jest to konieczne tylko wtedy, gdy nie chcesz używać lokalizacji domyślnej.

  8. 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:

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

  1. W obszarze roboczym usługi Azure Databricks kliknij ikonę katalogu Catalog.
  2. Na stronie Szybki dostęp kliknij Dane zewnętrzne >.
  3. Wybierz lokalizację zewnętrzną, którą chcesz zaktualizować.
  4. 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.

  1. W obszarze roboczym usługi Azure Databricks kliknij ikonę katalogu katalog, aby otworzyć Eksploratora Katalogu.

  2. Na stronie Szybki dostęp kliknij przycisk Dodaj dane i wybierz pozycję Dodaj katalog .

  3. Wprowadź nazwę katalogu i wybierz katalog typu obcych.

  4. Z listy rozwijanej wybierz utworzone w kroku 1 połączenie .

  5. 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?.

  6. Kliknij pozycję Utwórz.

  7. (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.

  8. (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.

  9. 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ł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?.
    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.