Povolte federaci Hive metastore pro externí Hive metastore
Důležitý
Tato funkce je ve verzi Public Preview.
Tento článek ukazuje, jak propojit externí metastore Hive, aby vaše organizace mohla pracovat s tabulkami metastoru Hive pomocí Unity Catalog.
Pro přehled o federaci metastoru Hive si přečtěte část Federace metastoru Hive: Povolením katalogu Unity lze řídit tabulky registrované v metastoru Hive.
Než začnete
Projděte si seznam služeb a funkcí podporovaných federací metastoru Hive: Požadavky, podporované funkce a omezení.
Konkrétní požadavky jsou uvedeny pro jednotlivé kroky níže.
Krok 1: Připojení katalogu Unity k externímu metastoru Hive
V tomto kroku vytvoříte připojení, což je objekt katalogu Unity, který je možné zabezpečit a který určuje cestu a přihlašovací údaje pro přístup k databázovému systému, v tomto případě metastore Hive.
Požadavky
Musíte mít následující:
- Uživatelské jméno a heslo, které uděluje přístup k databázovému systému, který je hostitelem metastoru Hive.
- Adresa URL databáze (hostitel a port).
- Název databáze.
- Privilegium
CREATE CONNECTION
v metastoru katalogu Unity. Správci metastoru mají ve výchozím nastavení toto oprávnění.
Vytvoření připojení
K vytvoření připojení můžete použít Průzkumníka katalogu nebo příkaz CREATE CONNECTION
SQL v poznámkovém bloku Azure Databricks nebo editoru dotazů SQL Databricks.
Poznámka
K vytvoření připojení můžete použít také rozhraní REST API Databricks nebo rozhraní příkazového řádku Databricks. Viz POST /api/2.1/unity-catalog/connections a příkazy Unity Catalog.
Průzkumník katalogu
- V pracovním prostoru Azure Databricks klikněte na ikonu katalogu Katalog.
- Na stránce Rychlý přístup klikněte na Přidat data > Přidat připojení.
- Na stránce základy připojení průvodce Nastavení připojení zadejte uživatelsky přívětivý název připojení.
- Vyberte typ připojení pro metastor Hive a typ metastoruexterní.
- (Volitelné) Přidejte komentář.
- Klikněte na Další.
- Na stránce Ověřování zadejte následující údaje pro vaši hostitelskou databázi:
-
Host: například
mysql-demo.lb123.us-west-2.rds.amazonaws.com
-
port: Například
3306
-
uživatel: Například
mysql_user
-
heslo: Například
password123
-
Host: například
- Klikněte na Další.
- Na stránce Podrobnosti o připojení zadejte následující údaje pro vaši hostitelskou databázi:
- verze: Podporované verze metastoru Hive zahrnují verze 0.13 a 2.3.
- Databáze: Název databáze, ke které se připojujete.
- Typ databáze: Například MySQL.
- Klikněte na Vytvořit připojení.
- Na stránce základy katalogu zadejte název cizího katalogu.
- Pro Autorizované cestyzvolte cesty cloudového úložiště, ke kterým lze přistupovat prostřednictvím katalogu. Prostřednictvím federovaného katalogu je možné dotazovat pouze tabulky, které spadají pod tyto cesty. Cesty musí být pokryty externími umístěními. Další informace najdete v tématu Co jsou autorizované cesty?.
- (Volitelné) Pro Umístění úložištězvolte umístění v cloudovém úložišti, kde budou vybraná data uložena pro tabulky v tomto katalogu. Pokud není zadáno, umístění se ve výchozím nastavení nastaví na kořenové umístění metastoru, pokud je k dispozici.
- Klikněte na Vytvořit katalog.
- Na stránce Access vyberte pracovní prostory, ve kterých mají uživatelé přístup k vytvořenému katalogu. Můžete vybrat Všechny pracovní prostory mají přístup, nebo klepněte na Přiřadit k pracovním prostorům, vyberte pracovní prostory a potom klikněte na Přiřadit.
- Přidejte vlastníka, který bude moct spravovat přístup ke všem objektům v katalogu. Začněte psát uživatele nebo skupinu do textového pole a potom ve vrácených výsledcích klikněte na uživatele nebo skupinu.
- Udělte oprávnění v katalogu. Klikněte na Udělit:
- Zadejte Principály, kteří budou mít přístup k objektům v katalogu. Začněte psát uživatele nebo skupinu do textového pole a potom ve vrácených výsledcích klikněte na uživatele nebo skupinu.
- Vyberte předvolby oprávnění , které chcete udělit každému uživateli nebo skupině. Všichni uživatelé účtu mají ve výchozím nastavení udělené
BROWSE
.- V rozevírací nabídce vyberte Čtečka dat a udělte
read
oprávnění k objektům v katalogu. - Z rozbalovacího menu vyberte Datový editor, abyste udělili
read
amodify
oprávnění k objektům v katalogu. - Ručně vyberte oprávnění, která chcete udělit.
- V rozevírací nabídce vyberte Čtečka dat a udělte
- Klikněte na a udělit.
- Klikněte na Další.
- Na stránce Metadata zadejte páry klíč-hodnota tagů. Další informace najdete v tématu Použití značek na zabezpečitelné objekty v Katalogu Unity.
- (Volitelné) Přidejte komentář.
- Klikněte na Uložit.
SQL
V poznámkovém bloku nebo editoru dotazů SQL Databricks spusťte následující příkaz.
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',
);
Zahrňte warehouse_directory
pouze tehdy, pokud nechcete použít výchozí umístění adresáře skladu pro váš metastore Hive.
Doporučujeme používat Azure Databricks tajemství místo prostých textových řetězců pro citlivé hodnoty, jako jsou přihlašovací údaje. Například:
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'
)
Pokud je nutné použít řetězce prostého textu v příkazech SQL poznámkového bloku, vyhněte se zkrácení řetězce tím, že speciální znaky, jako je $
, escapujete pomocí \
. Příklad: \$
.
Informace o nastavení tajných kódů naleznete v tématu Správa tajných kódů.
Krok 2: Vytvoření externích umístění pro data v metastoru Hive
V tomto kroku nakonfigurujete externí umístění v katalogu Unity tak, aby bylo možné řídit přístup k umístěním cloudového úložiště, která obsahují data zaregistrovaná v externím metastoru Hive.
Externí umístění jsou zabezpečitelné objekty katalogu Unity, které přidružují přihlašovací údaje k cestám ke kontejnerům cloudového úložiště. Viz externí umístění a údaje pro přihlášení k úložišti.
Požadavky
Informace o požadavcích na cloudové úložiště a oprávnění Azure Databricks najdete v tématu "Než začnete" v Vytvoření externího umístění pro připojení cloudového úložiště ke službě Azure Databricks.
Možnosti pro vytvoření externího umístění
Proces, který Databricks doporučuje pro vytvoření externího umístění v katalogu Unity, závisí na vaší situaci:
- Pokud federujete metastor Hive, který ukládá data do DBFS připojení, vytvořte externí umístění pomocí Průzkumníka katalogu a použijte možnost Kopírovat z DBFS připojení. Viz Vytvoření externího umístění ručně pomocí Průzkumníka katalogu nebo Vytvoření externího umístění pro data v kořeni DBFS.
- V opačném případě můžete použít Průzkumníka katalogu nebo příkazy SQL. Viz Ruční vytvoření externího umístění pomocí Průzkumníka katalogu nebo Vytvoření externího umístění pomocí SQL.
Povolit záložní režim na externích umístěních
Jakmile vytvoříte externí umístění v Katalogu Unity, přístup k cestě, kterou toto externí umístění zastupuje, řídí oprávnění v Katalogu Unity při spouštění dotazů na výpočetní prostředky s podporou Katalogu Unity (pro jednoho uživatele, sdílené nebo SQL warehouse). To může přerušit stávající úlohy, které nemají správná oprávnění katalogu Unity pro přístup k cestě.
Pokud je externí umístění v záložním režimu, systém nejprve zkontroluje oprávnění katalogu Unity objektu dotazu na dané umístění a pokud se to nepodaří, vrátí se zpět k použití existujících přihlašovacích údajů s oborem clusteru nebo poznámkového bloku, jako jsou profily instancí nebo vlastnosti konfigurace Apache Sparku, aby vaše stávající úlohy nadále běžely bez přerušení.
Režim záložního režimu je užitečný, když provádíte migraci starší zátěže. Po aktualizaci úloh, aby byly úspěšně spuštěny s použitím oprávnění Unity Catalog, byste měli zakázat záložní režim, abyste zabránili použití starších přihlašovacích údajů na úrovni clusteru k obejití správy dat Unity Catalog.
Záložní režim můžete povolit pomocí Průzkumníka katalogu nebo rozhraní REST API pro externí umístění katalogu Unity.
Požadovaná oprávnění: Vlastník externího umístění.
Průzkumník katalogu
- V pracovním prostoru Azure Databricks klikněte na ikonu Katalog .
- Na stránce Rychlý přístup klikněte na Externí data >.
- Vyberte externí umístění, které chcete aktualizovat.
- Zapněte přepínač záložního režimu a kliknutím na Povolit potvrďte.
API
Následující příklady curl ukazují, jak povolit záložní režim při vytváření externího umístění a při aktualizaci existujícího externího umístění.
Vytvoření nového externího umístění:
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
}'
Aktualizace externího umístění:
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: Vytvoření federovaného katalogu
V tomto kroku použijete připojení, které jste vytvořili v kroku 1, k vytvoření federovaného katalogu v katalogu Unity, který odkazuje na externí umístění, které jste vytvořili v kroku 2. Federovaný katalog je typ cizího katalogu, což je zabezpečitelný objekt v katalogu Unity, který zrcadlí databázi nebo katalog v externím datovém systému a umožňuje provádět dotazy na tato data v pracovním prostoru Azure Databricks s přístupem spravovaným katalogem Unity. V tomto případě je zrcadlený katalog vaše data zaregistrovaná v metastoru Hive.
Kdykoli uživatel nebo pracovní postup pracuje s federovaným katalogem, metadata se synchronizují z metastoru Hive.
Požadavky
požadavky na oprávnění:
Vytvoření cizího katalogu:
- Oprávnění
CREATE CATALOG
pro metastore katalogu Unity. - Buď vlastnictví připojení, nebo privilegium
CREATE FOREIGN CATALOG
pro připojení. - Chcete-li zadat přístupové cesty pro externí katalog, musíte mít oprávnění
CREATE FOREIGN SECURABLE
na externím umístění, které tyto cesty obsahuje. Vlastník externího umístění má ve výchozím nastavení toto oprávnění.
Práce se zahraničním katalogem:
- Vlastnictví katalogu nebo
USE CATALOG
Požadavky na výpočetní prostředky:
- Vytvoření katalogu pomocí Průzkumníka katalogu: nevyžaduje se žádné výpočty.
- Vytvoření katalogu pomocí SQL: Databricks Runtime 13.3 LTS nebo vyšší
- Práce s katalogem: sdílený cluster ve službě Databricks Runtime 13.3 LTS, 14.3 LTS, 15.1 nebo novější.
Vytvoření zahraničního katalogu
K vytvoření cizího katalogu můžete použít Průzkumníka katalogu nebo příkaz CREATE FOREIGN CATALOG
SQL v poznámkovém bloku Azure Databricks nebo v editoru dotazů SQL.
Poznámka
Můžete také použít rozhraní API katalogu Unity. Viz Vytvoření katalogu v referenční příručce rozhraní Databricks REST API.
V pracovním prostoru Azure Databricks kliknutím na ikonu katalogu Katalog otevřete Průzkumníka katalogu.
Na stránce Rychlý přístup klikněte na tlačítko Přidat data a vyberte Přidat katalog.
Zadejte název katalogu a vyberte typ katalogu zahraniční .
V rozevíracím seznamu vyberte Připojení, které jste vytvořili v kroku 1.
Do pole Autorizované cesty zadejte cesty k umístěním cloudového úložiště, která jste definovali jako externí umístění v kroku 2. Například
abfss://container@storageaccount.dfs.core.windows.net/demo,abfss://container@storageaccount.dfs.core.windows.net/depts/finance
.Autorizované cesty jsou přidanou vrstvou zabezpečení pouze pro federované katalogy. Viz Co jsou autorizované cesty?.
Klikněte na Vytvořit.
(Volitelné) Kliknutím na Konfigurovat otevřete průvodce, který vás provede udělením oprávnění v katalogu a přidáním značek. Tyto kroky můžete provést i později.
Viz Správa oprávnění v katalogu Unity a Použít značky na zabezpečitelné objekty Unity.
(Volitelné) Vytvořte vazbu katalogu na konkrétní pracovní prostory.
Ve výchozím nastavení je možné katalogy přistupovat z libovolného pracovního prostoru připojeného k metastoru katalogu Unity (omezeno uživatelskými oprávněními). Pokud chcete povolit přístup jenom z konkrétních pracovních prostorů, přejděte na kartu Pracovní prostory a přiřaďte pracovní prostory. Viz Omezení přístupu katalogu ke konkrétním pracovním prostorům.
Vyplňte federovaný katalog metadaty z úložiště metadat Hive.
Kdykoli uživatel nebo pracovní postup pracuje s federovaným katalogem, metadata se synchronizují z metastoru Hive. První interakce naplní katalog v katalogu Unity a zviditelní jeho obsah v uživatelském rozhraní Průzkumníka katalogu. Katalog můžete naplnit výběrem a spuštěním podporovaného výpočetního prostředku v Průzkumníku katalogu. Musíte být vlastníkem katalogu (který jste na základě vytváření katalogu) nebo uživatele s oprávněním
USE CATALOG
.V poznámkovém bloku nebo editoru dotazů SQL spusťte následující příkaz SQL. Položky v závorkách jsou volitelné. Nahraďte zástupné hodnoty:
-
<catalog-name>
: Název katalogu v Azure Databricks. -
<connection-name>
: Název objektu připojení, který jste vytvořili v kroku 1. -
<path1>,<path2>
: Cesty k umístěním cloudového úložiště, která jste definovali jako externí umístění v kroku 2. Napříkladabfss://container@storageaccount.dfs.core.windows.net/demo,abfss://container@storageaccount.dfs.core.windows.net/depts/finance
. Autorizované cesty jsou přidanou vrstvou zabezpečení pouze pro federované katalogy. Viz Co jsou autorizované cesty?.
CREATE FOREIGN CATALOG [IF NOT EXISTS] <catalog-name> USING CONNECTION <connection-name> OPTIONS (authorized_paths '<path1>,<path2>');
Kdykoli uživatel nebo pracovní postup pracuje s federovaným katalogem, metadata se synchronizují z metastoru Hive.
-
Viz také Správa a práce s cizími katalogy.