Spouštění federovaných dotazů na Microsoft SQL Serveru
Důležité
Tato funkce je ve verzi Public Preview.
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.
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á.
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.
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 levém podokně rozbalte nabídku Externí data a vyberte Připojení ions.
- Klikněte na Vytvořit připojení.
- Zadejte uživatelsky přívětivý název Připojení ionu.
- Vyberte typPřipojení systému SQL Server.
- Zadejte následující vlastnosti připojení pro vaši instanci SQL Serveru.
- Hostitel
- Port
- 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
- (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 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 editoru dotazů SQL Databricks.
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 klikněte na Katalog.
- Klikněte na tlačítko Vytvořit katalog .
- V dialogovém okně Vytvořit nový katalog zadejte název katalogu a vyberte typ cizího zboží.
- Vyberte Připojení ion, který poskytuje přístup k databázi, kterou chcete zrcadlit jako katalog Unity.
- Zadejte název databáze , kterou chcete zrcadlit jako katalog.
- Klikněte na Vytvořit.
Sql
V poznámkovém bloku nebo editoru SQL Databricks 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 | Krátký typ |
int, tinyint | 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
.