Questa pagina spiega come utilizzare Spanner Data Boost quando esegui query federate da BigQuery a un database Spanner. Con Data Boost, le query federate vengono eseguite con un impatto minimo sui workload esistenti nell'istanza Spanner di cui è stato eseguito il provisioning. Le query Data Boost da BigQuery a un database Spanner possono unire i dati di BigQuery con i dati di Spanner.
La federazione Spanner consente a BigQuery di eseguire query sui dati residenti in Spanner in tempo reale, senza copiare o spostare i dati. Per scoprire di più sulle query federate di Spanner, consulta Query federate di Spanner. Per scoprire di più su Data Boost, consulta la panoramica di Data Boost.
Prima di iniziare
Prima di poter eseguire query federate con Data Boost, devi completare le seguenti attività:
Crea un'istanza e un database Spanner
Se non hai un'istanza e un database Spanner, segui i passaggi descritti in Creare ed eseguire query su un database utilizzando la console Google Cloud per crearli.
Abilita l'API BigQuery Connection
L'API di connessione BigQuery ti consente di gestire le connessioni BigQuery a origini dati esterne come un database Spanner.
-
Enable the BigQuery connection API.
Per ulteriori informazioni, consulta l'API di connessione BigQuery nella documentazione di BigQuery.
Concedi le autorizzazioni IAM per Data Boost agli entità principali
A un principale devono essere concesse le seguenti autorizzazioni per eseguire query federate con Data Boost:
spanner.instances.get
: consente di ottenere la configurazione di un'istanza.spanner.databases.useDataBoost
: consente di utilizzare le risorse di calcolo di Spanner Data Boost per elaborare le query partizionate.
Per saperne di più sulle autorizzazioni Spanner, consulta Autorizzazioni di Identity and Access Management (IAM).
Per concedere queste autorizzazioni richieste, ti consigliamo di utilizzare il ruolo IAM Cloud
Spanner Database Reader With DataBoost
(roles/spanner.databaseReaderWithDataBoost
). Puoi
aggiungere questo ruolo a qualsiasi entità che deve eseguire query federate
con Data Boost. Per scoprire di più sui ruoli predefiniti in
Spanner, consulta la sezione Ruoli predefiniti. Per scoprire come creare un ruolo IAM personalizzato, consulta Creare un ruolo personalizzato.
Esegui una query Data Boost federata
Per eseguire una query di Data Boost da BigQuery a un'origine esterna, devi disporre di una connessione BigQuery all'origine esterna e dell'ID della connessione. Quando esegui una query Spanner federata con Data Boost, l'origine esterna è un database Spanner. Dopo aver creato l'ID connessione, questo viene utilizzato da BigQuery per eseguire una query Data Boost di un database Spanner.
Utilizza una delle seguenti opzioni per creare un ID connessione BigQuery, quindi utilizza l'ID connessione per eseguire una query Data Boost da BigQuery:
Inizia in Spanner: crea l'ID connessione esterna BigQuery nella console Spanner. Dopo aver creato l'ID connessione nella console Spanner, viene visualizzato un messaggio di reindirizzamento alla console BigQuery per eseguire una query Data Boost federata in un database Spanner.
Inizia in BigQuery: crea l'ID connessione esterna di Data Boost nella console BigQuery o utilizzando lo strumento a riga di comando
bq
. Dopo aver creato l'ID connessione, rimani nella console BigQuery per eseguire una query Data Boost federata in un database Spanner.
Inizia in Spanner per eseguire una query Data Boost
Per eseguire una query Data Boost federata a partire da Spanner Studio, segui questi passaggi:
Vai alla pagina Istanze di Spanner nella consoleGoogle Cloud .
La console mostra un elenco delle tue istanze Spanner.
Seleziona un'istanza Spanner e poi un database.
Nella pagina Panoramica del database, fai clic su ** Spanner Studio** nel menu di navigazione.
Fai clic su Visualizza in BigQuery.
Nella finestra di dialogo Visualizza in BigQuery, inserisci un ID connessione.
L'ID connessione viene utilizzato per creare una nuova connessione esterna BigQuery al database Spanner. Fai riferimento alla connessione esterna utilizzando il seguente pattern:
PROJECT-ID.LOCATION.CONNECTION-ID
Se l'ID esiste già, si verifica un errore.
Compila il resto della finestra di dialogo ed esegui le seguenti operazioni:
- Seleziona Leggi dati in parallelo.
- Seleziona Utilizza Spanner Data Boost.
Fai clic su Visualizza in BigQuery.
BigQuery Studio si apre con la seguente query:
SELECT * FROM EXTERNAL_QUERY("PROJECT-ID.LOCATION.CONNECTION-ID", "SELECT * FROM INFORMATION_SCHEMA.TABLES;");
Puoi sostituirla con la query federata. Ad esempio, potresti eseguire una query simile a quella riportata di seguito. Questo esempio esegue una query federata da una tabella denominata
orders
in un database Spanner e unisce i risultati a una tabella BigQuery denominatamydataset.customers
.SELECT c.customer_id, c.name, rq.first_order_date FROM mydataset.customers AS c LEFT OUTER JOIN EXTERNAL_QUERY( 'my-project.us.example-db', '''SELECT customer_id, MIN(order_date) AS first_order_date FROM orders GROUP BY customer_id''') AS rq ON rq.customer_id = c.customer_id GROUP BY c.customer_id, c.name, rq.first_order_date;
Inizia in BigQuery per eseguire una query Data Boost
Per creare una connessione dati esterna da BigQuery a un database Spanner e utilizzarla per eseguire una query federata di Data Boost da BigQuery, seleziona una delle seguenti opzioni:
Console
Vai a Creare connessioni Spanner nella documentazione di BigQuery e segui le istruzioni riportate nella scheda Console.
Nel riquadro Origine dati esterna, segui questi passaggi:
- Seleziona Leggi dati in parallelo.
- Seleziona Utilizza Spanner Data Boost.
bq
Vai a Creare connessioni Spanner nella documentazione di BigQuery e segui le istruzioni riportate nella scheda bq*.
Imposta le seguenti proprietà di connessione su
true
:useParallelism
useDataBoost
L'esempio seguente utilizza il comando bq
mk
per creare una nuova connessione denominata my_connection
con le due proprietà richieste per Data Boost:
bq mk --connection --connection_type='CLOUD_SPANNER' --location='us' \
--properties='{"database":"projects/my-project/instances/my-instance/databases/my-database", "useParallelism":true, "useDataBoost": true}' my_connection
Passaggi successivi
- Scopri di più su Data Boost nella Panoramica di Data Boost
- Utilizzare Data Boost nelle applicazioni
- Monitorare l'utilizzo di Data Boost
- Monitorare e gestire l'utilizzo della quota di Data Boost