Spouštění federovaných dotazů v Google BigQuery

Důležité

Tato funkce je ve verzi Public Preview.

Tento článek popisuje, jak nastavit Federaci Lakehouse tak, aby spouštět federované dotazy na data BigQuery, která nespravuje Azure Databricks. Další informace o federaci Lakehouse najdete v tématu Co je Federace Lakehouse.

Pokud se chcete připojit k databázi BigQuery pomocí federace Lakehouse, musíte v metastore katalogu Azure Databricks Unity vytvořit následující:

  • Připojení k databázi BigQuery.
  • Cizí katalog, který zrcadlí vaši databázi BigQuery v katalogu Unity, abyste mohli ke správě přístupu uživatele Azure Databricks k databázi použít syntaxi dotazů a nástroje zásad správného řízení katalogu Unity.

Než začnete

Požadavky na pracovní prostor:

  • Pracovní prostor je povolený pro katalog Unity.

Požadavky na výpočetní prostředky:

  • Síťové připojení z clusteru Databricks Runtime nebo SQL Warehouse k cílovým databázovým systémům. Viz doporučení k sítím pro Federaci Lakehouse.
  • Clustery Azure Databricks musí používat Databricks Runtime 13.3 LTS nebo vyšší a sdílený nebo režim přístupu s jedním uživatelem.
  • Sql Warehouse musí být Verze Pro nebo Bezserverová.

Požadovaná oprávnění:

  • Pokud chcete vytvořit připojení, musíte být správcem metastoru nebo uživatelem s CREATE CONNECTION oprávněním k metastoru katalogu Unity připojenému k pracovnímu prostoru.
  • Chcete-li vytvořit cizí katalog, musíte mít CREATE CATALOG oprávnění k metastoru a být buď vlastníkem připojení, nebo mít CREATE FOREIGN CATALOG oprávnění k připojení.

Další požadavky na oprávnění jsou uvedeny v následující části založené na úlohách.

Vytvoření připojení

Připojení určuje cestu a přihlašovací údaje pro přístup k externímu databázovému systému. K vytvoření připojení můžete použít Průzkumníka katalogu nebo CREATE CONNECTION příkaz SQL v poznámkovém bloku Azure Databricks nebo v editoru dotazů SQL Databricks.

Požadovaná oprávnění: Správce metastoru nebo uživatel s oprávněním CREATE CONNECTION .

Průzkumník katalogu

  1. V pracovním prostoru Azure Databricks klikněte na Ikona kataloguKatalog.

  2. V levém podokně rozbalte nabídku Externí data a vyberte Připojení ions.

  3. Klikněte na Vytvořit připojení.

  4. Zadejte uživatelsky přívětivý název Připojení ionu.

  5. Vyberte typ Připojení ion BigQuery.

  6. Zadejte následující vlastnost připojení pro vaši instanci BigQuery.

    GoogleServiceAccountKeyJson: Nezpracovaný objekt JSON, který se používá k zadání projektu BigQuery a poskytnutí ověřování. Tento objekt JSON můžete vygenerovat a stáhnout ho ze stránky podrobností účtu služby v Google Cloudu v části KLÍČE. Účet služby musí mít v BigQuery udělená správná oprávnění, včetně uživatele BigQuery a Prohlížeče dat BigQuery. Například:

    {
      "type": "service_account",
      "project_id": "PROJECT_ID",
      "private_key_id": "KEY_ID",
      "private_key": "-----BEGIN PRIVATE KEY-----\nPRIVATE_KEY\n-----END PRIVATE KEY-----\n",
      "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"
    }
    
  7. (Volitelné) Kliknutím na test připojení potvrďte připojení k síti. Tato akce neotestuje ověřování.

  8. (Volitelné) Přidejte komentář.

  9. Klikněte na Vytvořit.

Sql

