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 carichi di lavoro esistenti nell'istanza Spanner di cui è stato eseguito il provisioning. Le query Data Boost da BigQuery a un database Spanner possono unire i dati BigQuery con i dati Spanner.
La federazione Spanner consente a BigQuery di eseguire query in tempo reale sui dati presenti in Spanner, 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 disponi di un'istanza e di un database Spanner, segui i passaggi descritti in Crea ed esegui query su un database utilizzando la console per crearli. Google Cloud
Abilita l'API BigQuery Connection
L'API BigQuery Connection consente di gestire le connessioni BigQuery a origini dati esterne, ad esempio un database Spanner.
-
Enable the BigQuery connection API.
Per saperne di più, consulta l'API BigQuery Connection nella documentazione di BigQuery.
Concedi autorizzazioni IAM per Data Boost alle entità
A un principal 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 ulteriori informazioni sulle autorizzazioni Spanner, consulta Autorizzazioni 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, vedi Creare un ruolo
personalizzato.
Eseguire una query Data Boost federata
Per eseguire una query 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 visualizzata la console BigQuery per eseguire una query federata Data Boost su un database Spanner.
Inizia in BigQuery: crea l'ID connessione esterna 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 su un database Spanner.
Inizia da Spanner per eseguire una query Data Boost
Per eseguire una query federata Data Boost 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, quindi seleziona 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 tuo database Spanner. Fai riferimento alla tua connessione esterna utilizzando il seguente pattern:
PROJECT-ID.LOCATION.CONNECTION-ID
Si verifica un errore se l'ID esiste già.
Compila il resto della finestra di dialogo e procedi nel seguente modo:
- Seleziona Lettura di 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 sostituirlo con la tua query federata. Ad esempio, potresti creare 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 da BigQuery per eseguire una query Data Boost
Per creare una connessione dati esterna da BigQuery a un database Spanner e utilizzare questa connessione per eseguire una query Data Boost federata 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 Lettura di dati in parallelo.
- Seleziona Utilizza Spanner Data Boost.
bq
Vai a Crea connessioni Spanner nella documentazione di BigQuery e segui le istruzioni 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 in 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