Sdílet prostřednictvím


Co je Lakehouse Federation?

V tomto článku se seznámíte s federační platformou Lakehouse, která umožňuje používat Azure Databricks ke spouštění dotazů na více externích zdrojů dat. Popisuje také, jak nastavit připojení pro Lakehouse Federation a vytvořit cizí katalogy v katalogu metastore Unity.

Co je Lakehouse Federation?

Lakehouse Federation je platforma federace dotazů pro Azure Databricks. Federace dotazů termínů popisuje kolekci funkcí, které uživatelům a systémům umožňují spouštět dotazy na více zdrojů dat, aniž by bylo nutné migrovat všechna data do sjednoceného systému.

Azure Databricks ke správě federace dotazů používá katalog Unity. Připojení jen pro čtení nakonfigurujete k oblíbeným databázovým řešením pomocí ovladačů, které jsou součástí pro SQL Warehouse, bezserverových skladů SQL a clusterů Databricks Runtime. Nástroje pro správu dat a linage dat v Unity Catalog zajišťují, že přístup k datům je spravován a auditován pro všechny federované dotazy provedené uživateli v pracovních prostorech Azure Databricks.

Proč používat Lakehouse Federation?

Lakehouse zdůrazňuje centrální úložiště dat, aby se snížila redundance a izolace dat. Vaše organizace může mít v produkčním prostředí mnoho datových systémů a můžete chtít dotazovat data v připojených systémech z několika důvodů:

  • Ad hoc generování sestav.
  • Testování konceptu.
  • Průzkumná fáze nových kanálů nebo sestav ETL.
  • Podpora úloh během přírůstkové migrace

V každém z těchto scénářů vám federace dotazů umožní rychleji získat přehledy, protože se můžete dotazovat na data na místě a vyhnout se složitému a časově náročnému zpracování ETL.

Lakehouse Federation je určená pro případy použití v případech, kdy:

  • Nechcete ingestovat data do Azure Databricks.
  • Chcete, aby vaše dotazy využívaly výpočetní prostředky v externím databázovém systému.
  • Chcete mít výhody rozhraní katalogu Unity a zásad správného řízení dat, včetně jemně odstupňovaného řízení přístupu, rodokmenu dat a vyhledávání.

Přehled nastavení federace Lakehouse

Pokud chcete datovou sadu zpřístupnit pro dotazování jen pro čtení pomocí federace Lakehouse, vytvořte následující:

  • připojení, zabezpečitelný objekt v katalogu Unity, který určuje cestu a přihlašovací údaje pro přístup k externímu databázovému systému.
  • cizí katalog, zabezpečitelný objekt v katalogu Unity, který zrcadlí databázi v externím datovém systému, což vám umožní provádět dotazy jen pro čtení v daném datovém systému v pracovním prostoru Azure Databricks a spravovat přístup pomocí katalogu Unity.

Podporované zdroje dat

Lakehouse Federation podporuje připojení k následujícím typům databází:

Požadavky na připojení

Požadavky na pracovní prostor:

  • Pracovní prostor je povolený pro katalog Unity.

Požadavky na výpočetní prostředky:

  • Síťové připojení z vašeho výpočetního prostředku k cílovým databázovým systémům. Viz doporučení k sítím pro Federaci Lakehouse.
  • Výpočetní prostředky Azure Databricks musí používat Databricks Runtime 13.3 LTS nebo novější a sdílené nebo režimu přístupu jednoho uživatele.
  • Sql Warehouse musí být pro nebo bezserverové a musí používat verzi 2023.40 nebo vyšší.

Požadovaná oprávnění:

  • Pokud chcete vytvořit připojení, musíte být správcem metastoru nebo uživatelem s oprávněním CREATE CONNECTION k metastoru katalogu Unity připojenému k pracovnímu prostoru.
  • Chcete-li vytvořit cizí katalog, musíte mít oprávnění CREATE CATALOG k metastoru a být buď vlastníkem připojení, nebo mít oprávnění CREATE FOREIGN CATALOG pro připojení.

Další požadavky na oprávnění jsou uvedeny v následující části založené na úlohách.

Vytvoření připojení

Připojení určuje cestu a přihlašovací údaje pro přístup k externímu databázovému systému. 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.

Požadovaná oprávnění: Správce metastoru nebo uživatel s oprávněním CREATE CONNECTION .

