Spouštění federovaných dotazů v Microsoft Azure Synapse
Tento článek popisuje, jak set up Lakehouse Federation ke spouštění federovaných dotazů 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 ve svém metastoru Azure Databricks Unity Catalog vytvořit následující:
- Připojení k databázi Azure Synapse (SQL Data Warehouse).
- cizí catalog, která zrcadlí vaši databázi Azure Synapse (SQL Data Warehouse) v Unity Catalog, abyste mohli používat syntax dotazů a nástroje pro správu datového řízení v Unity Catalog ke správě uživatelského přístupu k databázi Azure Databricks.
Než začnete
Požadavky na pracovní prostor:
- Pracovní prostor aktivován pro Unity Catalog.
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 v režimu přístupu sdíleném nebo 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 Unity Catalog připojenému k pracovnímu prostoru. - Chcete-li vytvořit cizí catalog, 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
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 credentials pro přístup k externímu databázovému systému. K vytvoření připojení můžete použít Catalog Explorer 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
.
Catalog Explorer
V pracovním prostoru Azure Databricks klikněte na ikonu Catalog.
V horní části podokna Catalog klikněte na ikonu Ikona Přidat a v nabídce selectPřidat připojení.
Případně na stránce Rychlý přístup klikněte na tlačítko Externí data >, přejděte na kartu Connections a klikněte na připojení Vytvořit.
Na stránce základy Připojení průvodce Set připojení zadejte uživatelsky přívětivý název Název připojení.
Select a typ připojeníSQLDW.
(Volitelné) Přidejte komentář.
Klikněte na Další.
Na stránce Ověřování 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
- Uživatel
- Heslo
- důvěřovat certifikátu serveru: Ve výchozím nastavení je tato možnost zrušena. Pokud je tato možnost vybraná, vrstva přenosu používá SSL k šifrování kanálu a obchází řetěz certifikátů při ověřování důvěryhodnosti. Tuto set ponechte výchozí, pokud nemáte konkrétní potřebu obejít ověření důvěryhodnosti.
-
Hostitel: Například
Klikněte na Vytvořit připojení.
Na stránce základů Catalog zadejte název pro cizí catalog. Cizí catalog zrcadlí databázi uvnitř externího datového systému, abyste mohli provádět dotazy a spravovat přístup k datům v této databázi pomocí Azure Databricks a Unity Catalog.
(Volitelné) Kliknutím na test připojení potvrďte, že funguje.
Klikněte na Vytvořit catalog.
Na stránce Accessselect pracovní prostory, do kterých mají uživatelé přístup k catalog, které jste vytvořili. Můžete select, všechna pracovní místa mají přístup, nebo klikněte na Přiřadit pracovním místům, vyberte pracovní místa select a poté klikněte na Přiřadit.
Změňte vlastníka, aby mohl spravovat přístup ke všem objektům v catalog. Začněte do textového pole zadávat objekt zabezpečení a potom ve vrácených výsledcích klikněte na objekt zabezpečení.
Grant oprávnění na catalog. Klikněte na Grant:
- Zadejte principály , kteří budou mít přístup k objektům v catalog. Začněte do textového pole zadávat objekt zabezpečení a potom ve vrácených výsledcích klikněte na objekt zabezpečení.
-
Select přednastavení privilegií grant každému subjektu. Všichni uživatelé účtu mají ve výchozím nastavení udělené
BROWSE
.-
Select
Čtečka dat v rozevírací nabídce pro grant
read
oprávnění na objekty v catalog. -
Select
Data Editor z rozevírací nabídky grant
read
amodify
oprávnění k objektům v catalog. - Ručně přiřaďte oprávnění select k grant.
-
Select
Čtečka dat v rozevírací nabídce pro grant
- Klikněte na Grant.
Klikněte na Další.
Na stránce Metadata zadejte páry klíč-hodnota tagů. Další informace naleznete v tématu Použití značek na Unity Catalog zabezpečitelné objekty.
(Volitelné) Přidejte komentář.
Klikněte na Ulož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
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ř cizí catalog
Poznámka:
Pokud použijete uživatelské rozhraní k vytvoření připojení ke zdroji dat, zahrnuje se automaticky vytvoření cizího prvku catalog a tento krok můžete přeskočit.
Cizí catalog zrcadlí databázi v externím datovém systému, aby bylo možné dotazovat a spravovat přístup k datům v této databázi pomocí Azure Databricks a Unity Catalog. Chcete-li vytvořit cizí prvek catalog, použijete připojení ke zdroji dat, který již byl definován.
K vytvoření cizího catalogmůžete použít Catalog Explorer nebo příkaz CREATE FOREIGN CATALOG
SQL v poznámkovém bloku Azure Databricks nebo v editoru dotazů SQL.
K vytvoření catalogmůžete použít také rozhraní REST API Databricks nebo rozhraní příkazového řádku Databricks. Viz POST /api/2.1/unity-catalog/catalogs a Unity příkazy Catalog.
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í.
Catalog Průzkumník
V pracovním prostoru Azure Databricks kliknutím na ikonu Catalog otevřete průzkumníka Catalog.
V horní části podokna Catalog klikněte na ikonu Ikona Přidat a selectPřidat catalog z nabídky.
Případně na stránce Rychlý přístup klikněte na tlačítko Catalogs a potom klikněte na tlačítko Vytvořit catalog.
Postupujte podle pokynů pro vytváření cizích catalogs v Vytvořit catalogs.
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ý text values:
-
<catalog-name>
: Název catalog v Azure Databricks. -
<connection-name>
: objekt připojení , který určuje zdroj dat, cestu a přístup credentials. -
<database-name>
: Název databáze, kterou chcete zrcadlit jako catalog 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
.