Összevont lekérdezések futtatása a Google BigQueryben
Ez a cikk bemutatja, hogyan állíthatja be a Lakehouse Federationt összevont lekérdezések futtatására olyan BigQuery-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 a Lakehouse Federation használatával szeretne csatlakozni a BigQuery-adatbázishoz, az alábbiakat kell létrehoznia az Azure Databricks Unity Catalog metaadattárában:
- Kapcsolat a BigQuery-adatbázissal.
- Egy idegen katalógus, amely tükrözi a BigQuery-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ó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.
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 16.1 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.
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, 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 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 a POST /api/2.1/unity-catalog/connections és a 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
Katalógus.
A Katalógus panel tetején kattintson a
vagy plusz ikonra, majd válassza a Kapcsolat hozzáadása parancsot 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 a Kapcsolat létrehozásagombra.
A Kapcsolat alapjai oldalon, a Kapcsolat beállítása varázslóban adjon meg egy felhasználóbarát kapcsolatnevet.
Válassza ki Google BigQuery kapcsolattípusát, majd kattintson a Továbbgombra.
A Hitelesítési lapon adja meg a BigQuery-példányhoz tartozó Google szolgáltatásfiók JSON-kulcsát.
Ez egy nyers JSON-objektum, amely a BigQuery-projekt megadására és hitelesítésre szolgál. Létrehozhatja ezt a JSON-objektumot, és letöltheti azt a Google Cloud szolgáltatásfiók-részleteinek oldaláról a "KEYS" alatt. A szolgáltatásfióknak megfelelő engedélyekkel kell rendelkeznie a BigQueryben, beleértve BigQuery-felhasználó és BigQuery-adatmegjelenítő. Például:
{ "type": "service_account", "project_id": "PROJECT_ID", "private_key_id": "KEY_ID", "private_key": "PRIVATE_KEY", "client_email": "SERVICE_ACCOUNT_EMAIL", "client_id": "CLIENT_ID", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "token_uri": "https://accounts.google.com/o/oauth2/token", "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/SERVICE_ACCOUNT_EMAIL", "universe_domain": "googleapis.com" }
(Nem kötelező) Adja meg a BigQuery-példány projektazonosítóját:
Ez annak a BigQuery-projektnek a neve, amely a kapcsolat alatt futtatott összes lekérdezés számlázásához használatos. Alapértelmezés szerint a szolgáltatásfiók projektazonosítója. A szolgáltatásfióknak megfelelő engedélyekkel kell rendelkeznie ehhez a projekthez a BigQueryben, beleértve BigQuery-felhasználó. Ebben a projektben további, a BigQuery által ideiglenes táblák tárolására használt adatkészletek hozhatók létre.
(Nem kötelező) Megjegyzés hozzáadása.
Kattintson a Kapcsolat létrehozásaelemre.
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.
(Nem kötelező) Kattintson a Kapcsolat tesztelése gombra annak ellenőrzéséhez, hogy működik-e.
Kattintson a Katalógus létrehozásaparancsra.
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 képes lesz kezelni a katalógus összes objektumához való hozzáférést. Kezdje el beírni a megbízott nevét a szövegmezőbe, majd kattintson a visszaadott eredmények között a megbízottra.
Adjon jogosultságokat a katalógushoz. Kattintson a "Engedélyezés"gombra:
- Adja meg azokat a felelősöket, akik hozzáférhetnek a katalógusban lévő objektumokhoz. Kezdje el beírni a megbízott nevét a szövegmezőbe, majd kattintson a visszaadott eredmények között a megbízottra.
- Válassza ki a jogosultsági beállításokat, amelyeket az egyes alanyoknak kíván adni. 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
ésmodify
jogosultsá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(z) elemre és adja meg a(z)elemet.
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. Cserélje le <GoogleServiceAccountKeyJson>
egy nyers JSON-objektumra, amely megadja a BigQuery-projektet, és hitelesítést biztosít. Létrehozhatja ezt a JSON-objektumot, és letöltheti azt a Google Cloud szolgáltatásfiók-részleteinek oldaláról a "KEYS" alatt. A szolgáltatásfióknak megfelelő engedélyekkel kell rendelkeznie a BigQueryben, beleértve a BigQuery-felhasználót és a BigQuery-adatmegjelenítőt. Egy példa JSON-objektum esetében tekintse meg a Katalóguskezelő lapot ezen a lapon.
CREATE CONNECTION <connection-name> TYPE bigquery
OPTIONS (
GoogleServiceAccountKeyJson '<GoogleServiceAccountKeyJson>'
);
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 bigquery
OPTIONS (
GoogleServiceAccountKeyJson secret ('<secret-scope>','<secret-key-user>')
)
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.
Külföldi 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. Ha idegen katalógust szeretne létrehozni, használjon egy kapcsolatot a már definiált adatforrással.
Külföldi katalógus létrehozásához használhatja a Catalog Explorert vagy a CREATE FOREIGN CATALOG
egy Azure Databricks-jegyzetfüzetben vagy a Databricks 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 vagy 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
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.
(Nem kötelező) Adja meg a következő katalógustulajdonságot:
adatprojekt-azonosító: A BigQuery-projekt neve, amely a katalógushoz leképezett adatokat tartalmazza. Alapértelmezetten a kapcsolat szintjén beállított számlázási projektazonosítót használja.
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 a Databricks SQL-szerkesztő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.
CREATE FOREIGN CATALOG [IF NOT EXISTS] <catalog-name> USING CONNECTION <connection-name>;
Támogatott leküldéses leküldések
A következő leküldéses leküldések támogatottak:
- 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)
- Összesítések
- Rendezés, amikor limitekkel használjuk
- Illesztések (Databricks Runtime 16.1 vagy újabb)
A következő leküldéses leküldések nem támogatottak:
- Windows-függvények
Adattípus-leképezések
Az alábbi táblázat a BigQuery–Spark adattípus-leképezést mutatja be.
BigQuery-típus | Spark-típus |
---|---|
bignumeric, numerikus | Decimális típus |
int64 | LongType |
float64 | DoubleType |
tömb, földrajzi hely, intervallum, json, sztring, struct | VarcharType |
bájt | BinaryType |
logikai | Logikai típus |
dátum: | DateType |
datetime, time, timetamp | TimestampType/TimestampNTZType |
Amikor a BigQueryből olvas, a BigQuery Timestamp
a Sparkra TimestampType
van leképezve, ha preferTimestampNTZ = false
(alapértelmezett). BigQuery Timestamp
van megfeleltetve, ha TimestampNTZType
preferTimestampNTZ = true
.