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
V pracovním prostoru Azure Databricks klikněte na ikonu katalogu
Katalog.
V horní části podokna katalogu
klikněte na ikonu Přidat nebo plus Ikona Přidat a v nabídce vybertePř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í.
Na stránce základy připojení průvodce Nastavení připojení zadejte uživatelsky přívětivý název připojení.
Vyberte typ připojení
Google BigQuery a klikněte na tlačítko Další .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" }
(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.
(Volitelné) Přidejte komentář.
Klikněte na Vytvořit připojení.
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.
(Volitelné) Kliknutím na Otestovat připojení potvrďte, že funguje.
Klikněte na Vytvořit katalog.
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.
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. Udělte oprávnění v katalogu. Klikněte na Odsouhlasit:
- 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.
- 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
amodify
oprávnění k objektům v katalogu. - Ručně vyberte oprávnění, která chcete udělit.
- V rozevírací nabídce vyberte Čtečka dat a udělte
- Klikněte na Udělit.
Klikněte na Další.
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.
(Volitelné) Přidejte komentář.
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
V pracovním prostoru Azure Databricks kliknutím na ikonu katalogu
Katalog otevřete Průzkumníka katalogu.
V horní části podokna katalogu klikněte na
ikonuIkona 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.
(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í.
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
.