Udostępnij za pośrednictwem


Obiekty bazy danych w starszym magazynie metadanych Hive

Dokumentacja usługi Azure Databricks koncentruje się na pracy z obiektami danych przy użyciu wykazu aparatu Unity, ale większość instrukcji dotyczy również pracy z obiektami zarejestrowanymi w starszym magazynie metadanych Hive.

Ten artykuł koncentruje się na sposobie pracy z obiektami bazy danych zarejestrowanymi w starszym magazynie metadanych Hive. W szczególności w tym artykule wyjaśniono, gdzie praca z obiektami magazynu metadanych Hive różni się od pracy z obiektami wykazu aparatu Unity. Opisuje również inne zachowania, które mogą być nieoczekiwane.

Usługa Databricks zaleca przeprowadzenie migracji wszystkich danych ze starszego magazynu metadanych Hive do wykazu aparatu Unity. Zobacz Uaktualnianie tabel i widoków programu Hive do wykazu aparatu Unity.

Jak działa nadzór nad danymi magazynu metadanych Hive?

Mimo że obszary robocze usługi Azure Databricks nadal zawierają wbudowany magazyn metadanych Hive, ład danych przy użyciu magazynu metadanych Hive jest przestarzały. Usługa Databricks zaleca korzystanie z wykazu aparatu Unity dla całego ładu danych. Zobacz Praca z wykazem aparatu Unity i starszym magazynem metadanych Hive.

Włączenie obszaru roboczego dla wykazu aparatu Unity nie zmniejsza możliwości pracy z danymi już zarejestrowanymi w magazynie metadanych Hive. Wszystkie obiekty danych zarejestrowane w starszym magazynie metadanych Hive są udostępniane w interfejsach wykazu aparatu Unity w wykazie hive_metastore . Hybrydowy magazyn metadanych Hive i obszar roboczy wykazu aparatu Unity może być przydatnym modelem umożliwiającym przejście długotrwałego obszaru roboczego magazynu metadanych Hive. Jednak zalety zapewniania ładu i wydajności danych w wykazie aparatu Unity są wysokie i należy w pełni przenieść obszary robocze tak szybko, jak to możliwe.

Magazyn metadanych Hive używa kontroli dostępu do tabel (list ACL tabel) do zarządzania dostępem do obiektów bazy danych. Niektóre funkcje obsługi pozostają w przypadku kontroli dostępu do tabel w przypadku korzystania z zasobów obliczeniowych w trybie dostępu współdzielonego. Zobacz Kontrola dostępu do tabel magazynu metadanych Hive (starsza wersja).

Przekazywanie poświadczeń jest przestarzałym wzorcem ładu danych w obiektach bazy danych magazynu metadanych Hive. Ten artykuł nie zawiera adresu przekazywania poświadczeń. Zobacz Przekazywanie poświadczeń (starsza wersja).

Uwaga

W przypadku, gdy ten artykuł odnosi się do kontroli dostępu do danych w magazynie metadanych Hive, odnosi się on do starszej kontroli dostępu do tabel.

Co to jest hive_metastore wykaz?

W obszarze roboczym, który jest włączony dla wykazu aparatu Unity, wszystkie schematy w magazynie metadanych Hive są wyświetlane jako elementy podrzędne hive_metastore wykazu w trójstopniowej przestrzeni nazw wykazu aparatu Unity. Magazyn metadanych Hive nie używa katalogów, a ta konstrukcja zapewnia punkt wejścia do tabel w starszym magazynie metadanych Hive dla użytkowników wykazu aparatu Unity. Użyj następującej składni, aby wykonywać zapytania o tabele w starszym magazynie metadanych Hive:

SELECT * FROM hive_metastore.schema_name.table_name

Uwaga

Opcjonalnie możesz ustawić hive_metastore katalog jako domyślny obszar roboczy w obszarach roboczych z obsługą wykazu aparatu Unity. Zobacz Zarządzanie wykazem domyślnym.

Schematy w magazynie metadanych Hive

W starszym magazynie metadanych Hive schemat jest najwyższym poziomem w hierarchii obiektów danych.

