Creare e configurare una connessione alla risorsa Cloud
In qualità di amministratore di BigQuery, puoi creare una connessione alle risorse Cloud che consente agli analisti dei dati di eseguire le seguenti attività:
- Esegui query sui dati strutturati di Cloud Storage utilizzando le tabelle BigLake. Le tabelle BigLake ti consentono di eseguire query sui dati esterni con la delega dell'accesso.
- Esegui query sui dati non strutturati in Cloud Storage utilizzando le tabelle oggetti.
- Implementa funzioni remote con qualsiasi lingua supportata in Cloud Run Functions o Cloud Run.
Per ulteriori informazioni sulle connessioni, consulta Introduzione alle connessioni.
Prima di iniziare
Abilita l'API BigQuery Connection.
-
Per ottenere le autorizzazioni necessarie per creare una connessione alla risorsa Cloud, chiedi all'amministratore di concederti i seguenti ruoli IAM:
-
Amministratore connessione BigQuery (
roles/bigquery.connectionAdmin
) nel progetto -
Storage Object Viewer (
roles/storage.objectViewer
) nel bucket
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Se vuoi eseguire query sui dati strutturati utilizzando le tabelle BigLake basate su Cloud Storage o sui dati non strutturati utilizzando le tabelle di oggetti, l'account di servizio associato alla connessione deve avere anche il ruolo Visualizzatore di Storage (roles/storage.viewer
) sul bucket che contiene i dati esterni.
-
Amministratore connessione BigQuery (
- Assicurati che la versione del Google Cloud SDK sia 366.0.0 o successiva:
gcloud version
Se necessario, aggiorna Google Cloud SDK.
Considerazione della posizione
Quando utilizzi Cloud Storage per archiviare i file di dati, ti consigliamo di utilizzare i bucket Cloud Storage a singola regione o a due regioni per prestazioni ottimali, non i bucket a più regioni.
Creare connessioni alle risorse Cloud
BigLake utilizza una connessione per accedere a Cloud Storage. 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 su Connessioni a origini dati esterne.Nell'elenco Tipo di connessione, seleziona Modelli remoti di Vertex AI, funzioni remote e BigLake (risorsa Cloud).
Nel campo ID connessione, inserisci un nome per la 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 un 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
: la regione di connessionePROJECT_ID
: il tuo ID progetto Google CloudCONNECTION_ID
: un ID per la connessione
Quando crei una risorsa di connessione, BigQuery crea un account di servizio di sistema unico 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 passaggio successivo:
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
Utilizza la risorsa google_bigquery_connection
.
Per autenticarti in BigQuery, configura le credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
L'esempio seguente crea una connessione risorsa Cloud denominata
my_cloud_resource_connection
nella regione US
:
Per applicare la configurazione Terraform in un progetto Google Cloud, completa i passaggi nelle seguenti sezioni.
Prepara Cloud Shell
- Avvia Cloud Shell.
-
Imposta il progetto Google Cloud predefinito in cui vuoi applicare le configurazioni Terraform.
Devi eseguire questo comando una sola volta per progetto e puoi farlo in qualsiasi directory.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Le variabili di ambiente vengono sostituite se imposti valori espliciti nel file di configurazione Terraform.
Prepara la directory
Ogni file di configurazione di Terraform deve avere una propria directory (chiamata anche modulo principale).
-
In Cloud Shell, crea una directory e un nuovo
file al suo interno. Il nome file deve avere l'estensione
.tf
, ad esempiomain.tf
. In questo tutorial, il file è denominatomain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Se stai seguendo un tutorial, puoi copiare il codice campione in ogni sezione o passaggio.
Copia il codice campione nel file
main.tf
appena creato.Se vuoi, copia il codice da GitHub. Questa opzione è consigliata quando lo snippet Terraform fa parte di una soluzione end-to-end.
- Esamina e modifica i parametri di esempio da applicare al tuo ambiente.
- Salva le modifiche.
-
Inizializza Terraform. Devi eseguire questa operazione una sola volta per directory.
terraform init
Se vuoi, per utilizzare la versione più recente del provider Google, includi l'opzione
-upgrade
:terraform init -upgrade
Applica le modifiche
-
Rivedi la configurazione e verifica che le risorse che Terraform sta per creare o
aggiornare corrispondano alle tue aspettative:
terraform plan
Apporta le correzioni necessarie alla configurazione.
-
Applica la configurazione di Terraform eseguendo il seguente comando e inserendo
yes
al prompt:terraform apply
Attendi che Terraform mostri il messaggio "Applicazione completata".
- Apri il tuo progetto Google Cloud per visualizzare i risultati. Nella console Google Cloud, vai alle risorse nell'interfaccia utente per assicurarti che Terraform le abbia create o aggiornate.
Concedi l'accesso all'account di servizio
Per creare funzioni remote, devi concedere i ruoli richiesti alle funzioni Cloud Run o a Cloud Run.
Per connetterti a Cloud Storage, devi concedere alla nuova connessione l'accesso in sola lettura a Cloud Storage in modo che BigQuery possa accedere ai file per conto degli utenti.
Seleziona una delle seguenti opzioni:
Console
Ti consigliamo di concedere all'account di servizio della risorsa di connessione il
ruolo IAM Visualizzatore oggetti archiviazione
(roles/storage.objectViewer
), che consente all'account di servizio di accedere ai
bucket Cloud Storage.
Vai alla pagina IAM e amministrazione.
Fai clic su
Aggiungi.Viene visualizzata la finestra di dialogo Aggiungi entità.
Nel campo Nuove entità, inserisci l'ID account di servizio che hai copiato in precedenza.
Nel campo Seleziona un ruolo, seleziona Cloud Storage e poi Visualizzatore oggetti Storage.
Fai clic su Salva.
gcloud
Utilizza il comando gcloud storage buckets add-iam-policy-binding
:
gcloud storage buckets add-iam-policy-binding gs://BUCKET \ --member=serviceAccount:MEMBER \ --role=roles/storage.objectViewer
Sostituisci quanto segue:
BUCKET
: il nome del bucket di archiviazione.MEMBER
: l'ID account di servizio che hai copiato in precedenza.
Per ulteriori informazioni, consulta Aggiungere un principale a un criterio a livello di bucket.
Terraform
Utilizza la risorsa google_bigquery_connection
.
Per autenticarti in BigQuery, configura le credenziali predefinite dell'applicazione. Per saperne di più, vedi Configurare l'autenticazione per le librerie client.
L'esempio seguente concede l'accesso al ruolo IAM all'account di servizio della connessione della risorsa Cloud:
Per applicare la configurazione Terraform in un progetto Google Cloud, completa i passaggi nelle seguenti sezioni.
Prepara Cloud Shell
- Avvia Cloud Shell.
-
Imposta il progetto Google Cloud predefinito in cui vuoi applicare le configurazioni Terraform.
Devi eseguire questo comando una sola volta per progetto e puoi farlo in qualsiasi directory.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Le variabili di ambiente vengono sostituite se imposti valori espliciti nel file di configurazione Terraform.
Prepara la directory
Ogni file di configurazione di Terraform deve avere una propria directory (chiamata anche modulo principale).
-
In Cloud Shell, crea una directory e un nuovo
file al suo interno. Il nome file deve avere l'estensione
.tf
, ad esempiomain.tf
. In questo tutorial, il file è denominatomain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Se stai seguendo un tutorial, puoi copiare il codice campione in ogni sezione o passaggio.
Copia il codice campione nel file
main.tf
appena creato.Se vuoi, copia il codice da GitHub. Questa opzione è consigliata quando lo snippet Terraform fa parte di una soluzione end-to-end.
- Esamina e modifica i parametri di esempio da applicare al tuo ambiente.
- Salva le modifiche.
-
Inizializza Terraform. Devi eseguire questa operazione una sola volta per directory.
terraform init
Se vuoi, per utilizzare la versione più recente del provider Google, includi l'opzione
-upgrade
:terraform init -upgrade
Applica le modifiche
-
Rivedi la configurazione e verifica che le risorse che Terraform sta per creare o
aggiornare corrispondano alle tue aspettative:
terraform plan
Apporta le correzioni necessarie alla configurazione.
-
Applica la configurazione di Terraform eseguendo il seguente comando e inserendo
yes
al prompt:terraform apply
Attendi che Terraform mostri il messaggio "Applicazione completata".
- Apri il tuo progetto Google Cloud per visualizzare i risultati. Nella console Google Cloud, vai alle risorse nell'interfaccia utente per assicurarti che Terraform le abbia create o aggiornate.
Condividere le connessioni con gli utenti
Puoi concedere i seguenti ruoli per consentire agli utenti di eseguire query sui dati e gestire le connessioni:
roles/bigquery.connectionUser
: consente agli utenti di utilizzare le connessioni per collegarsi a origini dati esterne ed eseguire query su di esse.roles/bigquery.connectionAdmin
: consente agli utenti di gestire le connessioni.
Per ulteriori informazioni sui ruoli e sulle autorizzazioni IAM in BigQuery, consulta Ruoli e autorizzazioni 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 progetto > Connessioni esterne > Connessione.
Nel riquadro Dettagli, fai clic su Condividi per condividere una connessione. Quindi:
Nella finestra di dialogo Autorizzazioni di connessione, condividi la connessione con altre entità aggiungendole o modificandole.
Fai clic su Salva.
bq
Non puoi condividere una connessione con lo strumento a riga di comando bq. Per condividere una connessione, utilizza la console Google Cloud o il metodo dell'API BigQuery Connections.
API
Utilizza il
metodo projects.locations.connections.setIAM
nella sezione di riferimento dell'API REST BigQuery Connections e
fornisci un'istanza della risorsa policy
.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione Java riportate nella guida rapida all'utilizzo di BigQuery con le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Java.
Per autenticarti in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Passaggi successivi
- Scopri i 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 alle tabelle BigLake.
- Scopri di più sulle tabelle di oggetti e su come crearle.
- Scopri come implementare le funzioni remote.