Sdílet prostřednictvím


Povolte federaci Hive metastore pro externí Hive metastore

Důležitý

Tato funkce je ve verzi Public Preview.

Tento článek ukazuje, jak federovat 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í katalogu Unity pro správu tabulek registrovaných 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í k, objektu Unity Catalog, který lze zabezpečit a který určuje cestu a přihlašovací údaje pro přístup do databázového systému, v tomto případě vašeho 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.
  • Oprávnění CREATE CONNECTION na úložiště metadat 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. Vizte POST /api/2.1/unity-catalog/connections a příkazy katalogu Unity.

Průzkumník katalogu

  1. V pracovním prostoru Azure Databricks klikněte na ikonu Katalog .

  2. Na stránce Rychlý přístup klikněte na Přidat data > Přidat připojení.

  3. Zadejte uživatelsky přívětivý název připojení.

  4. Vyberte typ Připojení metastoru Hive a typ metastoru Externí.

  5. Zadejte následující vlastnosti Ověřování 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
  6. Zadejte následující detaily připojení pro vaši hostující 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.
  7. (Volitelné) Přidejte komentář.

    Potřebujete to jenom v případě, že nechcete používat výchozí umístění.

  8. Klikněte na Vytvoř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ého textu 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é spojují přístupové údaje úložiště s cestami ke kontejnerům cloudového úložiště. Podívejte se na externí umístění a přihlašovací údaje 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:

Povolit záložní režim na externích umístěních

Jakmile vytvoříte externí umístění v Unity Catalog, bude přístup k cestě reprezentované tímto externím umístěním uplatněn oprávněními Unity Catalog při spouštění dotazů na výpočetních prostředcích s podporou Unity Catalog (jednoho uživatele, sdíleného 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 pro dotazující se subjekt na daném umístění, a pokud se to nezdaří, vrátí se k využití stávajících přihlašovacích údajů platných pro konkrétní cluster nebo poznámkový blok, jako jsou instance profilů nebo konfigurace vlastností Apache Sparku, aby vaše stávající úlohy mohly nadále běžet 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. Jakmile máte úlohy aktualizovány tak, aby se úspěšně spouštěly pomocí oprávnění Unity Catalog, měli byste vypnout záložní režim, abyste zabránili použití starších přihlašovacích údajů ve specifických oborech clusterů k obejití správy dat v 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

  1. V pracovním prostoru Azure Databricks klikněte na ikonu katalogu Katalog.
  2. Na stránce Rychlý přístup klikněte na Externí data >.
  3. Vyberte externí umístění, které chcete aktualizovat.
  4. 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ě jsou vaše data zrcadlena v katalogu zaregistrovaném v Hive metastore.

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:

  • Privilegium CREATE CATALOG na vašem metastore katalogu Unity.
  • Buď vlastnictví připojení, nebo privilegium CREATE FOREIGN CATALOG pro připojení.
  • Chcete-li zadat autorizované cesty pro externí katalog, musíte mít oprávnění CREATE FOREIGN SECURABLE v externím umístění, které tyto cesty pokrývá. 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šší
  • Pro práci s katalogem: sdílený cluster na 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řit katalog v referenčních informacích k rozhraní Databricks REST API.

  1. V pracovním prostoru Azure Databricks kliknutím na ikonu katalogu Katalog otevřete Průzkumníka katalogu.

  2. Na stránce Rychlý přístup klikněte na tlačítko Přidat data a vyberte Přidat katalog.

  3. Zadejte název katalogu a vyberte typ katalogu ze zahraničních .

  4. Vyberte Připojení, které jste vytvořili v kroku 1, z rozevíracího seznamu.

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

  6. Klikněte na Vytvořit.

  7. (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 Unity Catalog a Aplikovat značky na zabezpečitelné objekty v Unity Catalog.

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

  9. Naplňte federovaný katalog metadaty metastoru 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ří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?.
    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.