Megosztás a következőn keresztül:


Ö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 rendelkeznie CREATE 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.

  1. Jelentkezzen be az Azure Portalra.
  2. A bal oldali navigációs sávon kattintson a Microsoft Entra-azonosítóra.
  3. Kattintson a Alkalmazásregisztrációk.
  4. 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: .
  5. Kattintson a Regisztrálás parancsra.
  6. 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.
  7. Kattintson a Tanúsítványok > titkos kódok elemre.
  8. Az Ügyfél titkos kulcsok lapján kattintson az Új ügyfélkód gombra.
  9. Adja meg a titkos kód leírását és a lejáratot (az alapértelmezett beállítás 180 nap).
  10. Kattintson a Hozzáadás gombra.
  11. Másolja ki az ügyfél titkos kódjának létrehozott értékét.
  12. Kattintson az API-engedélyekre.
  13. Kattintson az Engedély hozzáadása gombra.
  14. Válassza ki az Azure SQL Database-t, és kattintson a user_impersonation a Delegált engedélyek területen.
  15. 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ő

  1. Az Azure Databricks-munkaterületen kattintson a Katalógus elemre Katalógus ikon .

  2. A Katalógus panel tetején kattintson aHozzáadás vagy plusz ikon 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.

  3. Adjon meg egy felhasználóbarát kapcsolatnevet.

  4. Válassza ki az SQL Server kapcsolattípusát.

  5. Válassza ki az OAuth hitelesítési típusát vagy a felhasználónevet és a jelszót.

  6. 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 van trueá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.
  7. (Nem kötelező) Kattintson a Kapcsolat tesztelése elemre annak ellenőrzéséhez, hogy működik-e.

  8. (Nem kötelező) Megjegyzés hozzáadása.

  9. 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ő

  1. Az Azure Databricks-munkaterületen kattintson a Katalógus gombra Katalógus ikon a Catalog Explorer megnyitásához.

  2. A Katalógus panel tetején kattintson aHozzáadás vagy plusz ikon 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.

  3. 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:

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.