Összevont lekérdezések futtatása a Microsoft SQL Server-en

Ez a lap bemutatja, hogyan állíthatja be a Lakehouse Federationt összevont lekérdezések futtatására olyan SQL Server-adatokon, amelyeket nem az Azure Databricks kezel. A Lakehouse Federation szolgáltatással kapcsolatos további információkért lásd a következőt: Kapcsolódás külső adatbázisokhoz és katalógusokhoz

Ha az SQL Server-adatbázishoz a Lakehouse Federation használatával szeretne csatlakozni, az alábbiakat kell létrehoznia az Azure Databricks Unity Catalog metaadattárában (a 2023. november 9. után létrehozott munkaterületeken már automatikusan ki van építve a Unity Catalog metaadattára):

  • 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. A 2023. november 9. után létrehozott munkaterületek automatikusan engedélyezve vannak a Unity Katalógusban, beleértve az automatikus metaadattár-kiépítést is. Nem kell manuálisan létrehoznia egy metaadattárat, hacsak a munkaterület nem előzi meg az automatikus engedélyezést, és nem lett aktiválva a Unity Catalog számára. Tekintse meg a Unity Catalog használatának első lépéseit.

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, valamint a Standard vagy dedikált hozzáférési módot kell használnia.
  • 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. A Unity Cataloghoz automatikusan engedélyezett munkaterületeken alapértelmezés szerint a munkaterület rendszergazdái rendelkeznek a CREATE CONNECTION jogosultsággal.
  • 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. A Unity Cataloghoz automatikusan engedélyezett munkaterületeken alapértelmezés szerint a munkaterület rendszergazdái rendelkeznek a CREATE CATALOG jogosultsággal.

Az alábbi tevékenységalapú szakaszokban további engedélykövetelmények vannak megadva.

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.

Note

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 az Adatok ikonra.Katalógus.

  2. A Katalógus panel tetején kattintson a Hozzáadás vagy plusz ikonra, majd válassza a Kapcsolat létrehozása lehetőséget a menüből.

  3. A Kapcsolat beállítása varázsló Kapcsolat alapjai lapján adjon meg egy felhasználóbarát kapcsolatnevet.

  4. Válassza ki az SQL Serverkapcsolattípusát.

  5. Válassza ki az OAuth, az OAuth Machine to Machine vagy aFelhasználónév és jelszó (alapszintű hitelesítés) hitelesítési típusát.

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

  7. Kattintson a Tovább feliratra.

  8. A Hitelesítés 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.

    • Host: Az SQL szerver.
    • (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) userProvidedServerCertificate: Nem kötelező. A SQL Server példány PEM-kódolású nyilvános tanúsítványa. A kapcsolat mindig SSL-lel van titkosítva; Ez a tanúsítvány a kiszolgáló identitásának ellenőrzésére szolgál a TLS-kézfogás során, így az illesztőprogram megerősíti, hogy a célkiszolgálóhoz csatlakozik ahelyett, hogy vakon bízik benne. Ezt akkor adja meg, ha a kiszolgáló olyan magán- vagy belső hitelesítésszolgáltatótól származó tanúsítványt mutat be, amely nem az alapértelmezett megbízhatósági tárolóban található. Alternatívája annak, hogy a(z) trustServerCertificate értékét true értékre állítsa (ami kihagyja a személyazonosság ellenőrzését); ha tanúsítvány van megadva, az elsőbbséget élvez a(z) trustServerCertificate helyett.
    • (Alapszintű hitelesítés) Felhasználó
    • (Alapszintű hitelesítés) Jelszó
    • (OAuth) Adja meg az SQL Server-összevonáshoz készült Microsoft Entra ID konfigurálása című témakörben összegyűjtött kapcsolati adatokat.
  9. Kattintson a Kapcsolat létrehozása elemre.

  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ánya: Ez alapértelmezés szerint nincs bejelö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.
    • Felhasználó által megadott kiszolgálótanúsítvány: Nem kötelező. A SQL Server példány PEM-kódolású nyilvános tanúsítványa. A kapcsolat mindig SSL-lel van titkosítva. Ez a tanúsítvány a kiszolgáló identitásának ellenőrzésére szolgál a TLS-kézfogás során. Ez megerősíti, hogy az illesztőprogram nem bízik meg benne vakon, hanem a kívánt kiszolgálóhoz csatlakozik. Ezt akkor adja meg, ha a kiszolgáló olyan magán- vagy belső hitelesítésszolgáltatótól származó tanúsítványt mutat be, amely nem az alapértelmezett megbízhatósági tárolóban található. Ez egy alternatíva a Megbízható kiszolgáló tanúsítványának kiválasztására, amely kihagyja az identitásérvényesítést. A tanúsítvány megadásakor elsőbbséget élvez a megbízhatósági kiszolgáló tanúsítványával szemben.
    • Alkalmazás szándéka: Az alkalmazás számítási feladatainak típusa kiszolgálóhoz való csatlakozáskor.
  11. Kattintson a Tovább feliratra.

  12. A Katalógus alapjai lapon adja meg a külföldi 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. Kattintson a Katalógus létrehozása elemre.

  14. Az Access lapon válassza ki azokat a munkaterületeket, amelyeken a felhasználók hozzáférhetnek a létrehozott katalógushoz. Jelölje ki az Összes munkaterület hozzáféréssel rendelkezik lehetőséget, vagy kattintson a Munkaterületek hozzárendelése gombra, jelölje ki a munkaterületeket, majd kattintson a Hozzárendelés gombra.

  15. Módosítsa azt a tulajdonost , aki kezelni tudja 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.

  16. Jogosultságok megadása a katalógusban. Kattintson a "Engedélyezés"gombra:

    1. Adja meg a meghatározó személyeket, 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 az egyes tagoknak adható jogosultsági beállításokat . Alapértelmezés szerint minden fiókfelhasználó BROWSE kap.
      • Válassza az Adatolvasó lehetőséget a legördülő menüben a katalógusban lévő objektumokra vonatkozó jogosultságok megadásához read .
      • Válassza az Adatszerkesztőt a legördülő menüből, hogy read és modify jogosultságokat adjon a katalógus objektumaihoz.
      • Jelölje ki manuálisan a megadni kívánt jogosultságokat.
    3. Kattintson az Engedélyezés gombra.
  17. Kattintson a Tovább feliratra.

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

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

  20. Kattintson a Mentés lehetőségre.

