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í Lakehouse Federation a vytvářet cizí katalogy v metastoru katalogu 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. Nakonfigurujete připojení jen pro čtení k oblíbeným databázovým řešením pomocí ovladačů, které jsou součástí pro SQL Warehouse, bezserverové služby SQL Warehouse a clusterů Databricks Runtime. Nástroje pro zásady správného řízení dat a rodokmen dat v Unity zajišťují, že přístup k datům je spravovaný a auditovaný 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, umožňuje 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í:
- MySQL
- PostgreSQL
- Amazon Redshift
- Salesforce Data Cloud
- Snowflake
- Microsoft SQL Server
- Azure Synapse (SQL Data Warehouse)
- Google BigQuery
- Databricks
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 clusteru Databricks Runtime nebo SQL Warehouse k cílovým databázovým systémům. Viz doporučení k sítím pro Federaci Lakehouse.
- Clustery Azure Databricks musí používat Databricks Runtime 13.3 LTS nebo vyšší a sdílený nebo režim přístupu s jedním uživatelem.
- Sql Warehouse musí být Verze 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
CREATE CONNECTION
oprávněním k metastoru katalogu Unity připojenému k pracovnímu prostoru. - Chcete-li vytvořit cizí katalog, musíte mít
CREATE CATALOG
oprávnění k metastoru a být buď vlastníkem připojení, nebo mítCREATE FOREIGN CATALOG
oprávnění k 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 CREATE CONNECTION
příkaz SQL v poznámkovém bloku Azure Databricks nebo v 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 katalogu Unity.
Požadovaná oprávnění: Správce metastoru nebo uživatel s oprávněním CREATE CONNECTION
.
Průzkumník katalogu
V pracovním prostoru Azure Databricks klikněte na Katalog.
V horní části podokna Katalog klikněte na ikonu 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í.
Zadejte uživatelsky přívětivý název připojení.
Vyberte typ připojení (poskytovatel databáze, například MySQL nebo PostgreSQL).
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í. Podívejte se na článek o typu připojení, který je uvedený v obsahu vlevo.
(Volitelné) Kliknutím na test připojení potvrďte, že funguje.
(Volitelné) Přidejte komentář.
Klikněte na Vytvoř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 o typu připojení, který je uvedený v obsahu vlevo.
CREATE CONNECTION <connection-name> TYPE postgresql
OPTIONS (
host '<hostname>',
port '<port>',
user '<user>',
password '<password>'
);
Doporučujeme používat tajné kódy Azure Databricks 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í najdete v tématu Správa připojení pro Federaci Lakehouse.
Vytvoření zahraničního katalogu
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 CREATE FOREIGN CATALOG
příkaz 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 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 část Mapování datových typů v dokumentaci 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
V pracovním prostoru Azure Databricks kliknutím na Katalog otevřete Průzkumníka katalogu.
V horní části podokna Katalog klikněte na ikonu Přidat a v nabídce vyberte Přidat katalog.
Případně na stránce Rychlý přístup klikněte na tlačítko Katalogy a potom klikněte na tlačítko Vytvořit katalog.
Postupujte podle pokynů pro vytváření cizích katalogů v části Vytváření katalogů.
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>
: Pouze 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 s cizími katalogy.
Federace Lakehouse a materializovaná zobrazení
Databricks při vytváření materializovaných zobrazení doporučuje načíst 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í grafu profilu dotazu nebo spusťte příkaz EXPLAIN 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ů SQL databricks. 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 části 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í tabulku, na kterou odkazuje, 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 exekutoru Azure Databricks přes jeden datový proud. Pokud je sada výsledků příliš velká, exekutor může dojít k nedostatku paměti.
- Režim přístupu s jedním uživatelem je k dispozici pouze pro uživatele, kteří připojení vlastní.
- Lakehouse Federation nemůže federovat cizí tabulky s identifikátory rozlišující malá a velká písmena pro připojení Azure Synapse nebo připojení Redshift.
Kvóty prostředků
Azure Databricks vynucuje kvóty prostředků pro všechny zabezpečitelné objekty Katalogu Unity. 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 Monitorování využití kvót prostředků katalogu Unity.
Další materiály
- Federované dotazy (Lakehouse Federation) v referenční dokumentaci jazyka SQL