Databázové objekty ve starším metastoru Hive

Dokumentace k Azure Databricks se zaměřuje na práci s datovými objekty pomocí katalogu Unity, ale většina pokynů se vztahuje také na práci s objekty zaregistrovanými ve starším metastoru Hive.

Tento článek se zaměřuje na práci s databázovými objekty zaregistrovanými ve starším metastoru Hive. Konkrétně tento článek popisuje, kde se práce s objekty metastoru Hive liší od práce s objekty katalogu Unity. Popisuje také další chování, která mohou být neočekávaná.

Databricks doporučuje migrovat všechna data ze starší verze metastoru Hive do katalogu Unity. Viz Upgrade tabulek a zobrazení Hive na katalog Unity.

Jak funguje správa dat v metastore systému Hive?

I když pracovní prostory Azure Databricks nadále zahrnují integrovaný metastore Hive, zásady správného řízení dat pomocí metastoru Hive jsou zastaralé. Databricks doporučuje používat Katalog Unity pro všechny zásady správného řízení dat. Podívejte se na Práce se starší verzí metastoru Hive v kombinaci s katalogem Unity.

Povolení pracovního prostoru pro katalog Unity nezmenšuje vaši schopnost pracovat s daty, která jsou už zaregistrovaná v metastoru Hive. Všechny datové objekty zaregistrované ve starším úložišti metadat Hive se zobrazují v rozhraních služby Unity Catalog v katalogu hive_metastore. Pracovní prostor s hybridním Hive metastore a Unity Catalogem může být užitečným modelem při přechodu stávajícího pracovního prostoru Hive metastore. Nicméně výhody Unity Catalog z hlediska správy dat a výkonu jsou značné a své pracovní prostory byste měli na tuto službu plně převést co nejdříve.

Úložiště metadat Hive používá řízení přístupu k tabulkám (ACL tabulek) ke správě přístupu k databázovým objektům. Některá podpora zůstává pro řízení přístupu k tabulce při použití výpočetních prostředků ve standardním režimu přístupu. Viz Kontrola přístupu k tabulce Hive metastore (starší verze).

Předávání přihlašovacích údajů je zastaralý postup pro správu dat pro databázové objekty v metastoru Hive. Tento článek neřeší předávání přihlašovacích údajů. Viz předávání přihlašovacích údajů (starší verze).

Poznámka:

Kde tento článek odkazuje na řízení přístupu k datům v metastoru Hive, odkazuje na starší verzi řízení přístupu k tabulce.

Co je hive_metastore katalog?

V pracovním prostoru, ve kterém je povolen Unity Catalog, se všechna schémata v metastore Hive zobrazují jako podřízené položky katalogu hive_metastore v tříúrovňovém oboru názvů Unity Catalog. Metastore Hive ve skutečnosti nepoužívá katalogy a tento konstruktor poskytuje vstupní bod k tabulkám ve starším metastoru Hive pro uživatele katalogu Unity. K dotazování tabulek ve starší verzi metastoru Hive použijte následující syntaxi:

SELECT * FROM hive_metastore.schema_name.table_name

Poznámka:

Volitelně můžete katalog hive_metastore nastavit jako výchozí katalog pracovního prostoru v pracovních prostorech s povoleným Unity Catalogem. Viz Spravujte výchozí katalog.

Schémata v úložišti metadat Hive

Ve starším metastoru Hive je schéma nejvyšší úrovní v hierarchii datových objektů.

Existuje několik důležitých rozdílů mezi katalogem Unity a metastorem Hive, včetně následujících:

  • V metastoru Hive nelze vytvářet schémata pomocí Průzkumníka katalogu. Můžete zobrazit a upravit oprávnění pro schémata.
  • Schémata vytvořená v metastoru Hive můžou používat pouze alfanumerické znaky ASCII a podtržítka v jejich názvech.
  • Úložiště metadat Hive umožňuje při vytváření schématu deklarovat pro něj LOCATION. To funguje obdobně jako spravovaná úložiště v Unity Catalogu, s těmito rozdíly v chování:
    • Pokud umístění nezadáte, použije se výchozí umístění /user/hive/warehouse/<schema-name> . Toto umístění se nachází v kořenovém adresáři DBFS, kam se nedoporučuje ukládat žádná produkční data.
    • Zadanou cestou může být libovolné umístění cloudového úložiště dostupné uživateli, který vytvoří schéma, včetně identifikátorů URI cloudu, kořenového adresáře DBFS a připojení DBFS.
    • Přístup k umístění není spravován službou Hive Metastore.
    • Odstranění schématu v metastoru Hive způsobí, že se všechny soubory v tomto umístění schématu odstraní rekurzivně bez ohledu na typ tabulky (spravovaný nebo externí).

Aby nedošlo k náhodné ztrátě dat, databricks doporučuje při práci s umístěními schématu metastoru Hive následující:

  • Nepřiřazujte umístění pro schéma, které už obsahuje data.
  • Nevytvávejte externí tabulku ve schématu.
  • Nesdílejte umístění mezi více schématy.
  • Nepřiřaďte umístění schématu, které překrývá jiné umístění schématu. Jinými slovy nepoužívejte cestu, která je podřízeným umístěním jiného schématu.
  • Nepřiřaďte umístění schématu, které překrývá umístění externí tabulky.

