Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez a lap bemutatja, hogyan állíthatja be a Lakehouse Federationt összevont lekérdezések futtatására az Azure Databricks által nem felügyelt PostgreSQL-adatok lekérdezéseinek futtatásakor. 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 a PostgreSQL-adatbázisban futó lekérdezésekhez a Lakehouse Federation használatával szeretne csatlakozni, a következőket 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):
- Kapcsolódás a PostgreSQL-adatbázisban történő lekérdezések futtatásához.
- Egy idegen katalógus, amely tükrözi a PostgreSQL-adatbázison futtatott lekérdezéseket a Unity Catalogban, így a Unity Catalog lekérdezési szintaxisával és adatkezelési eszközeivel kezelheti az Azure Databricks felhasználói hozzáférését az adatbázishoz.
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 CONNECTIONjogosultsá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 aCREATE CONNECTIONjogosultsággal. - Külföldi katalógus létrehozásához rendelkeznie kell a metaadattár
CREATE CATALOGengedélyével, és vagy a kapcsolat tulajdonosának kell lennie, vagyCREATE FOREIGN CATALOGjogosultsággal kell rendelkeznie a kapcsolaton. A Unity Cataloghoz automatikusan engedélyezett munkaterületeken alapértelmezés szerint a munkaterület rendszergazdái rendelkeznek aCREATE CATALOGjogosultsá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.
Megjegyzé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, valamint az Unity Catalog-parancsokat.
Szükséges engedélyek: Metaadattár-rendszergazda vagy jogosultsággal CREATE CONNECTION rendelkező felhasználó.
Katalóguskezelő
- Az Azure Databricks-munkaterületen kattintson az
Katalógus.
- A Katalógus panel tetején kattintson a
, majd válassza a Kapcsolat létrehozása lehetőséget a menüből. - A Kapcsolat alapjai oldalán, a Kapcsolat beállítása varázslóban, adjon meg egy felhasználóbarát kapcsolatnevet.
- Válasszon PostgreSQLkapcsolattípusát.
- (Nem kötelező) Megjegyzés hozzáadása.
- Kattintson a Továbbgombra.
- A Hitelesítési lapon adja meg a PostgreSQL-példány alábbi kapcsolati tulajdonságait.
-
Kiszolgáló: Például:
postgres-demo.lb123.us-west-2.rds.amazonaws.com -
Port: Például:
5432 -
Felhasználó: Például:
postgres_user -
Jelszó: Például:
password123 -
userProvidedServerCertificate: Opcionális. A PostgreSQL példányod PEM-kódolt nyilvános tanúsítványa. A kapcsolat mindig SSL-lel titkosított, és ez a tanúsítvány igazolja a szerver személyazonosságát a TLS kézfogás során. Biztosítsd ezt, amikor a szervered egy privát vagy belső tanúsítványi hatóságtól származó tanúsítványt mutat be, amely nem az alapértelmezett bizalmi tárolóban van. Ez egy alternatíva a
trustServerCertificatetruebeállítás helyett, ami kihagyja ezt az ellenőrzést. Ha mindketten adtok egy tanúsítványt, és beállítotoktrustServerCertificate,trueakkor a megadott tanúsítvány elsőbbséget élvez. A hosztnév ellenőrzése a TLS kézfogás részeként történik (sslmode=verify-full): a kapcsolat meghibás, ha a tanúsítványon szereplő hosztnév nem egyezik meg a kért hosztnévvel. Állítsa a(z)sslmodeértékétverify-caértékre a tanúsítványlánc gazdagépnév-ellenőrzés nélküli ellenőrzéséhez.
-
Kiszolgáló: Például:
- Kattintson a Kapcsolat létrehozásaelemre.
- 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.
- (Nem kötelező) Kattintson a Kapcsolat tesztelése elemre annak ellenőrzéséhez, hogy működik-e.
- Kattintson Katalógus létrehozásagombra.
- 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.
- Módosítsa a tulajdonost, aki kezelheti a katalógus összes objektumához való hozzáférést. Kezdje el beírni a nevet vagy entitást a szövegmezőbe, majd kattintson a visszaadott eredmények között a találat közül a kívánt névre vagy entitásra.
- Adjon jogosultságokat a katalógusban. Kattintson az Engedélyezés gombra:
- Adja meg azokat a felelős személyeket, akik hozzáférhetnek a katalógusban lévő objektumokhoz. Kezdje el beírni a nevet vagy entitást a szövegmezőbe, majd kattintson a visszaadott eredmények között a találat közül a kívánt névre vagy entitásra.
- Válassza ki a jogosultsági beállításokat, amelyeket az egyes alanyoknak engedélyezni szeretne. Alapértelmezés szerint minden fiókfelhasználó
BROWSEkap.- A legördülő menüben válassza Adatolvasó lehetőséget, hogy
readjogosultságokat biztosítson a katalógus objektumaihoz. - A legördülő menüben válassza Adatszerkesztő lehetőséget, hogy
readésmodifyjogosultságokat biztosítson a katalógus objektumaihoz. - Jelölje ki manuálisan a megadni kívánt jogosultságokat.
- A legördülő menüben válassza Adatolvasó lehetőséget, hogy
- Kattintson a megadása gombra.
- Kattintson a Továbbgombra.
- 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.
- (Nem kötelező) Megjegyzés hozzáadása.
- Kattintson a Mentésgombra.
SQL
Futtassa a következő parancsot egy jegyzetfüzetben vagy a Databricks SQL-lekérdezésszerkesztőben.
CREATE CONNECTION <connection-name> TYPE postgresql
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 postgresql
OPTIONS (
host '<hostname>',
port '<port>',
user secret ('<secret-scope>','<secret-key-user>'),
password secret ('<secret-scope>','<secret-key-password>')
)
A kiszolgáló személyazonosságának a TLS-kézfogás során történő ellenőrzéséhez (például amikor a PostgreSQL-kiszolgáló egy olyan tanúsítványt mutat be, amelyet egy magán- vagy belső hitelesítésszolgáltató állított ki, és amely nem szerepel az alapértelmezett megbízható tanúsítványtárban), add meg a kiszolgáló PEM-kódolt tanúsítványát a userProvidedServerCertificate kapcsolóban. A kapcsolat mindig SSL-lel van titkosítva. Ez a lehetőség alternatívája, trustServerCertificate és elsőbbséget élvez vele szemben.
CREATE CONNECTION <connection-name> TYPE postgresql
OPTIONS (
host '<hostname>',
port '<port>',
user secret ('<secret-scope>','<secret-key-user>'),
password secret ('<secret-scope>','<secret-key-password>'),
userProvidedServerCertificate '<pem-encoded-certificate>'
)
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 készítése
Megjegyzé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ő
Az Azure Databricks-munkaterületen kattintson az
Katalógus a Catalog Explorer megnyitásához.
A Katalógus panel tetején kattintson a
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.
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 zárójelek közötti elemek opcionálisak. 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ések
Az alábbi táblázat a PostgreSQL á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 |
|---|---|
| Dátum-, idő- és időbélyegfüggvények (csak részleges, szűrőkifejezések) |
|
| Szűrők |
|
| Határ |
|
| Matematikai függvények (csak részleges, szűrőkifejezések) |
|
| Egyéb függvények (például Alias, Cast, SortOrder; részleges, csak szűrőkifejezések) |
|
| Offset |
|
| Projekciók |
|
| Karakterlánc függvények (csak részleges, szűrőkifejezések) |
|
| TABLESAMPLE (csere nélkül) |
|
| Aggregates |
|
| Aritmetikai operátorok (például +, -, *, %, /; nem támogatott, ha az ANSI le van tiltva) |
|
| Logikai operátorok (például =, <=>, <, <=, >, >=) |
|
| Bitenkénti operátorok (&, | és ~) |
|
| Rendezés, ha korláttal használjuk |
|
| Összekapcsolások |
|
| Windows függvények |
|
Adattípus-leképezések
Amikor a PostgreSQL-ből beolvassa a Sparkba, az adattípusok az alábbiak szerint kerülnek megfeleltetésre:
| PostgreSQL-típus | Spark-típus |
|---|---|
numeric |
DecimalType |
int2 |
ShortType |
int4 (ha nincs aláírva) |
IntegerType |
int8, oid, xidint4 , (ha aláírt) |
LongType |
float4 |
FloatType |
double precision, float8 |
DoubleType |
char |
CharType |
| \ |
VarcharType |
bpchar, character varying, json, jsonbmoney, point, supertext |
StringType |
| \ |
BinaryType |
bit, bool |
BooleanType |
date |
DateType |
tabstime, time, time időzónával, timetz, time időzóna nélkül, timestamp időzónával, timestamp, timestamptz, timestamp időzóna nélkül* |
TimestampType/TimestampNTZType |
| Postgresql-tömb típusa** | ArrayType |
Amikor a PostgreSQL-ből olvas, a PostgreSQL Timestamp a Sparkra TimestampType van leképezve, ha preferTimestampNTZ = false (alapértelmezett). A Postgresql Timestamp az if TimestampNTZTypeparancsra preferTimestampNTZ = true van leképezve.
**A korlátozott tömbtípusok támogatottak.