crea e configura una connessione alle risorse Cloud
In qualità di amministratore di BigQuery, puoi creare una risorsa Cloud che consenta agli analisti di dati di eseguire le seguenti attività:
- Eseguire query su dati strutturati di Cloud Storage utilizzando le tabelle BigLake. Tavoli BigLake consente di eseguire query su dati esterni con la delega dell'accesso.
- Eseguire query su dati non strutturati in Cloud Storage utilizzando le tabelle di oggetti.
- Implementare le funzioni remote con qualsiasi linguaggio supportato in Cloud Functions o Cloud Run.
Per scoprire di più sulle connessioni, consulta Introduzione alle connessioni.
Prima di iniziare
Abilitare l'API BigQuery Connection.
-
Per ottenere le autorizzazioni necessarie per creare una connessione a risorse Cloud, chiedi all'amministratore di concederti seguenti ruoli IAM:
-
Amministratore connessione BigQuery (
roles/bigquery.connectionAdmin
) del progetto -
Visualizzatore oggetti Storage (
roles/storage.objectViewer
) sul bucket
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite la ruoli o altri ruoli predefiniti ruoli.
Se vuoi eseguire query su dati strutturati utilizzando tabelle BigLake basate su Cloud Storage o non strutturati utilizzando tabelle di oggetti, anche l'account di servizio associato alla connessione deve Avere il ruolo Visualizzatore Storage (roles/storage.viewer
) per il bucket che contiene i dati esterni.
-
Amministratore connessione BigQuery (
- Assicurati che la versione di Google Cloud SDK sia 366.0.0 o successiva:
gcloud version
Se necessario, aggiornare Google Cloud SDK.
- (Facoltativo) Per Terraform, utilizza la versione Google Cloud 4.25.0 o successiva di Terraform. Puoi scarica la versione più recente dai download di hashiCorp Terraform.
Considerazione della località
Quando utilizzi Cloud Storage per archiviare i file di dati, ti consigliamo di: utilizza Cloud Storage una singola regione o due regioni per prestazioni ottimali, non bucket multiregionali.
crea connessioni alle risorse Cloud
BigLake utilizza una connessione per accedere a Cloud Storage. Tu puoi utilizzare questa connessione con una singola tabella o un gruppo di tabelle.
Seleziona una delle seguenti opzioni:
Console
Vai alla pagina BigQuery.
Per creare una connessione, fai clic su
Aggiungi e poi fai clic su Connessioni a origini dati esterne.Nell'elenco Tipo di connessione, seleziona Modelli remoti Vertex AI, funzioni remote e BigLake (risorsa Cloud).
Nel campo ID connessione, inserisci un nome per connessione.
Fai clic su Crea connessione.
Fai clic su Vai alla connessione.
Nel riquadro Informazioni sulla connessione, copia l'ID account di servizio da utilizzare in una passaggio successivo.
bq
In un ambiente a riga di comando, crea una connessione:
bq mk --connection --location=REGION --project_id=PROJECT_ID \ --connection_type=CLOUD_RESOURCE CONNECTION_ID
Il parametro
--project_id
sostituisce il progetto predefinito.Sostituisci quanto segue:
REGION
: il tuo regione di connessionePROJECT_ID
: l'ID del tuo progetto Google CloudCONNECTION_ID
: un ID per connessione
Quando crei una risorsa di connessione, BigQuery crea di account di servizio di sistema univoco e lo associa alla connessione.
Risoluzione dei problemi: se ricevi il seguente errore di connessione, Aggiorna Google Cloud SDK:
Flags parsing error: flag --connection_type=CLOUD_RESOURCE: value should be one of...
Recupera e copia l'ID account di servizio per utilizzarlo in un secondo momento passaggio:
bq show --connection PROJECT_ID.REGION.CONNECTION_ID
L'output è simile al seguente:
name properties 1234.REGION.CONNECTION_ID {"serviceAccountId": "connection-1234-9u56h9@gcp-sa-bigquery-condel.iam.gserviceaccount.com"}
Terraform
Aggiungi la seguente sezione al tuo file main.tf
.
## This creates a cloud resource connection. ## Note: The cloud resource nested object has only one output only field - serviceAccountId. resource "google_bigquery_connection" "connection" { connection_id = "CONNECTION_ID" project = "PROJECT_ID" location = "REGION" cloud_resource {} }Sostituisci quanto segue:
CONNECTION_ID
: un ID per connessionePROJECT_ID
: l'ID del tuo progetto Google CloudREGION
: il tuo regione di connessione
Concedi l'accesso all'account di servizio
Se vuoi creare funzioni remote, devi concedere i ruoli richiesti a Cloud Functions o Cloud Run.
Se vuoi connetterti a Cloud Storage, devi concedere al nuovo l'accesso di sola lettura della connessione a Cloud Storage, BigQuery può accedere ai file per conto degli utenti.
Seleziona una delle seguenti opzioni:
Console
Ti consigliamo di concedere all'account di servizio delle risorse di connessione la
Ruolo IAM Visualizzatore oggetti Storage
(roles/storage.objectViewer
), che consente all'account di servizio di accedere
di archiviazione dei bucket Cloud Storage.
Vai alla sezione IAM e Console di amministrazione.
Fai clic su
Aggiungi.Viene visualizzata la finestra di dialogo Aggiungi entità.
Nel campo Nuove entità, inserisci l'ID account di servizio che copiato in precedenza.
Nel campo Seleziona un ruolo, seleziona Cloud Storage e poi Visualizzatore oggetti Storage.
Fai clic su Salva.
gcloud
Usa il comando gcloud storage buckets add-iam-policy-binding
:
gcloud storage buckets add-iam-policy-binding gs://example-bucket \ member=serviceAccount:MEMBER \ role=roles/storage.objectViewer
Sostituisci MEMBER
con l'ID dell'account di servizio che hai
copiato in precedenza.
Per saperne di più, consulta Aggiungere un'entità a livello di bucket .
Terraform
Aggiungi la seguente sezione al tuo file main.tf
.
## This grants permissions to the service account of the connection created in the last step. resource "google_project_iam_member" "connectionPermissionGrant" { project = "PROJECT_ID" role = "roles/storage.objectViewer" member = format("serviceAccount:%s", google_bigquery_connection.connection.cloud_resource[0].service_account_id) }
Condividere le connessioni con gli utenti
Puoi concedere i ruoli seguenti per consentire agli utenti di eseguire query sui dati e gestire le connessioni:
roles/bigquery.connectionUser
: consente agli utenti di utilizzare le connessioni per connettersi con origini dati esterne ed eseguire query su di esse.roles/bigquery.connectionAdmin
: consente agli utenti di gestire le connessioni.
Per ulteriori informazioni su ruoli e autorizzazioni IAM in BigQuery, vedi Autorizzazioni e ruoli predefiniti.
Seleziona una delle seguenti opzioni:
Console
Vai alla pagina BigQuery.
Le connessioni sono elencate nel progetto, in un gruppo denominato Connessioni esterne.
Nel riquadro Explorer, fai clic sul nome del tuo progetto. > Connessioni esterne > Connessione.
Nel riquadro Dettagli, fai clic su Condividi per condividere una connessione. Quindi:
Nella finestra di dialogo Autorizzazioni di connessione, condividi il connessione con altre entità aggiungendo o modificando tra cui scegliere.
Fai clic su Salva.
bq
Non puoi condividere una connessione con lo strumento a riga di comando bq. Per condividere una connessione, usa la console Google Cloud oppure il metodo dell'API BigQuery Connections per condividere una connessione.
API
Utilizza la
Metodo projects.locations.connections.setIAM
nella sezione di riferimento dell'API REST di BigQuery Connections,
fornisce un'istanza della risorsa policy
.
Java
Prima di provare questo esempio, segui le istruzioni per la configurazione di Java nel Guida rapida di BigQuery con librerie client. Per ulteriori informazioni, consulta API Java BigQuery documentazione di riferimento.
Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per le librerie client.
Passaggi successivi
- Scopri di più sui diversi tipi di connessione.
- Scopri di più sulla gestione delle connessioni.
- Scopri di più sulle tabelle BigLake.
- Scopri come creare tabelle BigLake.
- Scopri come eseguire l'upgrade delle tabelle esterne a tabelle BigLake.
- Scopri di più sulle tabelle degli oggetti e su come per crearle.
- Scopri come implementare le funzioni remote.