Průzkumník katalogu

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

  2. V horní části podokna katalogu klikněte na ikonu Přidat nebo plusIkona Přidat a v nabídce vyberte Přidat připojení.

    Případně na stránce Rychlý přístup klikněte na tlačítko Externí data >, přejděte na kartu Připojení a klikněte na Vytvořit připojení.

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

  4. Vyberte typ připojení (poskytovatel databáze, například MySQL nebo PostgreSQL).

  5. (Volitelné) Přidejte komentář.

  6. Klikněte na Další.

  7. Zadejte vlastnosti připojení (například informace o hostiteli, cestu a přihlašovací údaje pro přístup).

    Každý typ připojení vyžaduje jiné informace o připojení. Čerpejte z článku o typu připojení, který je uvedený v obsahu vlevo na stránce.

  8. Klikněte na Vytvořit připojení.

  9. Zadejte název zahraničního katalogu.

  10. (Volitelné) Kliknutím na test připojení potvrďte, že funguje.

  11. Klikněte na Vytvořit katalog.

  12. Vyberte pracovní prostory, ve kterých mají uživatelé přístup k katalogu, který jste vytvořili. 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.

  13. Změňte vlastníka, který bude moct spravovat přístup ke všem objektům v katalogu. Začněte psát položku do textového pole a poté ve vrácených výsledcích klikněte na položku.

  14. Udělte oprávnění v katalogu. Klikněte na Udělit:

    1. Určete uživatele, kteří budou mít přístup k objektům v katalogu. Začněte psát položku do textového pole a poté ve vrácených výsledcích klikněte na položku.
    2. Vyberte přednastavené výsady pro jejich udělení každému uživateli. Všichni uživatelé účtu mají ve výchozím nastavení udělené BROWSE.
      • V rozevírací nabídce vyberte Data Reader a poskytněte read oprávnění k objektům v katalogu.
      • V rozevírací nabídce vyberte Datový editor, udělte read a modify oprávnění k objektům v katalogu.
      • Ručně vyberte oprávnění, která chcete udělit.
    3. Klikněte na Udělit.
    4. Klikněte na Další.
    5. Na stránce Metadata zadejte značek páry klíč-hodnota. Další informace najdete v tématu Použití značek na zabezpečitelné objekty v Katalogu Unity.
    6. (Volitelné) Přidejte komentář.
    7. Klikněte na Uložit.

SQL

V poznámkovém bloku nebo editoru dotazů SQL spusťte následující příkaz. Tento příklad je určený pro připojení k databázi PostgreSQL. Možnosti se liší podle typu připojení. Podívejte se na článek pro váš typ připojení, uvedený v rejstříku obsahu vlevo.

CREATE CONNECTION <connection-name> TYPE postgresql
OPTIONS (
  host '<hostname>',
  port '<port>',
  user '<user>',
  password '<password>'
);

Doporučujeme používat Azure Databricks tajemství místo řetězců prostého textu pro citlivé hodnoty, jako jsou přihlašovací údaje. Příklad:

CREATE CONNECTION <connection-name> TYPE postgresql
OPTIONS (
  host '<hostname>',
  port '<port>',
  user secret ('<secret-scope>','<secret-key-user>'),
  password secret ('<secret-scope>','<secret-key-password>')
)

Informace o nastavení tajných kódů najdete v tématu Správa tajných kódů.

Informace o správě existujících připojení naleznete v tématu Správa připojení proLakehouse Federation .

Vytvoření cizího katalogu

Poznámka:

Pokud k vytvoření připojení ke zdroji dat použijete uživatelské rozhraní, zahrne se vytvoření cizího katalogu a tento krok můžete přeskočit.

Cizí katalog zrcadlí databázi v externím datovém systému, abyste mohli dotazovat a spravovat přístup k datům v této databázi pomocí Azure Databricks a Unity Catalog. Chcete-li vytvořit cizí katalog, použijete připojení ke zdroji dat, který již byl definován.

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. Můžete také použít rozhraní API katalogu Unity. Viz referenční dokumentace k Azure Databricks.

Metadata cizího katalogu se synchronizují do katalogu Unity při každé interakci s katalogem. V případě mapování datových typů mezi katalogem Unity a zdrojem dat zkontrolujte mapování datových typů části dokumentace ke každému zdroji dat.

