Spouštění federovaných dotazů v Microsoft Azure Synapse
Tento článek popisuje, jak nastavit Federaci Lakehouse tak, aby spouštět federované dotazy na data Azure Synapse (SQL Data Warehouse), která nespravuje Azure Databricks. Další informace o federaci Lakehouse najdete v tématu Co je Federace Lakehouse?.
Pokud se chcete připojit k databázi Azure Synapse (SQL Data Warehouse) pomocí federace Lakehouse, musíte v metastoru azure Databricks Unity Catalog vytvořit následující:
- Připojení k databázi Azure Synapse (SQL Data Warehouse).
- Cizí katalog, který zrcadlí vaši databázi Azure Synapse (SQL Data Warehouse) v katalogu Unity, abyste mohli ke správě uživatelského přístupu k databázi použít syntaxi dotazů a nástroje zásad správného řízení katalogu Unity.
Než začnete
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í SQLDW.
Zadejte následující vlastnosti připojení pro vaši instanci Azure Synapse.
- Hostitel: Například
sqldws-demo.database.windows.net
. - Port: Příklad:
1433
- trustServerCertificate: Výchozí hodnota
false
je . Pokud je tato možnost nastavenátrue
, vrstva přenosu používá protokol SSL k šifrování kanálu a předává řetěz certifikátů k ověření důvěryhodnosti. Ponechte tuto možnost nastavenou na výchozí, pokud nemáte konkrétní potřebu obejít ověření důvěryhodnosti. - Uživatel
- Heslo
- Hostitel: Například
(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 Databricks spusťte následující příkaz.
CREATE CONNECTION <connection-name> TYPE sqldw
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 sqldw
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ů.
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:
K vytvoření katalogu můžete použít také rozhraní REST API Databricks nebo rozhraní příkazového řádku Databricks. Viz POST /api/2.1/unity-catalog/catalogs a příkazy katalogu Unity.
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.
CREATE FOREIGN CATALOG [IF NOT EXISTS] <catalog-name> USING CONNECTION <connection-name>
OPTIONS (database '<database-name>');
Podporované odsdílení změn
Podporují se následující nabízení:
- Filtry
- Projekce
- Limit
- Aggregates (Average, Count, Max, Min, StddevPop, StddevSamp, Sum, VarianceSamp)
- Funkce (Aritmetika a další různé funkce, například Alias, Cast, SortOrder)
- Třídění
Následující nabízená oznámení nejsou podporována:
- Spojení
- Funkce Systému Windows
Mapování datového typu
Při čtení ze služby Synapse / SQL Data Warehouse do Sparku se datové typy mapuje takto:
Typ Synapse | Typ Sparku |
---|---|
decimal, money, numeric, smallmoney | DecimalType |
smallint | Krátký typ |
tinyint | ByteType |
int | IntegerType |
bigint | LongType |
real | FloatType |
float (číslo s plovoucí řádovou čárkou) | DoubleType |
char, nchar, ntext, nvarchar, text, uniqueidentifier, varchar, xml | StringType |
binary, geography, geometry, image, timestamp, udt, varbinary | BinaryType |
bitové | BooleanType |
datum | Typ data |
datetime, datetime, smalldatetime, time | TimestampType/TimestampNTZType* |
*Při čtení ze služby Synapse / SQL Data Warehouse (SQLDW) se SQLDW datetimes
mapují na Spark TimestampType
( preferTimestampNTZ = false
výchozí). SQLDW datetimes
jsou mapovány na TimestampNTZType
if preferTimestampNTZ = true
.