Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Op deze pagina wordt beschreven hoe u Lakehouse Federation instelt voor het uitvoeren van federatieve query's op BigQuery-gegevens die niet worden beheerd door Azure Databricks. Zie Wat is Lakehouse Federation voor meer informatie over Lakehouse Federation?
Als u verbinding wilt maken met uw BigQuery-database met behulp van Lakehouse Federation, moet u het volgende maken in uw Azure Databricks Unity Catalog-metastore:
- Een verbinding met uw BigQuery-database.
- Een refererende catalogus die uw BigQuery-database weerspiegelt in Unity Catalog, zodat u de Unity Catalog-querysyntaxis en gegevensbeheerhulpprogramma's kunt gebruiken om Azure Databricks-gebruikerstoegang tot de database te beheren.
Voordat u begint
Vereisten voor werkruimte:
- Werkruimte geactiveerd voor Unity Catalog.
Rekenvereisten:
- Netwerkconnectiviteit van uw Databricks Runtime-cluster of SQL Warehouse naar de doeldatabasesystemen. Zie De aanbevelingen voor netwerken voor Lakehouse Federation.
- Azure Databricks-clusters moeten Gebruikmaken van Databricks Runtime 16.1 of hoger en de standaard- of toegewezen toegangsmodus (voorheen gedeeld en één gebruiker).
- SQL-warehouses moeten Pro of Serverless zijn.
Vereiste machtigingen:
- Als u een verbinding wilt maken, moet u een metastore-beheerder of een gebruiker zijn met de
CREATE CONNECTIONbevoegdheid voor de Unity Catalog-metastore die is gekoppeld aan de werkruimte. - Als u een buitenlandse catalogus wilt maken, moet u de machtiging
CREATE CATALOGhebben voor de metastore en ofwel de eigenaar van de verbinding zijn of het privilegeCREATE FOREIGN CATALOGvoor de verbinding hebben.
Aanvullende machtigingsvereisten worden opgegeven in elke sectie op basis van taken die volgt.
Een verbinding maken
Een verbinding geeft een pad en referenties op voor toegang tot een extern databasesysteem. Als u een verbinding wilt maken, kunt u Catalog Explorer of de CREATE CONNECTION SQL-opdracht gebruiken in een Azure Databricks-notebook of de Databricks SQL-queryeditor.
Notitie
U kunt ook de Databricks REST API of de Databricks CLI gebruiken om een verbinding te maken. Zie POST /api/2.1/unity-catalog/connections en Unity Catalog-opdrachten.
Vereiste machtigingen: Metastore-beheerder of gebruiker met de CREATE CONNECTION bevoegdheid.
Catalogusverkenner
Klik in uw Azure Databricks-werkruimte op
Catalogus.
Klik boven in het deelvenster Catalogus op het Toevoegen- of pluspictogram
en selecteer Verbinding toevoegen in het menu.U kunt ook op de pagina Snelle toegang op de knop Externe gegevens > klikken, naar het tabblad Verbindingen gaan en op Verbinding makenklikken.
Op de pagina Verbindingsbeginselen van de wizard Verbinding instellen, voer een gebruiksvriendelijke verbindingsnaamin.
Selecteer een verbindingstype van Google BigQuery-en klik vervolgens op Volgende.
Voer op de pagina Authentication de Google-serviceaccountssleutel-json - in voor uw BigQuery-exemplaar.
Dit is een onbewerkt JSON-object dat wordt gebruikt om het BigQuery-project op te geven en verificatie te bieden. U kunt dit JSON-object genereren en downloaden op de pagina met serviceaccountgegevens in Google Cloud onder SLEUTELS. Het serviceaccount moet over de juiste machtigingen beschikken in BigQuery, waaronder BigQuery User en BigQuery Data Viewer. Hier volgt een voorbeeld.
{ "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" }(Optional) Voer de project-ID in voor uw BigQuery-exemplaar:
Dit is een naam voor het BigQuery-project dat wordt gebruikt voor facturering voor alle query's die worden uitgevoerd onder deze verbinding. De standaardinstelling is de project-id van uw serviceaccount. Het serviceaccount moet over de juiste machtigingen beschikken voor dit project in BigQuery, inclusief BigQuery User. In dit project kunnen extra gegevenssets worden gemaakt die worden gebruikt voor het opslaan van tijdelijke tabellen door BigQuery.
(Optioneel) Voeg een opmerking toe.
Klik op Verbinding maken.
Voer op de pagina Catalogus Basis een naam in voor de buitenlandse catalogus. Een refererende catalogus spiegelt een database in een extern gegevenssysteem, zodat u de toegang tot gegevens in die database kunt opvragen en beheren met behulp van Azure Databricks en Unity Catalog.
(Optioneel) Klik op Verbinding testen om te bevestigen dat deze werkt.
Klik op Maak de catalogus.
Selecteer op de pagina Access de werkruimten waarin gebruikers toegang hebben tot de catalogus die u hebt gemaakt. U kunt Alle werkruimten hebben toegangselecteren of klikken op Toewijzen aan werkruimten, de werkruimten selecteren en vervolgens op Toewijzenklikken.
Wijzig de eigenaar die in staat zal zijn de toegang tot alle objecten in de catalogus te beheren. Begin een hoofdgebruikersnaam in het tekstvak te typen en klik vervolgens op de hoofdgebruikersnaam in de weergegeven resultaten.
Verleent privileges aan de catalogus. Klik op Toestaan:
- Geef de Principals op die toegang hebben tot objecten in de catalogus. Begin een hoofdgebruikersnaam in het tekstvak te typen en klik vervolgens op de hoofdgebruikersnaam in de weergegeven resultaten.
- Selecteer de vooraf ingestelde bevoegdheden om aan elke principal toe te kennen. Alle accountgebruikers krijgen standaard
BROWSEtoegekend.- Selecteer Gegevenslezer in de vervolgkeuzelijst om
readbevoegdheden te verlenen voor objecten in de catalogus. - Selecteer Gegevenseditor in de vervolgkeuzelijst om
readenmodifybevoegdheden voor objecten in de catalogus toe te kennen. - Selecteer handmatig de bevoegdheden die u wilt verlenen.
- Selecteer Gegevenslezer in de vervolgkeuzelijst om
- Klik op Toestaan.
Klik op Volgende.
Specificeer op de pagina Metagegevens de sleutel-waardeparen van de tags. Zie Tags toepassen op beveiligbare objecten van Unity Catalogvoor meer informatie.
(Optioneel) Voeg een opmerking toe.
Klik op Opslaan.
SQL
Voer de volgende opdracht uit in een notebook of de Sql-query-editor van Databricks. Vervang <GoogleServiceAccountKeyJson> door een onbewerkt JSON-object dat het BigQuery-project aangeeft en verificatie biedt. U kunt dit JSON-object genereren en downloaden op de pagina met serviceaccountgegevens in Google Cloud onder SLEUTELS. Het serviceaccount moet over de juiste machtigingen beschikken die zijn verleend in BigQuery, waaronder BigQuery User en BigQuery Data Viewer. Bekijk voor een voorbeeld van een JSON-object het tabblad Catalog Explorer op deze pagina.
CREATE CONNECTION <connection-name> TYPE bigquery
OPTIONS (
GoogleServiceAccountKeyJson '<GoogleServiceAccountKeyJson>'
);
We raden aan Azure Databricks secrets te gebruiken in plaats van gewone tekststrings voor gevoelige waarden, zoals inloggegevens. Voorbeeld:
CREATE CONNECTION <connection-name> TYPE bigquery
OPTIONS (
GoogleServiceAccountKeyJson secret ('<secret-scope>','<secret-key-user>')
)
Zie Geheimbeheer voor informatie over het instellen van geheimen.
Een buitenlandse catalogus maken
Notitie
Als u de UI gebruikt om een verbinding met de gegevensbron te maken, is de creatie van een buitenlandse catalogus inbegrepen en kunt u deze stap overslaan.
Een refererende catalogus spiegelt een database in een extern gegevenssysteem, zodat u de toegang tot gegevens in die database kunt opvragen en beheren met behulp van Azure Databricks en Unity Catalog. Als u een buitenlandse catalogus wilt maken, gebruikt u een verbinding met de gegevensbron die al is gedefinieerd.
Als u een externe catalogus wilt maken, kunt u Catalog Explorer of CREATE FOREIGN CATALOG gebruiken in een Azure Databricks-notebook of in de Databricks SQL-queryeditor. U kunt ook de Databricks REST API of de Databricks CLI gebruiken om een catalogus te maken. Zie POST /api/2.1/unity-catalog/catalogs of Unity Catalog-opdrachten.
Vereiste machtigingen:CREATE CATALOG machtiging voor de metastore en eigendom van de verbinding of de CREATE FOREIGN CATALOG bevoegdheid voor de verbinding.
Catalogusverkenner
Klik in uw Azure Databricks-werkruimte op
Catalogus om Catalog Explorer te openen.
Klik bovenaan het deelvenster Catalogus op het pictogram
toevoegen en selecteer Een catalogus toevoegen in het menu.U kunt ook op de pagina Snelle toegang op de knop Catalogi klikken en vervolgens op de knop Catalogus maken klikken.
(Optioneel) Voer de volgende cataloguseigenschap in:
Gegevensproject-id: een naam voor het BigQuery-project met gegevens die aan deze catalogus worden toegewezen. Standaard wordt de factureringsproject-id op verbindingsniveau ingesteld.
Volg de instructies voor het maken van buitenlandse catalogi in Catalogi maken.
SQL
Voer de volgende SQL-opdracht uit in een notebook of de Databricks SQL-editor. Items tussen haakjes zijn optioneel. Vervang de waarden van de tijdelijke aanduidingen.
-
<catalog-name>: naam voor de catalogus in Azure Databricks. -
<connection-name>: het verbindingsobject waarmee de gegevensbron, het pad en de toegangsreferenties worden opgegeven.
CREATE FOREIGN CATALOG [IF NOT EXISTS] <catalog-name> USING CONNECTION <connection-name>;
Ondersteunde pushdowns
De volgende pushdowns worden ondersteund:
- Filteren
- Projecties
- Grens
- Functies: gedeeltelijk, alleen voor filterexpressies. (Tekenreeksfuncties, wiskundige functies, gegevens, tijd- en tijdstempelfuncties en andere diverse functies, zoals Alias, Cast, SortOrder)
- Aggregaties
- Sorteren, bij gebruik met limiet
- Joins (Databricks Runtime 16.1 of hoger)
De volgende pushdowns worden niet ondersteund:
- Windows-functies
Toewijzingen van gegevenstypen
In de volgende tabel ziet u de toewijzing van BigQuery- naar Spark-gegevenstypen.
| Type BigQuery | Spark-type |
|---|---|
| bignumeric, numeriek | DecimaalType |
| int64 | LangType |
| float64 | DoubleType |
| matrix, geografie, interval, json, tekenreeks, struct | VarcharType |
| Bytes | BinaireType |
| Boolean | BooleaansType |
| datum | DatumType |
| datum/tijd, tijd, tijdstempel | TimestampType/TimestampNTZType |
Wanneer u van BigQuery leest, wordt BigQuery Timestamp toegewezen aan Spark TimestampType als preferTimestampNTZ = false (standaard). BigQuery Timestamp wordt toegewezen aan TimestampNTZType if preferTimestampNTZ = true.
Probleemoplossingsproces
Error creating destination table using the following query [<query>]
Veelvoorkomende oorzaak: het serviceaccount dat door de verbinding wordt gebruikt, heeft niet de rol BigQuery-gebruiker .
Resolutie:
- Verdeel de rol BigQuery-gebruiker aan het serviceaccount dat door de verbinding wordt gebruikt. Deze rol is vereist om de materialisatiegegevensset te maken waarmee queryresultaten tijdelijk worden opgeslagen.
- Voer de query opnieuw uit.