Istnieją pewne istotne różnice między katalogami unity i magazynem metadanych Hive, w tym:

  • Nie można tworzyć schematów w magazynie metadanych Programu Hive przy użyciu Eksploratora wykazu. Uprawnienia do schematów można wyświetlać i edytować.
  • Schematy utworzone w magazynie metadanych Hive mogą używać tylko alfanumerycznych znaków ASCII i podkreśleń w nazwach.
  • Magazyn metadanych Hive umożliwia zadeklarowanie LOCATION elementu dla schematu podczas tworzenia. Ta funkcja działa podobnie do lokalizacji magazynu zarządzanego przez wykaz aparatu Unity z następującymi różnicami behawioralnymi:
    • Jeśli nie podasz lokalizacji, zostanie użyta lokalizacja /user/hive/warehouse/<schema-name> domyślna. Ta lokalizacja znajduje się w katalogu głównym systemu plików DBFS, który nie jest zalecany do przechowywania żadnych danych produkcyjnych.
    • Podana ścieżka może być dowolną lokalizacją magazynu w chmurze dostępną dla użytkownika, która tworzy schemat, w tym identyfikatory URI chmury, główny system plików DBFS i instalacji systemu plików DBFS.
    • Dostęp do lokalizacji nie jest zarządzany przez magazyn metadanych Hive.
    • Usunięcie schematu w magazynie metadanych Hive powoduje ponowne usunięcie wszystkich plików w tej lokalizacji schematu niezależnie od typu tabeli (zarządzanego lub zewnętrznego).

Aby uniknąć przypadkowej utraty danych, usługa Databricks zaleca następujące zalecenia podczas pracy z lokalizacjami schematu magazynu metadanych Hive:

  • Nie przypisuj lokalizacji schematu, która zawiera już dane.
  • Nie twórz tabeli zewnętrznej w lokalizacji schematu.
  • Nie udostępniaj lokalizacji między wieloma schematami.
  • Nie przypisuj lokalizacji schematu, która nakłada się na inną lokalizację schematu. Innymi słowy, nie używaj ścieżki będącej elementem podrzędnym innej lokalizacji schematu.
  • Nie przypisuj lokalizacji schematu, która nakłada się na lokalizację tabeli zewnętrznej.

Zarządzane tabele w magazynie metadanych Hive

Tabele zarządzane w magazynie metadanych Hive nie mają żadnych korzyści z wydajności zarządzanych tabel w wykazie aparatu Unity. Podobnie jak tabele zarządzane w wykazie aparatu Unity, tabele zarządzane magazynu metadanych Hive domyślnie używają usługi Delta Lake. Jednak w magazynie metadanych Hive, w przeciwieństwie do wykazu aparatu Unity, można również utworzyć zarządzaną tabelę przy użyciu większości innych formatów danych obsługiwanych przez usługę Azure Databricks.

Tabele zarządzane w magazynie metadanych Hive są zawsze tworzone w lokalizacji magazynu zawierającego schemat. Obliczenia używane do wykonywania zapytań względem tabeli zarządzanej muszą mieć dostęp do lokalizacji magazynu.

Magazyn metadanych Programu Hive nie zarządza układem danych zarządzanych tabel tak, jak robi to wykaz aparatu Unity. Po usunięciu tabeli zarządzanej w magazynie metadanych Programu Hive wszystkie bazowe pliki danych zostaną natychmiast usunięte. Z drugiej strony w wykazie aparatu Unity można zarządzać UNDROP tabelą przez 7 dni, a dane są trwale usuwane w ciągu 30 dni.

Dostęp oparty na ścieżkach umożliwia odczytywanie lub zapisywanie danych w tabelach zarządzanych magazynu metadanych Hive, podczas gdy w wykazie aparatu Unity nie możesz i nie musisz tego robić.

Tabele zewnętrzne w magazynie metadanych Hive