Spravované tabulky v metastoru Hive

Spravované tabulky v metastoru Hive nemají žádné výhody výkonu spravovaných tabulek v katalogu Unity. Podobně jako spravované tabulky katalogu Unity používají spravované tabulky Metastoru Hive ve výchozím nastavení Delta Lake. V metastoru Hive na rozdíl od katalogu Unity ale můžete také vytvořit spravovanou tabulku pomocí většiny dalších formátů dat podporovaných službou Azure Databricks.

Spravované tabulky v metastoru Hive se vždy vytvářejí v umístění úložiště obsahujícího schématu. Výpočetní prostředky, které použijete k dotazování spravované tabulky, musí mít přístup k umístění úložiště.

Metastore Hive nespravuje rozložení dat spravovaných tabulek tak, jak to dělá Katalog Unity. Když odstraníte spravovanou tabulku v metastoru Hive, odstraní se okamžitě všechny podkladové datové soubory. V katalogu Unity můžete UNDROP na druhou stranu spravovanou tabulku po dobu 7 dnů odstranit a data se trvale odstraní do 30 dnů.

Ke čtení nebo zápisu dat ve spravovaných tabulkách v metastore Hive můžete použít přístup pomocí cesty, zatímco v Unity Catalog to není možné ani nutné.

Externí tabulky v úložišti metadat Hive

Většina tabulek vytvořených v Azure Databricks před zavedením katalogu Unity byla nakonfigurovaná jako externí tabulky v metastoru Hive. Starší doporučení, která upřednostňují externí tabulky, se obvykle zaměřují na několik klíčových aspektů:

  • Můžete zaregistrovat externí tabulku nad existujícími daty v cloudovém úložišti objektů.
  • K datovým souborům v externích tabulkách můžete přistupovat přímo z externích systémů pro čtení nebo zápisy.
  • Datové soubory nebyly odstraněny, pokud byla tabulka omylem zrušena.
  • Protože externí tabulky vyžadují LOCATION, byla menší pravděpodobnost, že produkční data omylem skončí v kořenovém adresáři DBFS.

Azure Databricks teď doporučuje tabulky spravované službou Unity Catalog pro většinu tabulkových úložišť dat. Viz tabulky spravované službou Unity Catalog pro Delta Lake a Apache Iceberg.

Zobrazení v metastoru Hive

Zobrazení v metastoru Hive můžete deklarovat na základě libovolného zdroje dat podporovaného službou Azure Databricks. V Unity Catalog můžete definovat zobrazení pouze nad tabulkami a zobrazeními Unity Catalog, včetně cizích tabulek, materializovaných zobrazení a tabulek OpenSharing.

Z důvodu možnosti deklarovat zobrazení proti ne tabulkovým zdrojům dat může zobrazení v metastoru Hive udělit neočekávaný nebo nezamýšlený přístup k datům v kombinaci s jinými konfiguracemi přístupu v uživatelském prostředí.

Představte si například následující:

  • Tabulka my_table je definována pomocí přípojné cesty DBFS /mnt/my_table.
    • Přihlašovací údaje pro připojení DBFS jsou uložené v pracovním prostoru, takže všichni uživatelé mají přístup k této cestě ve výchozím nastavení.
  • Seznamy ACL tabulek se používají k omezení přístupu k my_table na skupinu uživatelů.
    • Seznamy ACL starších tabulek se vztahují pouze na výpočetní funkce, které jsou konfigurované se standardním režimem přístupu nebo službami SQL Warehouse.
  • Zobrazení my_view je definováno přímo nad cloudovým identifikátorem URI odkazujícím na stejné datové soubory 'abfss://container-name@storage-account-name.dfs.core.windows.net/my_table'.
    • Přihlašovací údaje URI jsou založeny na zásadách přístupu definovaných v relaci Spark nebo ve výpočetní konfiguraci.

my_view Zobrazení má následující vlastnosti:

  • Nepoužívá přihlašovací údaje pro připojení DBFS použité k připojení cloudového úložiště objektů do /mnt/my_table.
  • Nerespektuje seznamy ACL nastavené pro tabulku na objektu my_table, bez ohledu na konfigurace výpočtu.
  • Vyžaduje zásadu přístupu k datům nakonfigurovanou pro výpočetní prostředí, která poskytuje oprávnění ke čtení pro 'abfss://container-name@storage-account-name.dfs.core.windows.net/my_table'.

Poznámka:

Toto je jen jeden příklad neočekávaného chování, se kterým se můžete setkat, a nejde o úplný přehled všech možných úskalí spojených s pohledy ve starším úložišti metadat Hive. Databricks doporučuje používat katalog Unity pro všechny definice zobrazení.

Podpora starších tabulek Hive a HiveQL

Azure Databricks obsahuje starší verzi podpory pro tabulky Hive a funkce HiveQL. Tato funkce je zbytkem dřívějších verzí Azure Databricks a ekosystému nástrojů Apache Hadoop. Databricks nedoporučuje používat tabulky Hive ani jiné funkce Hive, protože tato funkce není optimalizovaná a nemá podporu v některých konfiguracích výpočetních prostředků.

Následující články popisují starší funkce Hivu: