Sdílet prostřednictvím


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

Tento článek popisuje, jak nastavit federaci Lakehouse pro provádění federovaných dotazů na data v BigQuery, která nejsou spravována službou 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 pomocí syntaxe dotazů katalogu Unity a nástrojů pro správu dat spravovat uživatelský přístup k databázi Azure Databricks.

Než začnete

Požadavky na pracovní prostor:

  • Pracovní prostor aktivován 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 16.1 nebo vyšší a sdílený nebo režim přístupu jednoho uživatele.
  • 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 oprávněním CREATE CONNECTION k metastoru katalogu Unity připojenému k pracovnímu prostoru.
  • Chcete-li vytvořit cizí katalog, musíte mít oprávnění CREATE CATALOG k metastoru a být buď vlastníkem připojení, nebo mít oprávnění CREATE FOREIGN CATALOG pro 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 příkaz CREATE CONNECTION SQL v poznámkovém bloku Azure Databricks nebo editoru dotazů SQL Databricks.

Poznámka:

K vytvoření připojení můžete použít také rozhraní REST API Databricks nebo rozhraní příkazového řádku Databricks. Viz POST /api/2.1/unity-catalog/connections a příkazy katalogu Unity.

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 ikonu katalogu Katalog.

  2. V horní části podokna katalogu klikněte na ikonu Přidat nebo plusIkona Přidat a v nabídce vyberte Přidat připojení.

    Případně na stránce Rychlý přístup klikněte na tlačítko Externí data >, přejděte na kartu Připojení a klikněte na Vytvořit připojení.

  3. Na stránce základy připojení průvodce Nastavení připojení zadejte uživatelsky přívětivý název připojení.

  4. Vyberte typ připojení Google BigQuery a klikněte na tlačítko Další.

  5. Na stránce Ověřování zadejte JSON klíč účtu Google služby pro instance BigQuery.

    Jedná se o nezpracovaný objekt JSON, který slouží 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": "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. (Volitelné) Zadejte ID projektu vaší instance BigQuery:

    Toto je název projektu BigQuery, který se používá pro fakturaci pro všechny dotazy spuštěné v rámci tohoto připojení. Výchozí hodnota je ID projektu vašeho účtu služby.

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

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

  9. Na stránce základy katalogu zadejte název cizí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.

  10. (Volitelné) Kliknutím na Otestovat připojení potvrďte, že funguje.

  11. Klikněte na Vytvořit katalog.

  12. Na stránce Access vyberte pracovní prostory, ve kterých mají uživatelé přístup k vytvořenému katalogu. Můžete vybrat Všechny pracovní prostory mají přístup, nebo klepněte na Přiřadit k pracovním prostorům, vyberte pracovní prostory a potom klikněte na Přiřadit.

  13. Změňte vlastníka , kteří budou moct spravovat přístup ke všem objektům v katalogu. Začněte psát uživatele nebo skupinu do textového pole a poté klikněte na vybraného uživatele nebo skupinu ve vrácených výsledcích.

  14. Udělte oprávnění v katalogu. Klikněte na Odsouhlasit:

    1. Zadejte principály, kteří budou mít přístup k objektům v katalogu. Začněte psát uživatele nebo skupinu do textového pole a poté klikněte na vybraného uživatele nebo skupinu ve vrácených výsledcích.
    2. Vyberte přednastavení oprávnění , které se mají každému objektu zabezpečení udělit. Všichni uživatelé účtu mají ve výchozím nastavení udělené BROWSE.
      • V rozevírací nabídce vyberte Čtečka dat a udělte read oprávnění k objektům v katalogu.
      • Z rozevírací nabídky vyberte Datový editor a udělte read a modify oprávnění k objektům v katalogu.
      • Ručně vyberte oprávnění, která chcete udělit.
    3. Klikněte na Udělit.
  15. Klikněte na Další.

  16. Na stránce Metadata zadejte páry klíč-hodnota tagů. Další informace najdete v tématu Použití značek pro zabezpečitelné objekty v Katalogu Unity.

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

  18. Klikněte na Ulož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. Pro zobrazení příkladu objektu JSON navštivte na této stránce kartu Průzkumník katalogu.

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

Doporučujeme používat Azure Databricks tajných kódů 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

Poznámka:

Pokud k vytvoření připojení ke zdroji dat použijete uživatelské rozhraní, zahrne se vytvoření cizího katalogu a tento krok můžete přeskočit.

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. K vytvoření katalogu můžete použít také rozhraní REST API Databricks nebo rozhraní příkazového řádku Databricks. Viz POST /api/2.1/unity-catalog/catalogs nebo příkazy Unity Catalog .

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 kliknutím na ikonu katalogu Katalog otevřete Průzkumníka katalogu.

  2. V horní části podokna katalogu klikněte na Přidat nebo plusikonuIkona Přidat a z nabídky vyberte Přidat katalog.

    Případně na stránce Rychlý přístup klikněte na tlačítko Katalogy a potom klikněte na tlačítko Vytvořit katalog.

  3. (Volitelné) Zadejte následující vlastnost katalogu:

    ID projektu dat: Název projektu BigQuery obsahujícího data, která budou mapována na tento katalog. Výchozí hodnota je ID fakturačního projektu nastaveného na úrovni připojení.

  4. Postupujte podle pokynů pro vytváření cizích katalogů v Vytvořit katalogy.

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
  • Omezení
  • 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
  • Slučování (Databricks Runtime 16.1 nebo novější)

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

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