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 di 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 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 ed esportazioni con Data Boost:
spanner.instances.get
: consente di ottenere la configurazione di un'istanza.spanner.databases.useDataBoost
: ti consente di utilizzare le risorse di calcolo di Spanner Data Boost per elaborare 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 creare un ruolo personalizzato basato sul ruolo Lettore database Spanner (roles/spanner.databaseReader
) che includa spanner.instances.get
e spanner.databases.useDataBoost
.
Puoi quindi aggiungere questo ruolo a qualsiasi entità che deve essere in grado di eseguire query ed esportazioni con Data Boost. Per scoprire come creare un
ruolo IAM personalizzato, consulta
Creare un ruolo personalizzato. Per saperne di più sui ruoli predefiniti in Spanner, consulta Ruoli predefiniti.
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. Una volta creato l'ID connessione nella console Spanner, viene visualizzato un messaggio che ti reindirizza 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 console Google 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 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à obbligatorie 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