Connettersi a Spanner
In qualità di amministratore di BigQuery, puoi creare una connessione per accedere ai dati di Spanner. Questa connessione consente agli analisti di dati di eseguire query sui dati in Spanner.
Prima di iniziare
- Abilita l'API BigQuery Connection.
-
Per ottenere le autorizzazioni necessarie per connetterti a Spanner, chiedi all'amministratore di concederti il ruolo IAM Amministratore connessione BigQuery (
roles/bigquery.connectionAdmin) nel progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Creare connessioni Spanner
Seleziona una delle seguenti opzioni:
Console
Vai alla pagina BigQuery.
Nel riquadro Spazio di esplorazione, fai clic su Aggiungi dati.
Si apre la finestra di dialogo Aggiungi dati.
Nel riquadro Filtra per, nella sezione Tipo di origine dati, seleziona Database.
In alternativa, nel campo Cerca origini dati puoi inserire
Spanner.Nella sezione Origini dati in primo piano, fai clic su Google Cloud Spanner.
Fai clic sulla scheda della soluzione Google Cloud Spanner: federazione BigQuery.
Nel riquadro Origine dati esterna, inserisci le seguenti informazioni:
- In Tipo di connessione, seleziona Cloud Spanner.
- In ID connessione, inserisci un identificatore per la risorsa di connessione. Sono consentite lettere, numeri e trattini bassi.
- In Tipo di località, seleziona una località BigQuery (o una regione) compatibile con la regione dell'origine dati esterna.
- (Facoltativo) In Nome visualizzato, inserisci un nome intuitivo per la
connessione, ad esempio
My connection resource. Il nome visualizzato 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.
- In Nome database, inserisci il nome del database Spanner
nel seguente formato:
"projects/PROJECT_ID/instances/INSTANCE/databases/DATABASE" - (Facoltativo) Per eseguire letture parallele, seleziona Leggi i dati in parallelo. Spanner può dividere alcune query in parti più piccole, o partizioni, e recuperare le partizioni in parallelo. Per saperne di più, consulta Leggi i dati in parallelo nella documentazione di Spanner. Questa opzione è limitata alle query il cui primo operatore nel piano di esecuzione è un operatore di unione distribuita. Le altre query restituiscono un errore. Per visualizzare il piano di esecuzione delle query per una query Spanner, consulta Comprendere in che modo Spanner esegue le query.
- (Facoltativo) In Ruolo database, inserisci il nome di un
ruolo database Spanner. Se non è vuoto, questa connessione esegue query su Spanner utilizzando questo ruolo database per impostazione predefinita. Gli utenti del controllo dell'accesso granulare di Spanner che inviano query tramite questa connessione devono aver ricevuto l'accesso a questo ruolo dal proprio amministratore e il ruolo database deve disporre del privilegio
SELECTsu tutti gli oggetti schema specificati nelle query esterne. Per informazioni sul controllo dell'accesso granulare, consulta Informazioni sul controllo dell'accesso granulare. - (Facoltativo) Per abilitare Data Boost, seleziona Usa Spanner Data Boost. Data Boost ti consente di eseguire query di analisi ed esportazioni di dati con un impatto quasi nullo sui carichi di lavoro esistenti sull'istanza BigQuery di cui è stato eseguito il provisioning. Per abilitare Data Boost, seleziona Data Boost e Leggi i dati in parallelo.
Fai clic su Crea connessione.
bq
Per creare la connessione, utilizza il
bq mk comando
con il --connection flag.
bq mk --connection \ --connection_type=CLOUD_SPANNER \ --properties='PROPERTIES' \ --location=LOCATION \ --display_name='FRIENDLY_NAME' \ --description 'DESCRIPTION' \ CONNECTION_ID
Sostituisci quanto segue:
PROPERTIES: un oggetto JSON con i seguenti campi:"database": il database Spanner per la connessioneSpecifica come stringa nel seguente formato:
"projects/PROJECT_ID/instances/INSTANCE/databases/DATABASE"."use_parallelism": (facoltativo) setrue, questa connessione esegue letture paralleleIl valore predefinito è
false. Spanner può dividere alcune query in parti più piccole, o partizioni, e recuperare le partizioni in parallelo. Per saperne di più, consulta Leggi i dati in parallelo nella documentazione di Spanner. Questa opzione è limitata alle query il cui primo operatore nel piano di esecuzione è un operatore di unione distribuita. Le altre query restituiscono un errore. Per visualizzare il piano di esecuzione delle query per una query Spanner, consulta Comprendere in che modo Spanner esegue le query."database_role": (facoltativo) se non è vuoto, questa connessione esegue query su Spanner utilizzando questo ruolo database per impostazione predefinita. Gli utenti del controllo dell'accesso granulare di Spanner che inviano query tramite questa connessione devono aver ricevuto l'accesso a questo ruolo dal proprio amministratore e il ruolo database deve disporre del privilegioSELECTsu tutti gli oggetti schema specificati nelle query esterne.Se non viene specificato, la connessione esegue l'autenticazione con i ruoli predefiniti IAM per Spanner e all'entità che esegue le query con questa connessione deve essere stato concesso il ruolo IAM
roles/spanner.databaseReader.Per informazioni sul controllo dell'accesso granulare, consulta Informazioni sul controllo dell'accesso granulare.
"useDataBoost": (facoltativo) setrue, questa connessione consente agli utenti di utilizzare Data Boost. Data Boost consente agli utenti di eseguire query federate in capacità di computing separate, indipendenti e distinte dalle istanze di cui è stato eseguito il provisioning per evitare di influire sui carichi di lavoro esistenti. Per abilitare Data Boost, imposta"useDataBoost"sutruee"use_parallelism"sutrue.Per utilizzare Data Boost, all'entità che esegue le query con questa connessione deve essere stata concessa l'autorizzazione
spanner.databases.useDataBoost. Questa autorizzazione è inclusa per impostazione predefinita nei ruoliroles/spanner.admineroles/spanner.databaseAdmin.
LOCATION: una località BigQuery che è compatibile con la regione dell'origine dati esterna.CONNECTION_ID: un identificatore per la risorsa di connessioneL'ID connessione può contenere lettere, numeri e trattini bassi. Se non fornisci un ID connessione, BigQuery genera automaticamente un ID univoco.
L'esempio seguente crea una nuova risorsa di connessione denominata
my_connection_id.bq mk --connection \ --connection_type='CLOUD_SPANNER' \ --properties='{"database":"projects/my_project/instances/my_instance/databases/database1"}' \ --project_id=federation-test \ --location=us \ my_connection_id
API
Chiama il CreateConnection metodo all'interno
del ConnectionService servizio.
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 connettersi a origini dati esterne ed eseguire query su di esse.roles/bigquery.connectionAdmin: consente agli utenti di gestire le connessioni.
Per saperne di più 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.
Nel riquadro a sinistra, fai clic su Spazio di esplorazione:

Se non vedi il riquadro a sinistra, fai clic su Espandi riquadro a sinistra per aprirlo.
Fai clic sul progetto, su Connessioni e poi seleziona una connessione.
Nel riquadro Dettagli, fai clic su Condividi per condividere una connessione. Quindi:
Nella finestra di dialogo Autorizzazioni connessione, condividi la connessione con altre entità aggiungendo o modificando le 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 Google Cloud console o il metodo dell'API BigQuery Connections per condividere una connessione.
API
Utilizza il
projects.locations.connections.setIAM metodo
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 nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell' API Java di BigQuery.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, 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 query federate.
- Scopri come eseguire query sui dati di Spanner.