Connessione a Cloud SQL
In qualità di amministratore BigQuery, puoi creare una connessione per accedere ai dati di Cloud SQL. Questa connessione consente agli analisti di dati di eseguire query sui dati in Cloud SQL. Per connetterti a Cloud SQL, devi seguire questi passaggi:
Prima di iniziare
- Seleziona il progetto che contiene il database Cloud SQL.
- Abilita l'API BigQuery Connection.
- Assicurati che l'istanza Cloud SQL abbia una connessione IP pubblica o una connessione privata:
Per proteggere le istanze Cloud SQL, puoi aggiungere la connettività IP pubblica senza un indirizzo autorizzato. Ciò rende l'istanza inaccessibile dalla rete internet pubblica, ma accessibile alle query da BigQuery.
Per consentire a BigQuery di accedere ai dati di Cloud SQL tramite una connessione privata, configura la connettività con IP privato per un'istanza Cloud SQL nuova o esistente, quindi seleziona la casella di controllo Percorso privato per i servizi Google Cloud. Questo servizio utilizza un percorso diretto interno anziché l'indirizzo IP privato all'interno del Virtual Private Cloud.
-
Per ottenere le autorizzazioni necessarie per creare una connessione Cloud SQL, chiedi all'amministratore di concederti il ruolo IAM Amministratore connessione BigQuery (
roles/bigquery.connectionAdmin
) per il progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.Potresti anche essere in grado di ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
crea connessioni Cloud SQL
Come best practice, utilizza le connessioni per gestire le credenziali del database quando ti connetti a Cloud SQL. Le connessioni vengono criptate e archiviate in modo sicuro nel servizio di connessione BigQuery. Se le credenziali utente sono valide per altri dati nell'origine, puoi riutilizzare la connessione. Ad esempio, potresti essere in grado di utilizzare una connessione per eseguire query su più database che si trovano nella stessa istanza Cloud SQL.
Seleziona una delle seguenti opzioni per creare una connessione Cloud SQL:
Console
Vai alla pagina BigQuery.
Nel riquadro Spazio di esplorazione, fai clic su
Aggiungi dati.Nella finestra di dialogo Aggiungi dati, fai clic su Connessioni a origini dati esterne:
Nella finestra di dialogo Origine dati esterna, inserisci le seguenti informazioni:
- In Tipo di connessione, seleziona il tipo di origine, ad esempio MySQL o Postgres.
- In ID connessione, inserisci un identificatore per la risorsa di connessione. Sono consentiti lettere, numeri e trattini bassi. Ad esempio,
bq_sql_connection
. - Per Località dei dati, seleziona una località (o una regione) BigQuery compatibile con la regione dell'origine dati esterna.
- (Facoltativo) Per Nome semplice, inserisci un nome facile da usare per
la connessione, ad esempio
My connection resource
. Il nome descrittivo può essere qualsiasi valore che ti aiuti a identificare la risorsa di connessione se devi modificarla in un secondo momento. - (Facoltativo) In Descrizione, inserisci una descrizione per questa risorsa di connessione.
- (Facoltativo) Crittografia Se vuoi utilizzare una chiave di crittografia gestita dal cliente (CMEK) per criptare le tue credenziali, seleziona Chiave di crittografia gestita dal cliente (CMEK), quindi seleziona una chiave gestita dal cliente. In caso contrario, le tue credenziali sono protette dalla chiave di crittografia predefinita gestita da Google.
- Se hai scelto Cloud SQL MySQL o Postgres come tipo di connessione, in Nome connessione Cloud SQL inserisci il nome completo dell'istanza Cloud SQL, di solito nel formato
project-id:location-id:instance-id
. Puoi trovare l'ID istanza nella pagina dei dettagli dell'istanza Cloud SQL su cui vuoi eseguire la query. - In Nome database, inserisci il nome del database.
- In Nome utente del database, inserisci il nome utente del database.
In Password del database, inserisci la password del database.
- (Facoltativo) Per visualizzare la password, fai clic su Mostra password.
Fai clic su Crea connessione.
Fai clic su Vai alla connessione.
Nel riquadro Informazioni sulla connessione, copia l'ID account di servizio da utilizzare nei passaggi successivi.
bq
Inserisci il comando bq mk
e fornisci il flag di connessione:
--connection
. Sono richiesti anche i seguenti flag:
--connection_type
--properties
--connection_credential
--project_id
--location
I seguenti flag sono facoltativi:
--display_name
Il nome descrittivo della connessione.--description
Una descrizione della connessione.
connection_id
è un parametro facoltativo che può essere aggiunto come ultimo argomento del comando utilizzato per l'archiviazione interna. Se non viene fornito un ID connessione, viene generato automaticamente un ID univoco.
connection_id
può contenere lettere, numeri e trattini bassi.
bq mk --connection --display_name='friendly name' --connection_type=TYPE \
--properties=PROPERTIES --connection_credential=CREDENTIALS \
--project_id=PROJECT_ID --location=LOCATION \
CONNECTION_ID
Sostituisci quanto segue:
TYPE
: il tipo di origine dati esterna.PROPERTIES
: i parametri per la connessione creata in formato JSON. Ad esempio:--properties='{"param":"param_value"}'
. Per creare una risorsa di connessione, devi fornire i parametriinstanceID
,database
etype
.CREDENTIALS
: i parametriusername
epassword
.PROJECT_ID
: il tuo ID progetto.LOCATION
: la regione in cui si trova l'istanza Cloud SQL.CONNECTION_ID
: l'identificatore della connessione.
Ad esempio, il comando seguente crea una nuova risorsa di connessione denominata my_new_connection (nome semplice: "La mia nuova connessione") in un progetto con ID federation-test
.
bq mk --connection --display_name='friendly name' --connection_type='CLOUD_SQL' \
--properties='{"instanceId":"federation-test:us-central1:mytestsql","database":"mydatabase","type":"MYSQL"}' \
--connection_credential='{"username":"myusername", "password":"mypassword"}' \
--project_id=federation-test --location=us my_connection_id
API
All'interno dell'API BigQuery Connection, puoi richiamare CreateConnection
all'interno
di ConnectionService
per creare un'istanza di una connessione. Per ulteriori dettagli, visita la pagina della libreria client.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java disponibili nella guida rapida di BigQuery sull'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Java.
Per eseguire l'autenticazione in BigQuery, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per le librerie client.
Concedi l'accesso all'account di servizio
Un account di servizio viene creato automaticamente quando crei la prima connessione a Cloud SQL all'interno del progetto. Il nome dell'account di servizio è BigQuery Connection Service Agent. Per ottenere l'ID account di servizio, visualizza i dettagli di connessione. L'ID dell'account di servizio è nel seguente formato:
service-PROJECT_NUMBER@gcp-sa-bigqueryconnection.iam.gserviceaccount.com
.
Per connetterti a Cloud SQL, devi concedere alla nuova connessione l'accesso di sola lettura a Cloud SQL in modo che BigQuery possa accedere ai file per conto degli utenti. L'account di servizio deve avere le seguenti autorizzazioni:
cloudsql.instances.connect
cloudsql.instances.get
Puoi concedere all'account di servizio associato alla connessione il ruolo IAM client Cloud SQL (roles/cloudsql.client
), a cui sono assegnate queste autorizzazioni.
Puoi omettere questo passaggio se l'account di servizio dispone già delle autorizzazioni richieste.
Console
Vai alla pagina IAM e amministrazione.
Fai clic su
Concedi l'accesso.Viene visualizzata la finestra di dialogo Aggiungi entità.
Nel campo Nuove entità, inserisci il nome dell'account di servizio Agente di servizio di connessione BigQuery o l'ID account di servizio recuperato dalle informazioni di connessione.
Nel campo Seleziona un ruolo, seleziona Cloud SQL e poi Client Cloud SQL.
Fai clic su Salva.
gcloud
Utilizza il comando gcloud projects add-iam-policy-binding
:
gcloud projects add-iam-policy-binding PROJECT_ID --member=serviceAccount:SERVICE_ACCOUNT_ID --role=roles/cloudsql.client
Fornisci i seguenti valori:
PROJECT_ID
: l'ID del tuo progetto Google Cloud.SERVICE_ACCOUNT_ID
: l'ID account di servizio ricavato dalle informazioni sulla connessione.
Condividere i contatti 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 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 Autorizzazioni e ruoli predefiniti.
Seleziona una delle seguenti opzioni:
Console
Vai alla pagina BigQuery.
Le connessioni sono elencate nel progetto in un gruppo chiamato 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à aggiungendo o modificando entità.
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 per condividere una connessione.
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 di Java disponibili nella guida rapida di BigQuery sull'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Java.
Per eseguire l'autenticazione in BigQuery, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare 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 query federate.
- Scopri come eseguire query sui dati di Cloud SQL.