Większość tabel utworzonych w usłudze Azure Databricks przed wprowadzeniem wykazu aparatu Unity została skonfigurowana jako tabele zewnętrzne w magazynie metadanych Hive. Starsze zalecenia, które preferują tabele zewnętrzne, zwykle koncentrują się na kilku kluczowych aspektach:

  • Możesz zarejestrować tabelę zewnętrzną na podstawie istniejących danych w magazynie obiektów w chmurze.
  • Możesz uzyskać bezpośredni dostęp do plików danych w tabelach zewnętrznych z systemów zewnętrznych w celu odczytu lub zapisu.
  • Pliki danych nie zostały usunięte, jeśli tabela została przypadkowo porzucona.
  • Ponieważ tabele zewnętrzne wymagają LOCATION, dane produkcyjne były mniej prawdopodobne, aby przypadkowo trafić do katalogu głównego systemu plików DBFS.

Usługa Azure Databricks zaleca teraz tabele zarządzane przez wykaz aparatu Unity dla większości magazynów danych tabelarycznych. Zobacz Praca z tabelami zarządzanymi.

Widoki w magazynie metadanych Hive

Widok można zadeklarować w magazynie metadanych Hive wspieranym przez dowolne źródło danych obsługiwane przez usługę Azure Databricks. W wykazie aparatu Unity można deklarować widoki tylko względem tabel i widoków wykazu aparatu Unity, w tym tabel obcych, zmaterializowanych widoków i tabel udostępniania różnicowego.

Ze względu na możliwość deklarowania widoków względem źródeł danych innych niż tabelaryczne widoki w magazynie metadanych Hive mogą udzielić nieoczekiwanego lub niezamierzonego dostępu do danych w połączeniu z innymi konfiguracjami dostępu w środowisku użytkownika.

Rozważmy na przykład następujące kwestie:

  • Tabela my_table jest definiowana przy użyciu ścieżki /mnt/my_tableinstalacji systemu plików DBFS .
    • Poświadczenia instalacji systemu DBFS są przechowywane w obszarze roboczym, więc wszyscy użytkownicy mają domyślnie dostęp do tej ścieżki.
  • Listy ACL tabel służą do ograniczania dostępu do my_table grupy użytkowników.
    • Starsze listy ACL tabel mają zastosowanie tylko w przypadku obliczeń w trybie dostępu współdzielonego lub w magazynach SQL.
  • Widok my_view jest definiowany bezpośrednio względem identyfikatora URI chmury, który wspiera te same pliki 'abfss://container-name@storage-account-name.dfs.core.windows.net/my_table'danych .
    • Poświadczenia identyfikatora URI opierają się na zasadach dostępu zdefiniowanych w sesji platformy Spark lub konfiguracji obliczeniowej.

Widok my_view ma następujące właściwości:

  • Nie używa poświadczeń instalacji systemu plików DBFS używanych do instalowania magazynu obiektów w chmurze w programie /mnt/my_table.
  • Nie uwzględnia list ACL tabeli ustawionych na my_table, niezależnie od konfiguracji obliczeniowych.
  • Wymaga to zasad dostępu do danych skonfigurowanych dla zasobów obliczeniowych, które zapewniają dostęp do odczytu do 'abfss://container-name@storage-account-name.dfs.core.windows.net/my_table'programu .

Uwaga

Jest to jeden z przykładów nieoczekiwanego zachowania, które można napotkać, a nie kompleksowych wszystkich potencjalnych pułapek przedstawionych przez widoki w starszym magazynie metadanych Hive. Usługa Databricks zaleca używanie wykazu aparatu Unity dla wszystkich definicji widoku.

Starsze tabele hive i obsługa technologii HiveQL

Usługa Azure Databricks obejmuje starszą obsługę tabel Hive i funkcji HiveQL. Ta funkcja jest pozostałością wczesnych wersji usługi Azure Databricks i ekosystemu narzędzi Apache Hadoop. Usługa Databricks nie zaleca używania tabel programu Hive ani innych funkcji programu Hive, ponieważ ta funkcja nie jest zoptymalizowana i nie obsługuje niektórych konfiguracji obliczeniowych.

W poniższych artykułach opisano starsze funkcje programu Hive: