Megosztás a következőn keresztül:


Ö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, 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.

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ő

  1. Az Azure Databricks-munkaterületen kattintson Katalógus ikonraKatalógus.

  2. A Katalógus panel tetején kattintson a Hozzáadás ikonravagy 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.

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

  4. Válassza ki Google BigQuery kapcsolattípusát, majd kattintson a Továbbgombra.

  5. 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"
    }
    
  6. (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.

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

  8. Kattintson a Kapcsolat létrehozásaelemre.

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

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

  11. Kattintson a Katalógus létrehozásaparancsra.

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

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

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

    1. 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.
    2. 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 é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(z) elemre és adja meg a(z)elemet.
  15. Kattintson a Továbbgombra.

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

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

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

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

  4. 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 TimestampNTZTypepreferTimestampNTZ = true.