Spouštění federovaných dotazů na Microsoft SQL Serveru
Tento článek popisuje, jak nastavit federaci Lakehouse pro spouštění federovaných dotazů na data SQL Serveru, 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 SQL Serveru pomocí federace Lakehouse, musíte v metastore katalogu Azure Databricks Unity vytvořit následující:
- Připojení k databázi SQL Serveru.
- Cizí katalog, který zrcadlí databázi SQL Serveru v katalogu Unity, abyste mohli pomocí nástrojů pro dotazy a zásady správného řízení dat v Unity spravovat uživatelský přístup k databázi Azure Databricks.
Lakehouse Federation podporuje SQL Server, Azure SQL Database a Azure SQL Managed Instance.
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 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í instance Azure Databricks musí používat Databricks Runtime 13.3 LTS nebo novější a režim sdíleného přístupu nebo režim 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
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.
- Pokud plánujete ověřování pomocí OAuth, zaregistrujte aplikaci v Microsoft Entra ID pro Azure Databricks. Podrobnosti najdete v následující části.
(Volitelné) Registrace aplikace v Microsoft Entra ID pro Azure Databricks
Pokud chcete provést ověření pomocí OAuth, před vytvořením připojení k SQL Serveru postupujte podle tohoto kroku. Pokud chcete místo toho provést ověření pomocí uživatelského jména a hesla, přeskočte tuto část.
- Přihlaste se k portálu Azure.
- V levém navigačním panelu klikněte na Microsoft Entra ID.
- Klikněte na Registrace aplikací.
- Klikněte na Nová registrace. Zadejte název nové aplikace a nastavte identifikátor URI přesměrování na
https://<workspace-url>/login/oauth/azure.html
. - Klikněte na Zaregistrovat.
- Do pole Základy zkopírujte a uložte ID aplikace (klienta). Tuto hodnotu použijete ke konfiguraci aplikace.
- Klikněte na Certifikáty a tajné kódy.
- Na kartě Tajné kódy klienta klikněte na Nový tajný klíč klienta.
- Zadejte popis tajného kódu a vypršení platnosti (výchozí nastavení je 180 dní).
- Klikněte na tlačítko Přidat.
- Zkopírujte vygenerovanou hodnotu pro tajný klíč klienta.
- Klikněte na oprávnění rozhraní API.
- Klikněte na Přidat oprávnění.
- Vyberte Azure SQL Database a v části Delegovaná oprávnění klikněte na user_impersonation.
- Klikněte na Přidat oprávnění.
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 typpřipojení SQL Serveru.
Vyberte typověřování OAuth nebo uživatelské jméno a heslo.
V závislosti na metodě ověřování zadejte následující vlastnosti připojení pro vaši instanci SQL Serveru:
- Hostitel: Server SQL.
- (Základní ověřování) Přístav
- (Základní ověřování) 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. - (Základní ověřování) Uživatel
- (Základní ověřování) Heslo
- (OAuth) Koncový bod autorizace: Koncový bod autorizace Azure Entra ve formátu
https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/authorize
. - (OAuth) ID klienta z aplikace, kterou jste vytvořili.
- (OAuth) Tajný klíč klienta z tajného klíče klienta, který jste vytvořili.
- (OAuth) Obor klienta: Zadejte následující hodnotu bez úprav:
https://database.windows.net/.default offline_access
. - (OAuth) Zobrazí se výzva, abyste se přihlásili pomocí Azure Entra ID. Zadejte uživatelské jméno a heslo Azure. Po přesměrování na stránku pro vytvoření připojení se autorizační kód vyplní v uživatelském rozhraní.
(Volitelné) V rozevírací nabídce Záměr aplikace vyberte možnost (Výchozí:
Read write
).(Volitelné) Kliknutím na test připojení potvrďte, že funguje.
(Volitelné) Přidejte komentář.
Klikněte na Vytvořit.
Poznámka:
(OAuth) Koncový bod OAuth ID Azure Entra musí být přístupný z IP adres řídicí roviny Azure Databricks. Viz oblasti Azure Databricks.
SQL
V poznámkovém bloku nebo editoru dotazů SQL Databricks spusťte následující příkaz.
CREATE CONNECTION <connection-name> TYPE sqlserver
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 sqlserver
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
Na všech výpočetních prostředcích se podporují následující nabízení:
- Filtry
- Projekce
- Limit
- Funkce: částečné, pouze pro výrazy filtru. (Řetězcové funkce, matematické funkce, data, časová a časová razítka a další různé funkce, jako jsou Alias, Cast, SortOrder)
V Databricks Runtime 13.3 LTS a novějších a na výpočetních prostředcích SQL Warehouse se podporují následující nabízení:
- Souhrny
- Následující logické operátory: =, <, <=, >, >=, <=>
- Následující matematické funkce (nepodporuje se, pokud je anSI zakázán): +, -, *, %, /
- Následující různé operátory: ^, |, ~
- Řazení při použití s limitem
Následující nabízená oznámení nejsou podporována:
- Spojení
- Funkce Systému Windows
Mapování datového typu
Při čtení z SQL Serveru do Sparku se datové typy mapuje takto:
Typ SQL Serveru | Typ Sparku |
---|---|
bigint (bez znaménka), desetinné číslo, peníze, číselné, malé | DecimalType |
smallint, tinyint | Krátký typ |
int | IntegerType |
bigint (pokud je podepsaný) | LongType |
real | FloatType |
float (číslo s plovoucí řádovou čárkou) | DoubleType |
char, nchar, uniqueidentifier | CharType |
nvarchar, varchar | VarcharType |
text, xml | StringType |
binary, geography, geometry, image, timestamp, udt, varbinary | BinaryType |
bitové | BooleanType |
datum | Typ data |
datetime, datetime, smalldatetime, time | TimestampType/TimestampNTZType |
*Při čtení z SQL Serveru se SQL Server datetimes
mapuje na Spark TimestampType
, pokud preferTimestampNTZ = false
(výchozí). SQL Server datetimes
je mapován na TimestampNTZType
if preferTimestampNTZ = true
.