Mi az a Lakehouse Federation?
Ez a cikk bemutatja a Lakehouse Federationt, a lekérdezés-összevonási platformot, amely lehetővé teszi, hogy az Azure Databricks használatával lekérdezéseket futtasson több külső adatforráson. Azt is ismerteti, hogyan set fel a Lakehouse Federation connections, és hogyan hozhat létre külföldi catalogs a Unity Catalog metaadattárban.
Mi az a Lakehouse Federation?
A Lakehouse Federation az Azure Databricks lekérdezés-összevonási platformja. A lekérdezési összevonás kifejezés olyan funkciók gyűjteményét írja le, amelyek lehetővé teszik a felhasználók és a rendszerek számára, hogy lekérdezéseket futtasson több adatforráson anélkül, hogy az összes adatot egységes rendszerbe kellene migrálniuk.
Az Azure Databricks a Unity Catalog használatával kezeli a lekérdezések összevonását. Az írásvédett connections a népszerű adatbázis-megoldásokhoz konfigurálhatja a pro SQL-raktárakban, kiszolgáló nélküli SQL-tárolókban és Databricks Runtime-fürtökben található illesztőprogramok használatával. A Unity Catalogadatszabályozási és adatleágazási eszközei biztosítják az adathozzáférés kezelését és naplózását az Azure Databricks-munkaterületek felhasználói által végrehajtott összes összevont lekérdezéshez.
Miért érdemes a Lakehouse Federationt használni?
A lakehouse hangsúlyozza az adatok központi tárolását az adatredundancia és az elkülönítés csökkentése érdekében. A szervezet különböző adatbázisrendszerek működtetésével rendelkezhet, és különböző okokból szeretné lekérdezni az adatokat a csatlakoztatott rendszerekben.
- Alkalmi jelentéskészítés.
- A koncepció igazolása.
- Az új ETL-folyamatok vagy jelentések feltárási fázisa.
- Számítási feladatok támogatása növekményes migrálás során.
Ezen forgatókönyvek mindegyikében a lekérdezések összevonásával gyorsabban juthat elemzésekhez, mivel lekérdezheti az adatokat a helyén, és elkerülheti az összetett és időigényes ETL-feldolgozást.
A Lakehouse Federation olyan használati esetekre szolgál, amikor:
- Nem szeretne adatokat beszúrni az Azure Databricksbe.
- Azt szeretné, hogy a lekérdezések kihasználják a számítás előnyeit a külső adatbázisrendszerben.
- Szeretné kihasználni a Unity Catalog felületeinek és adatszabályozásának előnyeit, beleértve a részletes hozzáférés-vezérlést, az adatkisorolást és a keresést.
A Lakehouse Összevonás beállításának áttekintése
Ha elérhetővé szeretne tenni egy adathalmazt írásvédett lekérdezéshez a Lakehouse Federation használatával, hozza létre a következőket:
- Egy kapcsolati, egy Unity Catalog-hoz tartozó biztosítható objektum, amely meghatározza a külső adatbázisrendszer elérésének elérési útját és credentials.
- Egy külső catalog, amely a Unity Catalog-ban egy biztonságos objektum, amely egy külső adatrendszer adatbázisát tükrözi, lehetővé téve, hogy írásvédett lekérdezéseket hajtson végre az adott adatrendszeren az Azure Databricks-munkaterületen, és a Unity Catalogsegítségével kezelheti a hozzáférést.
Támogatott adatforrások
A Lakehouse Federation a következő adatbázistípusokhoz támogatja a connections:
- MySQL
- PostgreSQL
- Teradata
- Oracle
- Amazon Redshift
- Salesforce Data Cloud
- Snowflake
- Microsoft SQL Server
- Azure Synapse (SQL Data Warehouse)
- Google BigQuery
- Databricks
- Hive metaadattár-összevonási
Kapcsolatra vonatkozó követelmények
Munkaterületre vonatkozó követelmények:
- A Unity Catalogszámára 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 a munkaterülethez csatolt Unity
CREATE CONNECTION
metaadattár Catalog jogosultsággal rendelkező felhasználónak kell lennie. - Ha egy idegen catalog-t szeretne létrehozni, rendelkeznie kell a metaadattár
CREATE CATALOG
engedéllyel, és vagy a kapcsolat tulajdonosának kell lennie, vagyCREATE FOREIGN CATALOG
jogosultsággal kell rendelkeznie a kapcsolaton.
Az alábbi tevékenységalapú szakaszokban további engedélykövetelmények vannak megadva.
Kapcsolat létrehozása
A kapcsolat egy elérési utat és credentials-t ad meg a külső adatbázisrendszer eléréséhez. 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 Unity Catalog parancsok.
Szükséges engedélyek: Metaadattár-rendszergazda vagy jogosultsággal CREATE CONNECTION
rendelkező felhasználó.
Catalog Explorer
Az Azure Databricks-munkaterületen kattintson
Catalog.
A Catalog panel tetején kattintson a
hozzáadása ikonra, és selectKapcsolat hozzáadása a menüből.
Másik lehetőségként a Gyorselérési lapon kattintson a Külső adatok > gombra, lépjen a Connections fülre, és kattintson a Kapcsolat létrehozásagombra.
Adjon meg egy felhasználóbarát kapcsolatnevet.
Select kapcsolattípus (adatbázis-szolgáltató, például MySQL vagy PostgreSQL).
(Nem kötelező) Megjegyzés hozzáadása.
Kattintson a Továbbgombra.
Adja meg a kapcsolat tulajdonságait (például gazdagépadatokat, útvonalat és hozzáférési credentials).
Minden kapcsolattípushoz eltérő kapcsolati információ szükséges. Tekintse meg a kapcsolattípusról szóló cikket, amely a bal oldali tartalomjegyzék table pontjában szerepel.
Kattintson a Kapcsolat létrehozásaelemre.
Adja meg az idegen catalognevét.
(Nem kötelező) Kattintson a Kapcsolat tesztelése elemre annak ellenőrzéséhez, hogy működik-e.
Kattintson a cataloglétrehozása gombra.
Select azok a munkaterületek, amelyeken a felhasználók hozzáférhetnek az általad létrehozott catalog-hez. select Minden munkaterület rendelkezik hozzáféréssel, vagy kattintson a Hozzárendelés munkaterületekhezgombra, select a munkaterületekre, majd kattintson a Hozzárendelésgombra.
Módosítsa a tulajdonosát-re, aki képes lesz kezelni az összes objektumhoz való hozzáférést a catalogterületen. Kezdje el beírni a nevet a szövegmezőbe, majd kattintson a találatok között a megfelelő névre.
Grant Jogosultságok esetén catalog. Kattintson a Grant:
- Adja meg azokat a felelős személyeket, akik hozzáférhetnek az catalogobjektumaihoz. Kezdje el beírni a nevet a szövegmezőbe, majd kattintson a találatok között a megfelelő névre.
-
Select a Privilege előbeállításai minden egyes alanyhoz grant. Alapértelmezés szerint minden fiókfelhasználó
BROWSE
kap.-
Select
Data Reader a legördülő menüből az grant
read
jogosultságokat adjon az catalogobjektumaihoz. -
Select
Data Editor a legördülő menüből a grantobjektumainak
read
modify
és catalog jogosultságaihoz. - Manuálisan rendelje hozzá a jogosultságokat a(z) select-hez grant.
-
Select
Data Reader a legördülő menüből az grant
- Kattintson a Grantgombra.
- 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 objektumokra.
- (Nem kötelező) Megjegyzés hozzáadása.
- Kattintson a Mentésgombra.
SQL
Futtassa a következő parancsot egy jegyzetfüzetben vagy az SQL-lekérdezésszerkesztőben. Ez a példa a connections elemre egy PostgreSQL adatbázisban. A lehetőségek kapcsolattípusonként eltérőek. Tekintse meg a kapcsolattípusról szóló cikket, amely a bal oldali tartalomjegyzék table pontjában szerepel.
CREATE CONNECTION <connection-name> TYPE postgresql
OPTIONS (
host '<hostname>',
port '<port>',
user '<user>',
password '<password>'
);
Javasoljuk, hogy az Azure Databricks titkos kódokat használjon egyszerű szöveges sztringek helyett olyan bizalmas values, mint credentials. 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 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.
A meglévő connectionskezelésével kapcsolatos információkért lásd: connections kezelése a Lakehouse Federation.
Külső catalog létrehozása
Feljegyzés
Ha a felhasználói felületen keresztül hoz létre kapcsolatot az adatforrással, akkor a catalog elem létrehozása is automatikusan megtörténik, így kihagyhatja ezt a lépést.
A külső catalog egy külső adatrendszer adatbázisát tükrözi, így az Azure Databricks és a Unity Cataloghasználatával lekérdezheti és kezelheti az adatbázisban levő adatokhoz való hozzáférést. Külső cataloglétrehozásához a már definiált adatforráshoz való kapcsolatot kell használnia.
Idegen cataloglétrehozásához használhatja Catalog Explorert vagy az CREATE FOREIGN CATALOG
SQL-parancsot egy Azure Databricks-jegyzetfüzetben vagy az SQL-lekérdezésszerkesztőben. Használhatja a Unity Catalog API-t is. Lásd az Azure Databricks referenciadokumentációját.
A külső catalog metaadatok szinkronizálódnak a Unity Catalog a catalog-vel történő minden interakciónál. A Unity
Szükséges engedélyek:CREATE CATALOG
a metaadattár engedélye, illetve a kapcsolat tulajdonjoga vagy a CREATE FOREIGN CATALOG
kapcsolat jogosultsága.
Catalog Explorer
Az Azure Databricks-munkaterületen kattintson
Catalog ikonra Catalog Explorer megnyitásához.
A Catalog panel tetején kattintson a
hozzáadása ikonra, és selectcatalog hozzáadása a menüből.
Másik lehetőségként a Gyorselérési-oldal lapon kattintson a Catalogs gombra, majd kattintson a Create catalog gombra.
Kövesse az idegen catalogs létrehozására vonatkozó utasításokat a Létrehoz catalogscímű témakörben.
SQL
Futtassa a következő SQL-parancsot egy jegyzetfüzetben vagy az SQL-lekérdezésszerkesztőben. A szögletes zárójelek nem kötelezőek. Cserélje le a helyőrzőt values:
-
<catalog-name>
: Az Azure Databricks catalog neve. -
<connection-name>
: A kapcsolat-objektum, amely az adatforrást, elérési utat és hozzáférést határozza meg credentials. -
<database-name>
: Annak az adatbázisnak a neve, amelyet catalog szeretne tükrözni az Azure Databricksben. A kétrétegű névteret használó MySQL-hez nem szükséges. : csak a Databricks-to-Databricks : A tükrözni kívánt külső Databricks-munkaterület neve. Lásd: Külső cataloglétrehozása.
CREATE FOREIGN CATALOG [IF NOT EXISTS] <catalog-name> USING CONNECTION <connection-name>
OPTIONS (database '<database-name>');
A külföldi catalogskezelésével és munkavégzésével kapcsolatos információkért lásd: Külföldi catalogskezelése és munkavégzése.
Lakehouse Federation és materializált views
A Databricks azt javasolja, hogy a Lakehouse Federation használatával töltsön be külső adatokat a materializált viewslétrehozásakor. Lásd a anyagosított views használatát a Databricks SQL-ben.
A Lakehouse Federation használatakor a felhasználók az alábbiak szerint hivatkozhatnak az összevont adatokra:
CREATE MATERIALIZED VIEW xyz AS SELECT * FROM federated_catalog.federated_schema.federated_table;
Rendszer által létrehozott összevont lekérdezések megtekintése
A Lakehouse Federation a Databricks SQL-utasításokat lefordítja az összevont adatforrásba leküldhető utasításokra. A létrehozott SQL-utasítás megtekintéséhez kattintson a lekérdezésprofilgráfnézetében található idegen adatforrás-vizsgálati csomópontra, vagy futtassa a EXPLAIN FORMATTED SQL-utasítást. A lefedettséggel kapcsolatban tekintse meg az adatforrások dokumentációjának támogatott leküldéses szakaszát.
Korlátozások
- A lekérdezések írásvédettek.
- A connections korlátozása a Databricks SQL egyidejű lekérdezés limithasználatával történik. Nincs limit kapcsolatonként a raktárak között. Tekintse meg a pro- és klasszikus SQL-raktárak várólistázását és automatikus skálázását.
- A Unity Tables érvénytelen neveket tartalmazó Catalog és sémákat nem támogatja a Unity Catalog egy idegen cataloglétrehozásakor. Lásd az elnevezési szabályok és korlátozások list a Korlátozások részben.
- Table nevek és schema nevek kisbetűssé válnak a Unity Catalog-ben. A kereséseknek kisbetűs neveket is használniuk kell. Ha vannak ugyanazokat a kisbetűs neveket viselő tables vagy sémák, csak az egyik tables vagy séma kerül importálásra az idegen catalog-be.
- Minden hivatkozott külföldi table esetében az Azure Databricks ütemez egy alkérdést a távoli rendszerben, hogy az adott table egy részhalmazát visszaadja, majd az eredményt egyetlen adatfolyamon keresztül visszaküldi egy Azure Databricks-végrehajtói feladatnak. Ha az eredmény set túl nagy, előfordulhat, hogy a végrehajtó kifogy a memóriából.
- Az egyfelhasználós hozzáférési mód csak a kapcsolatot birtoklő felhasználók számára érhető el.
- A Lakehouse Federation nem tudja összevonni a külső tables az Azure Synapse connections vagy Redshift connectionskis- és nagybetűkre érzékeny azonosítóival.
Erőforráskvóták
Az Azure Databricks erőforráskvótákat kényszerít ki az összes Unity Catalog biztonságos objektumra. Ezek a kvóták az erőforráskorlátokban vannak felsorolva. Az idegen catalogs és az összes bennük lévő objektum szerepel a teljes kvótahasználatban.
Ha várhatóan túllépi ezeket az erőforráskorlátokat, forduljon az Azure Databricks-fiók csapatához.
A kvótahasználatot a Unity Catalog erőforráskvóta API-kkal figyelheti. Lásd: A Unity Catalog erőforráskvóták használatának figyelése.
További erőforrások
- Összevont lekérdezések (Lakehouse Federation) az SQL nyelvi referenciájában