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 külső 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 számítási erőforrás és a céladatbázis-rendszerek között. Lásd a Lakehouse Federation hálózatkezelési ajánlásait.
  • Az Azure Databricks compute-nek a Databricks Runtime 13.3 LTS vagy újabb verzióját kell használnia, és megosztott vagy egyfelhasználós hozzáférési módot.
  • Az SQL-raktáraknak pro- vagy kiszolgáló nélkülinek kell lenniük, és a 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 CREATE CONNECTION jogosultsággal rendelkező felhasználónak kell lennie a munkaterülethez csatolt Unity Catalog metaadattárban.
  • Külföldi katalógus létrehozásához rendelkeznie kell a metaadattár CREATE CATALOG engedélyével, és vagy a kapcsolat tulajdonosának kell lennie, vagy CREATE FOREIGN CATALOG jogosultsággal kell rendelkeznie 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 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 az Azure SQL Database-t, majd kattintson user_impersonation elemre a(z) Delegált engedélyekalatt.
  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 a 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 a 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 Katalógus ikonraKatalógus.

  2. A Katalógus panel tetején kattintson a Hozzáadás vagy plusz ikonra hozzáadása ikonra, majd 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, nyissa meg a Kapcsolatok lapot, majd kattintson Kapcsolat létrehozásagombra.

  3. A Kapcsolat alapjai oldalon a Kapcsolat beállítása varázslóban adja meg a felhasználóbarát kapcsolatnevet.

  4. Válasszon kapcsolat típust a SQL Serverrendszerhez.

  5. Válasszon egy hitelesítési típust a következők közül: OAuth vagy felhasználónév és jelszó (alapszintű hitelesítés).

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

  7. Kattintson a Továbbgombra.

  8. A Hitelesítési lapon adja meg az SQL Server-példány következő kapcsolati tulajdonságait. A kiválasztott hitelesítési módszerre jellemző tulajdonságokat zárójelben a Auth type előzi meg.

    • Gazdagép: Az SQL Server.
    • (Alapszintű hitelesítés) Kikötő
    • (Alapszintű hitelesítés) trustServerCertificate: Alapértelmezett érték: false. Ha trueértékre van állítva, az átviteli réteg SSL használatával titkosítja a csatornát, és megkerüli 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) OAuth-hatókör: Írja be a következő értéket módosítás nélkül: https://database.windows.net/.default offline_access.
    • (OAuth) Kattintson Bejelentkezés Azure Entra-azonosítóval. Adja meg Azure-felhasználónevét és jelszavát. Miután átirányításra kerül a Hitelesítési oldalra, az engedélyezési kód meg fog jelenni a felhasználói felületen.
  9. Kattintson a Kapcsolat létrehozásaelemre.

  10. (Alapszintű hitelesítés) A Kapcsolat részletei lapon adja meg a következőket:

    • Megbízhatósági kiszolgálótanúsítvány: Ez alapértelmezés szerint ki van jelölve. Ha ki van választva, az átviteli réteg az SSL használatával titkosítja a kommunikációs csatornát, és megkerüli 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.
    • alkalmazás szándékának: Az alkalmazás számítási feladatainak típusa a kiszolgálóhoz való csatlakozáskor.
  11. Kattintson a Továbbgombra.

  12. A Katalógus alapjai lapon adja meg az idegen nyelvű katalógus nevét. 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.

  13. (Nem kötelező) Kattintson a Kapcsolat tesztelése elemre annak ellenőrzéséhez, hogy működik-e.

  14. Kattintson a Katalógus létrehozásaelemre.

  15. Az Access lapon válassza ki azokat a munkaterületeket, amelyeken a felhasználók hozzáférhetnek a létrehozott katalógushoz. Kiválaszthatja Minden munkaterület rendelkezik hozzáféréssel, vagy kattintson a Hozzárendelés munkaterületekhezelemre, jelölje ki a munkaterületeket, majd kattintson hozzárendelése gombra.

  16. Módosítsa a tulajdonosát, aki képes kezelni a katalógus összes objektumához való hozzáférést. Kezdje el beírni a szereplőt a szövegmezőbe, majd kattintson a találatok között a szereplőre.

  17. Adjon jogosultságokat a katalógusban. Kattintson a "Engedélyezés"gombra:

    1. Adja meg azokat a jogosultakat, akik hozzáférhetnek a katalógusban lévő objektumokhoz. Kezdje el beírni a szereplőt a szövegmezőbe, majd kattintson a találatok között a szereplőre.
    2. Válassza ki a jogosultsági beállításokat, az egyes tagoknak való engedélyezéshez. Alapértelmezés szerint minden fiókfelhasználó BROWSE kap.
      • A legördülő menüben válassza Adatolvasó lehetőséget, hogy read jogosultságokat biztosítson a katalógus objektumaihoz.
      • A legördülő menüben válassza Adatszerkesztő lehetőséget, hogy read és modify jogosultságokat biztosítson a katalógus objektumaihoz.
      • Jelölje ki manuálisan a megadni kívánt jogosultságokat.
    3. Kattintson a gombra amegadásához.
  18. Kattintson a Továbbgombra.

  19. A Metaadatok lapon adja meg a címkék kulcs-érték párjait. További információ: Címkék alkalmazása a Unity Catalog biztonságos objektumaira.

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

  21. Kattintson a Mentésgombra.

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 kulcsokat használjon 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

Feljegyzés

Ha a felhasználói felülettel hoz létre kapcsolatot az adatforrással, a rendszer külföldi katalóguslétrehozásról is rendelkezik, és kihagyhatja ezt a lépést.

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 a CREATE FOREIGN CATALOG SQL-parancsot egy Azure Databricks-jegyzetfüzetben vagy az SQL-lekérdezésszerkesztőben.

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 parancsokat.

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 Katalógus ikonraKatalógus a Catalog Explorer megnyitásához.

  2. A Katalógus panel tetején kattintson a Hozzáadás vagy plusz ikonra hozzáadása ikonra, majd válassza 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ásához Katalógusok létrehozása.

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.
  • : Az adatforrást, elérési utat és hozzáférési hitelesítő adatokat megadó kapcsolatobjektum.
  • <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
  • Határ
  • 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 korlát alkalmazásakor

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.