Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Při federaci dotazů se dotazy odsílají do cizí databáze pomocí rozhraní API JDBC. Dotaz se spustí v Databricks i pomocí vzdáleného výpočetního prostředí. Federace dotazů se používá pro zdroje, jako jsou MySQL, PostgreSQL, BigQuery, Redshift, Teradata a další.
Proč používat Lakehouse Federation?
Lakehouse klade důraz na centrální ukládání dat, aby došlo ke snížení 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ů:
- Generování sestav na vyžádání
- Testování konceptu.
- Průzkumná fáze nových procesů nebo reportů 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.
Federace dotazů 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í.
Federace dotazů vs. Lakeflow Connect
Federace dotazů umožňuje dotazovat se na externí zdroje dat bez přesunu dat. Databricks doporučuje příjem dat pomocí spravovaných konektorů, protože se škálují tak, aby vyhovovaly vysokým objemům dat, dotazům s nízkou latencí a omezením rozhraní API třetích stran. Možná se budete chtít dotazovat na data, aniž byste je museli přesouvat. Pokud máte na výběr mezi spravovanými konektory pro příjem dat a federací dotazů, zvolte federaci dotazů pro ad hoc vytváření sestav nebo testování konceptu práce na kanálech ETL.
Přehled nastavení federace dotazů
Chcete-li zpřístupnit datovou sadu pro dotazování pouze pro čtení pomocí Lakehouse Federation, 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
Federace dotazů podporuje připojení k následujícím zdrojům:
- MySQL
- PostgreSQL
- Teradata
- Oracle
- Amazon Redshift
- Salesforce Data 360
- Snowflake
- Microsoft SQL Server
- Azure Synapse (SQL Data Warehouse)
- Google BigQuery
- Databricks
Požadavky na připojení
Požadavky na pracovní prostor:
- Pracovní prostor aktivován 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. Podívejte se na doporučení pro síťování pro Lakehouse Federation.
- Výpočetní prostředky Azure Databricks musí používat Databricks Runtime 13.3 LTS nebo novější a Standard nebo dedikovaný režim přístupu.
- 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 CONNECTIONk metastoru katalogu Unity připojenému k pracovnímu prostoru. - Chcete-li vytvořit cizí katalog, musíte mít oprávnění
CREATE CATALOGk metastoru a být buď vlastníkem připojení, nebo mít oprávněníCREATE FOREIGN CATALOGpro 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.
Note
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
V pracovním prostoru Azure Databricks klikněte na
Katalog.
V horní části podokna katalogu klikněte na ikonu
ikona Přidat a v nabídce vyberte možnost 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).
(Volitelné) Přidejte komentář.
Klikněte na tlačítko Další.
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.
Klikněte na Vytvořit připojení.
Zadejte název zahraničního katalogu.
(Volitelné) Kliknutím na test připojení potvrďte, že funguje.
Klikněte na Vytvořit katalog.
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.
Změňte vlastníka , který bude moci spravovat přístup ke všem objektům v katalogu. Začněte do textového pole zadávat název entity a potom ve vrácených výsledcích klikněte na tuto entitu.
Udělte oprávnění na katalog. Klikněte na Odsouhlasit:
- Uveďte uživatele Principals, kteří budou mít přístup k objektům v katalogu. Začněte do textového pole zadávat název entity a potom ve vrácených výsledcích klikněte na tuto entitu.
- Vyberte přednastavení oprávnění, které se mají každému subjektu udělit. 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
readoprávnění k objektům v katalogu. - V rozevírací nabídce vyberte Datový editor a udělte oprávnění
readamodifyk objektům v katalogu. - Ručně vyberte oprávnění, která chcete udělit.
- V rozevírací nabídce vyberte Data Reader a poskytněte
- Klikněte na Povolit.
- Klikněte na tlačítko 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 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í. Čerpejte z článku o typu připojení, který je uvedený v obsahu vlevo na stránce.
CREATE CONNECTION <connection-name> TYPE postgresql
OPTIONS (
host '<hostname>',
port '<port>',
user '<user>',
password '<password>'
);
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 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
Note
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 čá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 metastore a buď vlastnictví připojení, nebo privilegium na připojení.
Průzkumník katalogu
V pracovním prostoru Azure Databricks klikněte na
Klikněte na Katalog pro otevření Průzkumníka katalogu.
V horní části podokna Katalog klikněte na
data a v nabídce vyberte Vytvořit 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 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 pouze: 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.
Načtení dat z cizích tabulek s materializovanými zobrazeními
Databricks doporučuje načítání externích dat pomocí federace dotazů při vytváření materializovaných zobrazení. Podívejte se na Materializovaná zobrazení.
Při použití federace dotazů 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
Federace dotazů 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
Limitations
Dotazy jsou jen pro čtení.
Jedinou výjimkou je, když se systém Lakehouse Federation používá k federaci staršího metastoru Hive pracovního prostoru, tedy k federaci katalogu. Cizí tabulky v tomto scénáři jsou zapisovatelné. Podívejte se, co znamená zápis do cizího katalogu ve federovaném metastoru Hive.
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 logika řízení front a automatického škálování.
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. Pokud to způsobí kolize názvů, Databricks nemůže zaručit, který objekt je importován do cizího katalogu.
Pro každou cizí tabulku, na kterou se odkazuje, Databricks naplánuje poddotaz ve vzdáleném systému, aby vrátil podmnožinu dat z této tabulky, a pak výsledek přesměruje do jedné úlohy exekutoru Databricks prostřednictvím jednoho datového toku. Pokud je sada výsledků příliš velká, vykonavatel může mít nedostatek paměti.
Režim vyhrazeného přístupu (dříve 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 využití kvót prostředků Unity Catalog.
Dodatečné zdroje
- Federované dotazy (Lakehouse Federation) v referenční dokumentaci jazyka SQL
- Co je federace katalogu?
- Federace metastoru Hive: Umožnit Katalogu Unity řídit tabulky zaregistrované v metastoru Hive