Požadovaná oprávnění:CREATE CATALOG oprávnění k metastoru a vlastnictví připojení nebo CREATE FOREIGN CATALOG oprávnění k připojení.

Průzkumník katalogu

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

  2. V horní části podokna katalogu klikněte na ikonu Přidat nebo plusIkona Přidat a v nabídce vyberte Přidat katalogu.

    Případně na stránce Rychlý přístup, klikněte na tlačítko Katalogy a potom klikněte na tlačítko Vytvořit katalog.

  3. Postupujte podle pokynů pro vytváření cizích katalogů v Vytvořit katalogy.

SQL

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>: Objekt připojení , který určuje zdroj dat, cestu a přihlašovací údaje pro přístup.
  • <database-name>: Název databáze, kterou chcete zrcadlit jako katalog v Azure Databricks. Nevyžaduje se pro MySQL, který používá dvouvrstvý obor názvů.
  • <external-catalog-name>: Databricks-to-Databricks: Název katalogu v externím pracovním prostoru Databricks, který zrcadlíte. Viz Vytvořenícizího katalogu .
CREATE FOREIGN CATALOG [IF NOT EXISTS] <catalog-name> USING CONNECTION <connection-name>
OPTIONS (database '<database-name>');

Informace o správě a práci se zahraničními katalogy naleznete v tématu Správa a práce se zahraničními katalogy.

Lakehouse Federation a materializovaná zobrazení

Databricks doporučuje při vytváření materializovaných zobrazení načítat externí data pomocí federace Lakehouse. Viz Použití materializovaných zobrazení v Databricks SQL.

Když používáte Federaci Lakehouse, můžou uživatelé odkazovat na federovaná data následujícím způsobem:

CREATE MATERIALIZED VIEW xyz AS SELECT * FROM federated_catalog.federated_schema.federated_table;

Zobrazení federovaných dotazů generovaných systémem

Lakehouse Federation překládá příkazy SQL Databricks na příkazy, které je možné odeslat do federovaného zdroje dat. Pokud chcete zobrazit vygenerovaný příkaz SQL, klikněte na uzel kontroly cizího zdroje dat v zobrazení grafuprofilu dotazu nebo spusťte příkaz FORMATTED SQL. Informace o pokrytí najdete v části Podporované nabízení v dokumentaci ke každému zdroji dat.

Omezení

  • Dotazy jsou jen pro čtení.
  • Omezování připojení se určuje pomocí limitu souběžných dotazů Databricks SQL. Počet skladů na připojení není nijak omezený. Viz Fronty a automatické škálování pro profesionály a klasické SQL Warehouse.
  • Tabulky a schémata s názvy, které jsou neplatné v katalogu Unity, nejsou podporovány a při vytváření cizího katalogu je katalog Unity ignoruje. Podívejte se na seznam pravidel a omezení pojmenování v Omezení.
  • Názvy tabulek a názvy schémat se v katalogu Unity převedou na malá písmena. Vyhledávání musí také používat malá písmena. Pokud existují tabulky nebo schémata s duplicitními malými písmeny, importuje se do cizího katalogu pouze jedna z tabulek nebo schémat.
  • Pro každou cizí odkazovanou tabulku Azure Databricks naplánuje ve vzdáleném systému poddotaz, který vrátí podmnožinu dat z této tabulky, a pak vrátí výsledek do jedné úlohy vykonavatele Azure Databricks přes jediný datový proud. Pokud je sada výsledků příliš velká, exekutor může dojít k nedostatku paměti.
  • Režim přístupu jednoho uživatele je k dispozici pouze pro uživatele, kteří připojení vlastní.
  • Lakehouse Federation nemůže federovat cizí tabulky s identifikátory citlivými na velikost písmen při připojení k Azure Synapse nebo Redshift.

Kvóty prostředků

Azure Databricks vynucuje kvóty zdrojů na všechny zabezpečené objekty Unity Catalogu. Tyto kvóty jsou uvedené v omezeních prostředků. Zahraniční katalogy a všechny objekty, které obsahují, jsou zahrnuty do celkového využití kvóty.

Pokud očekáváte překročení těchto limitů prostředků, obraťte se na svůj tým účtů Azure Databricks.

Využití kvóty můžete monitorovat pomocí rozhraní API kvót katalogu Unity. Viz Sledujte kvóty využití prostředků Unity Catalog.

Další materiály