Összevont lekérdezések futtatása a Microsoft SQL Server-en
Ez a cikk azt ismerteti, hogyan állíthatja be a Lakehouse Federationt összevont lekérdezések futtatására olyan SQL Server-adatokon, amelyeket nem az Azure Databricks kezel. Ha többet szeretne megtudni a Lakehouse Federation-ről, olvassa el a Mi az a Lakehouse Federation?
Ha az SQL Server-adatbázishoz a Lakehouse Federation használatával szeretne csatlakozni, a következőket kell létrehoznia az Azure Databricks Unity Catalog metaadattárában:
- Kapcsolat az SQL Server-adatbázissal.
- Egy idegen katalógus , amely tükrözi az SQL Server-adatbázist a Unity Catalogban, így a Unity Catalog lekérdezési szintaxisával és adatszabályozási eszközeivel kezelheti az Azure Databricks-felhasználók hozzáférését az adatbázishoz.
A Lakehouse Federation támogatja az SQL Servert, az Azure SQL Database-t és a felügyelt Azure SQL-példányt.
Mielőtt elkezdené
Munkaterületre vonatkozó követelmények:
- A Unity Cataloghoz engedélyezett munkaterület.
Számítási követelmények:
- Hálózati kapcsolat a Databricks Runtime-fürtből vagy az SQL Warehouse-ból a céladatbázis-rendszerekhez. Lásd a Lakehouse Federation hálózatkezelési ajánlásait.
- Az Azure Databricks-fürtöknek a Databricks Runtime 13.3 LTS vagy újabb verzióját kell használniuk, valamint megosztott vagy egyfelhasználós hozzáférési módot kell használniuk.
- Az SQL-raktáraknak Pro vagy Kiszolgáló nélkülinek kell lenniük, és 2023.40-et vagy újabb verziót kell használniuk.
Szükséges engedélyek:
- Kapcsolat létrehozásához metaadattár-rendszergazdának vagy felhasználónak kell lennie a
CREATE CONNECTION
munkaterülethez csatolt Unity Catalog metaadattára jogosultsággal. - Külföldi katalógus létrehozásához rendelkeznie kell a
CREATE CATALOG
metaadattár engedélyével, és vagy a kapcsolat tulajdonosának kell lennie, vagy jogosultsággal kell rendelkeznieCREATE FOREIGN CATALOG
a kapcsolaton.
Az alábbi tevékenységalapú szakaszokban további engedélykövetelmények vannak megadva.
- Ha az OAuth használatával szeretne hitelesítést végezni, regisztráljon egy alkalmazást az Azure Databricks Microsoft Entra-azonosítójában. A részletekért tekintse meg a következő szakaszt.
(Nem kötelező) Alkalmazás regisztrálása az Azure Databricks Microsoft Entra-azonosítójában
Ha az OAuth használatával szeretne hitelesíteni, kövesse ezt a lépést az SQL Server-kapcsolat létrehozása előtt. Ha inkább felhasználónévvel és jelszóval szeretne hitelesíteni, hagyja ki ezt a szakaszt.
- Jelentkezzen be az Azure Portalra.
- A bal oldali navigációs sávon kattintson a Microsoft Entra-azonosítóra.
- Kattintson a Alkalmazásregisztrációk.
- Kattintson az Új regisztráció gombra. Adja meg az új alkalmazás nevét, és állítsa az átirányítási URI-t a következőre
https://<workspace-url>/login/oauth/azure.html
: . - Kattintson a Regisztrálás parancsra.
- Az Essentials mezőben másolja és tárolja az alkalmazás (ügyfél) azonosítóját. Ezt az értéket fogja használni az alkalmazás konfigurálásához.
- Kattintson a Tanúsítványok > titkos kódok elemre.
- Az Ügyfél titkos kulcsok lapján kattintson az Új ügyfélkód gombra.
- Adja meg a titkos kód leírását és a lejáratot (az alapértelmezett beállítás 180 nap).
- Kattintson a Hozzáadás gombra.
- Másolja ki az ügyfél titkos kódjának létrehozott értékét.
- Kattintson az API-engedélyekre.
- Kattintson az Engedély hozzáadása gombra.
- Válassza ki az Azure SQL Database-t, és kattintson a user_impersonation a Delegált engedélyek területen.
- Kattintson az Engedélyek hozzáadása elemre.
Kapcsolat létrehozása
A kapcsolat megadja a külső adatbázisrendszer eléréséhez szükséges elérési utat és hitelesítő adatokat. Kapcsolat létrehozásához használhatja a Catalog Explorert vagy az CREATE CONNECTION
SQL-parancsot egy Azure Databricks-jegyzetfüzetben vagy a Databricks SQL-lekérdezésszerkesztőben.
Feljegyzés
A Databricks REST API-val vagy a Databricks parancssori felülettel is létrehozhat kapcsolatot. Lásd: POST /api/2.1/unity-catalog/connections és Unity Catalog parancsok.
Szükséges engedélyek: Metaadattár-rendszergazda vagy jogosultsággal CREATE CONNECTION
rendelkező felhasználó.
Katalóguskezelő
Az Azure Databricks-munkaterületen kattintson a Katalógus elemre .
A Katalógus panel tetején kattintson a Hozzáadás ikonra, és válassza a Kapcsolat hozzáadása lehetőséget a menüből.
Másik lehetőségként a Gyorselérési lapon kattintson a Külső adatok gombra, lépjen a Kapcsolatok lapra, és kattintson a Kapcsolat létrehozása parancsra.
Adjon meg egy felhasználóbarát kapcsolatnevet.
Válassza ki az SQL Server kapcsolattípusát.
Válassza ki az OAuth hitelesítési típusát vagy a felhasználónevet és a jelszót.
Adja meg az SQL Server-példány következő kapcsolati tulajdonságait a hitelesítési módszertől függően:
- Gazdagép: Az SQL Server.
- (Alapszintű hitelesítés) Kikötő
- (Alapszintű hitelesítés) trustServerCertificate: Alapértelmezett érték:
false
. Ha be vantrue
állítva, az átviteli réteg SSL használatával titkosítja a csatornát, és átadja a tanúsítványláncot a megbízhatóság ellenőrzéséhez. Hagyja ezt a beállítást az alapértelmezett értékre, hacsak nincs szükség a megbízhatósági ellenőrzés megkerülésére. - (Alapszintű hitelesítés) Felhasználó
- (Alapszintű hitelesítés) Jelszó
- (OAuth) Engedélyezési végpont: Az Azure Entra engedélyezési végpontja a formátumban
https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/authorize
. - (OAuth) Ügyfélazonosító a létrehozott alkalmazásból.
- (OAuth) Az ügyfél titkos kódja a létrehozott ügyféltitkból.
- (OAuth) Ügyfél hatóköre: Adja meg a következő értéket módosítás nélkül:
https://database.windows.net/.default offline_access
. - (OAuth) A rendszer kérni fogja, hogy jelentkezzen be az Azure Entra-azonosítóval. Adja meg Azure-felhasználónevét és jelszavát. Miután átirányította a kapcsolatlétrehozási lapra, a rendszer feltölti az engedélyezési kódot a felhasználói felületen.
(Nem kötelező) Kattintson a Kapcsolat tesztelése elemre annak ellenőrzéséhez, hogy működik-e.
(Nem kötelező) Megjegyzés hozzáadása.
Kattintson a Létrehozás gombra.
Feljegyzés
(OAuth) Az Azure Entra ID OAuth-végpontnak elérhetőnek kell lennie az Azure Databricks vezérlősík IP-címéről. Tekintse meg az Azure Databricks-régiókat.
SQL
Futtassa a következő parancsot egy jegyzetfüzetben vagy a Databricks SQL-lekérdezésszerkesztőben.
CREATE CONNECTION <connection-name> TYPE sqlserver
OPTIONS (
host '<hostname>',
port '<port>',
user '<user>',
password '<password>'
);
Javasoljuk, hogy az Azure Databricks titkos kulcsait használja egyszerű szöveges sztringek helyett olyan bizalmas értékekhez, mint a hitelesítő adatok. Példa:
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>')
)
A titkos kódok beállításáról további információt a Titkos kódok kezelése című témakörben talál.
Idegen katalógus létrehozása
A külső katalógus egy külső adatrendszer adatbázisát tükrözi, így az Azure Databricks és a Unity Catalog használatával lekérdezheti és kezelheti az adatbázisban lévő adatokhoz való hozzáférést. Idegen katalógus létrehozásához a már definiált adatforráshoz való kapcsolatot kell használnia.
Idegen katalógus létrehozásához használhatja a Catalog Explorert vagy az CREATE FOREIGN CATALOG
SQL-parancsot egy Azure Databricks-jegyzetfüzetben vagy az SQL-lekérdezésszerkesztőben.
Feljegyzés
Katalógus létrehozásához használhatja a Databricks REST API-t vagy a Databricks parancssori felületet is. Lásd: POST /api/2.1/unity-catalog/catalogs és Unity Catalog parancsok.
Szükséges engedélyek: CREATE CATALOG
a metaadattár engedélye, illetve a kapcsolat tulajdonjoga vagy a CREATE FOREIGN CATALOG
kapcsolat jogosultsága.
Katalóguskezelő
Az Azure Databricks-munkaterületen kattintson a Katalógus gombra a Catalog Explorer megnyitásához.
A Katalógus panel tetején kattintson a Hozzáadás ikonra, és válassza a Katalógus hozzáadása lehetőséget a menüből.
Másik lehetőségként a Gyorselérési lapon kattintson a Katalógusok gombra, majd a Katalógus létrehozása gombra.
Kövesse az utasításokat a külföldi katalógusok létrehozásakor a Katalógusok létrehozása területen.
SQL
Futtassa a következő SQL-parancsot egy jegyzetfüzetben vagy egy SQL-lekérdezésszerkesztőben. A szögletes zárójelek nem kötelezőek. Cserélje le a helyőrző értékeket:
<catalog-name>
: A katalógus neve az Azure Databricksben.<connection-name>
: Az adatforrást, elérési utat és hozzáférési hitelesítő adatokat meghatározó kapcsolati objektum .<database-name>
: Annak az adatbázisnak a neve, amelyet katalógusként szeretne tükrözni az Azure Databricksben.
CREATE FOREIGN CATALOG [IF NOT EXISTS] <catalog-name> USING CONNECTION <connection-name>
OPTIONS (database '<database-name>');
Támogatott leküldéses leküldések
A következő leküldéses leküldések támogatottak az összes számításhoz:
- Szűrők
- Leképezések
- Korlát
- Függvények: részleges, csak szűrőkifejezésekhez. (Sztringfüggvények, matematikai függvények, adatok, idő- és időbélyegfüggvények és egyéb egyéb függvények, például Alias, Cast, SortOrder)
A Databricks Runtime 13.3 LTS-en és újabb verziókon, valamint az SQL Warehouse-számításon a következő leküldéses leküldések támogatottak:
- Összesítések
- A következő logikai operátorok: =, <, = <, >, >=, <=>
- A következő matematikai függvények (nem támogatottak, ha az ANSI le van tiltva): +, -, *, %, /
- A következő egyéb operátorok: ^, |, ~
- Rendezés, ha korláttal használjuk
A következő leküldéses leküldések nem támogatottak:
- Összekapcsolások
- Windows-függvények
Adattípus-leképezések
Amikor az SQL Serverről a Sparkba olvas, az adattípusok az alábbiak szerint lesznek megfeleltetve:
SQL Server-típus | Spark-típus |
---|---|
bigint (unsigned), decimális, pénz, numerikus, smallmoney | Decimális típus |
smallint, tinyint | ShortType |
egész | Egész számtípus |
bigint (ha aláírt) | LongType |
valós szám | FloatType |
float | DoubleType |
char, nchar, uniqueidentifier | CharType |
nvarchar, varchar | VarcharType |
szöveg, xml | StringType |
bináris, földrajzi hely, geometria, kép, időbélyeg, udt, varbinary | BinaryType |
bit | Logikai típus |
dátum: | DateType |
datetime, datetime, smalldatetime, time | TimestampType/TimestampNTZType |
*Amikor az SQL Serverről olvas, az SQL Server datetimes
a Sparkra TimestampType
van leképezve, ha preferTimestampNTZ = false
(alapértelmezett). Az SQL Server datetimes
a következőre van megfeleltetve: TimestampNTZType
ha preferTimestampNTZ = true
.