Note

(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éldául:

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.

Ha ellenőrizni szeretné a kiszolgáló identitását a TLS-kézfogás során (például ha a SQL Server olyan tanúsítványt mutat be egy privát vagy belső hitelesítésszolgáltatótól, amely nem az alapértelmezett megbízhatósági tárolóban található), adja át a kiszolgáló PEM-kódolt tanúsítványát a userProvidedServerCertificate beállításban. A kapcsolat mindig SSL-lel van titkosítva. Ez a tanúsítvány megerősíti, hogy az illesztőprogram ahelyett, hogy vakon megbízik benne, csatlakozik a kívánt kiszolgálóhoz. Ez a lehetőség alternatívája, trustServerCertificate és elsőbbséget élvez vele szemben.

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>'),
  userProvidedServerCertificate '<pem-encoded-certificate>'
)

Külföldi katalógus létrehozása

Note

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

Szükséges engedélyek:CREATE CATALOG engedélyt a metaadattárban, illetve a kapcsolat tulajdonjogát vagy a CREATE FOREIGN CATALOG kapcsolat jogosultságát.

Katalóguskezelő

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

  2. A Katalógus panel tetején kattintson a Hozzáadás vagy plusz ikonra, majd 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 zárójelek közötti elemek opcionálisak. Cserélje le a helyettesítő é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ések

Az alábbi táblázat az SQL Server által támogatott leküldéses műveleteket és az egyes műveletekhez szükséges számításokat sorolja fel.

Tolásos automata Támogatott számítás
Filters Támogatott Minden számítási kapacitás
Tartalmazza, Kezdődik valamivel, Végződik valamivel Támogatott Minden számítási kapacitás
Limit Támogatott Minden számítási kapacitás
Matematikai függvények
(csak részleges, szűrőkifejezések)
Támogatott Minden számítási kapacitás
Egyéb függvények
(például Alias, Cast, SortOrder; részleges, csak szűrőkifejezések)
Támogatott Minden számítási kapacitás
Projections Támogatott Minden számítási kapacitás
Karakterlánc függvények
(csak részleges, szűrőkifejezések)
Támogatott Minden számítási kapacitás
Aggregates Támogatott Databricks Runtime 13.3 LTS és újabb verziók és SQL-raktárak
Aritmetikai operátorok
(például +, -, *, %, /; nem támogatott, ha az ANSI le van tiltva)
Támogatott Databricks Runtime 13.3 LTS és újabb verziók és SQL-raktárak
Logikai operátorok
(például =, <=>, <, <=, >, >=)
Támogatott Databricks Runtime 13.3 LTS és újabb verziók és SQL-raktárak
Bitenkénti operátorok
(>, |, ^ és ~)
Támogatott Databricks Runtime 13.3 LTS és újabb verziók és SQL-raktárak
Rendezés, amikor limitekkel használjuk Támogatott Databricks Runtime 13.3 LTS és újabb verziók és SQL-raktárak
Joins Támogatott Databricks Runtime 17.2 és újabb verziók, valamint SQL Warehouse-számítás. Ez a leküldéses feldolgozás nyilvános előzetes állapotban érhető el; engedélyezze a Join-leküldés federált lekérdezésekhez kapcsolót a Előzetes verziók lapon.
Ablakfunkciók Nem támogatott Nem támogatott

Adattípus-leképezések

Amikor adatokat olvas az SQL Serverből a Sparkba, az adattípusok az alábbi módon kerülnek megfeleltetésre:

SQL Server-típus Spark-típus
bigint(aláíratlan), decimal, money, numericsmallmoney DecimalType
smallint, tinyint ShortType
int IntegerType
bigint (ha aláírt) LongType
real FloatType
float DoubleType
\, \, \ CharType
nvarchar, varchar VarcharType
text, xml StringType
binary, geography, geometry, imagetimestamp, udtvarbinary BinaryType
bit BooleanType
date DateType
datetime, datetime2, smalldatetimetime 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.

További erőforrások