V poznámkovém bloku nebo editoru dotazů SQL Databricks spusťte následující příkaz. Nahraďte <GoogleServiceAccountKeyJson> nezpracovaným objektem JSON, který určuje projekt BigQuery a poskytuje ověřování. Tento objekt JSON můžete vygenerovat a stáhnout ho ze stránky podrobností účtu služby v Google Cloudu v části KLÍČE. Účet služby musí mít v BigQuery udělená správná oprávnění, včetně uživatele BigQuery a Prohlížeče dat BigQuery. Příklad objektu JSON zobrazte na této stránce kartu Průzkumník katalogu.

CREATE CONNECTION <connection-name> TYPE bigquery
OPTIONS (
  GoogleServiceAccountKeyJson '<GoogleServiceAccountKeyJson>'
);

Doporučujeme používat tajné kódy Azure Databricks místo řetězců prostého textu pro citlivé hodnoty, jako jsou přihlašovací údaje. Příklad:

CREATE CONNECTION <connection-name> TYPE bigquery
OPTIONS (
  GoogleServiceAccountKeyJson secret ('<secret-scope>','<secret-key-user>')
)

Informace o nastavení tajných kódů najdete v tématu Správa tajných kódů.

Vytvoření zahraničního katalogu

Cizí katalog zrcadlí databázi v externím datovém systému, abyste mohli dotazovat a spravovat přístup k datům v této databázi pomocí Azure Databricks a Unity Catalog. Chcete-li vytvořit cizí katalog, použijte připojení ke zdroji dat, který již byl definován.

K vytvoření cizího katalogu můžete použít Průzkumníka katalogu nebo CREATE FOREIGN CATALOG v poznámkovém bloku Azure Databricks nebo v editoru dotazů SQL Databricks.

Požadovaná oprávnění:CREATE CATALOG oprávnění k metastoru a vlastnictví připojení nebo CREATE FOREIGN CATALOG oprávnění k připojení.

Průzkumník katalogu

  1. V pracovním prostoru Azure Databricks klikněte na Ikona kataloguKatalog.
  2. Klikněte na tlačítko Vytvořit katalog .
  3. V dialogovém okně Vytvořit nový katalog zadejte název katalogu a vyberte typ cizího zboží.
  4. Vyberte Připojení ion, který poskytuje přístup k databázi, kterou chcete zrcadlit jako katalog Unity.
  5. Klikněte na Vytvořit.

Sql

V poznámkovém bloku nebo editoru SQL Databricks spusťte následující příkaz SQL. Položky v závorkách jsou volitelné. Nahraďte zástupné hodnoty.

  • <catalog-name>: Název katalogu v Azure Databricks.
  • <connection-name>: Objekt připojení, který určuje zdroj dat, cestu a přihlašovací údaje pro přístup.
CREATE FOREIGN CATALOG [IF NOT EXISTS] <catalog-name> USING CONNECTION <connection-name>;

Podporované odsdílení změn

Podporují se následující nabízení:

  • Filtry
  • Projekce
  • Limit
  • Funkce: částečné, pouze pro výrazy filtru. (Řetězcové funkce, matematické funkce, data, časová a časová razítka a další různé funkce, jako jsou Alias, Cast, SortOrder)
  • Souhrny
  • Řazení při použití s limitem

Následující nabízená oznámení nejsou podporována:

  • Spojení
  • Funkce Systému Windows

Mapování datového typu

Následující tabulka ukazuje mapování datového typu BigQuery na Spark.

Typ BigQuery Typ Sparku
bignumerické, číselné DecimalType
int64 LongType
float64 DoubleType
array, geography, interval, json, string, struct VarcharType
bajtů BinaryType
bool BooleanType
datum Typ data
datetime, time, timestamp TimestampType/TimestampNTZType

Při čtení z BigQuery se BigQuery Timestamp mapuje na Spark TimestampType , pokud preferTimestampNTZ = false (výchozí). BigQuery Timestamp je mapován na TimestampNTZType if preferTimestampNTZ = true.