Cette page explique comment utiliser Spanner Data Boost lorsque vous exécutez des requêtes fédérées depuis BigQuery vers une base de données Spanner. Avec Data Boost, les requêtes fédérées s'exécutent avec un impact minimal sur les charges de travail existantes sur l'instance Spanner provisionnée. Les requêtes Data Boost de BigQuery vers une base de données Spanner peuvent joindre des données BigQuery à des données Spanner.
La fédération de Spanner permet à BigQuery d'interroger les données résidant dans Spanner en temps réel, sans avoir à les copier ni à les déplacer. Pour en savoir plus sur les requêtes fédérées Spanner, consultez la section Requêtes fédérées Spanner. Pour en savoir plus sur Data Boost, consultez la présentation de Data Boost.
Avant de commencer
Avant de pouvoir exécuter des requêtes fédérées avec Data Boost, vous devez effectuer les tâches suivantes:
Créer une instance et une base de données Spanner
Si vous ne disposez pas d'instance et de base de données Spanner, suivez la procédure décrite dans Créer et interroger une base de données à l'aide de la console Google Cloud pour les créer.
Activer l'API BigQuery Connection
L'API BigQuery Connection vous permet de gérer les connexions BigQuery aux sources de données externes, telles qu'une base de données Spanner.
-
Enable the BigQuery connection API.
Pour en savoir plus, consultez l'API de connexion BigQuery dans la documentation BigQuery.
Accorder des autorisations IAM pour Data Boost aux principaux
Un principal doit disposer des autorisations suivantes pour exécuter des requêtes fédérées avec Data Boost:
spanner.instances.get
: vous permet d'obtenir la configuration d'une instance.spanner.databases.useDataBoost
: vous permet d'utiliser les ressources de calcul de Spanner Data Boost pour traiter les requêtes partitionnées.
Pour en savoir plus sur les autorisations Spanner, consultez la section Autorisations Identity and Access Management (IAM).
Pour accorder ces autorisations requises, nous vous recommandons d'utiliser le rôle IAM Cloud
Spanner Database Reader With DataBoost
(roles/spanner.databaseReaderWithDataBoost
). Vous pouvez ajouter ce rôle à tout principal qui doit exécuter des requêtes fédérées avec Data Boost. Pour en savoir plus sur les rôles prédéfinis dans Spanner, consultez la section Rôles prédéfinis. Pour savoir comment créer un rôle IAM personnalisé, consultez la section Créer un rôle personnalisé.
Exécuter une requête Data Boost fédérée
Pour exécuter une requête Data Boost depuis BigQuery vers une source externe, vous avez besoin d'une connexion BigQuery à la source externe et de l'ID de la connexion. Lorsque vous exécutez une requête Spanner fédérée avec Data Boost, la source externe est une base de données Spanner. Une fois que vous avez créé votre ID de connexion, BigQuery l'utilise pour exécuter une requête Data Boost sur une base de données Spanner.
Utilisez l'une des options suivantes pour créer un ID de connexion BigQuery, puis utilisez cet ID de connexion pour exécuter une requête Data Boost à partir de BigQuery:
Démarrer dans Spanner : créez l'ID de connexion externe BigQuery dans la console Spanner. Une fois votre ID de connexion créé dans la console Spanner, vous êtes redirigé vers la console BigQuery pour exécuter une requête Data Boost fédérée sur une base de données Spanner.
Démarrer dans BigQuery : créez l'ID de connexion externe Data Boost dans la console BigQuery ou à l'aide de l'outil de ligne de commande
bq
. Après avoir créé l'ID de connexion, vous restez dans la console BigQuery pour exécuter une requête Data Boost fédérée sur une base de données Spanner.
Commencer dans Spanner pour exécuter une requête Data Boost
Pour exécuter une requête Data Boost fédérée à partir de Spanner Studio, procédez comme suit:
Accédez à la page Instances de Spanner dans la console Google Cloud.
La console affiche la liste de vos instances Spanner.
Sélectionnez une instance Spanner, puis une base de données.
Sur la page Présentation de la base de données, dans le menu de navigation, cliquez sur Spanner Studio.
Cliquez sur Afficher dans BigQuery.
Dans la boîte de dialogue Afficher dans BigQuery, saisissez un ID de connexion.
L'ID de connexion permet de créer une connexion externe BigQuery à votre base de données Spanner. Vous référencez votre connexion externe à l'aide du format suivant:
PROJECT-ID.LOCATION.CONNECTION-ID
Une erreur se produit si l'identifiant existe déjà.
Renseignez le reste de la boîte de dialogue, puis procédez comme suit:
- Sélectionnez Lire les données en parallèle.
- Sélectionnez Utiliser Spanner Data Boost.
Cliquez sur Afficher dans BigQuery.
BigQuery Studio s'ouvre avec la requête suivante:
SELECT * FROM EXTERNAL_QUERY("PROJECT-ID.LOCATION.CONNECTION-ID", "SELECT * FROM INFORMATION_SCHEMA.TABLES;");
Vous pouvez le remplacer par votre requête fédérée. Par exemple, vous pouvez effectuer une requête semblable à l'exemple suivant. Cet exemple effectue une requête fédérée à partir d'une table nommée
orders
dans une base de données Spanner et joint les résultats à une table BigQuery nomméemydataset.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;
Exécuter une requête Data Boost à partir de BigQuery
Pour créer une connexion de données externe depuis BigQuery vers une base de données Spanner et utiliser cette connexion pour exécuter une requête Data Boost fédérée depuis BigQuery, sélectionnez l'une des options suivantes:
Console
Accédez à Créer des connexions Spanner dans la documentation BigQuery, puis suivez les instructions de l'onglet Console.
Dans le volet Source de données externes, procédez comme suit:
- Sélectionnez Lire les données en parallèle.
- Sélectionnez Utiliser Spanner Data Boost.
bq
Accédez à Créer des connexions Spanner dans la documentation BigQuery, puis suivez les instructions de l'onglet bq*.
Définissez les propriétés de connexion suivantes sur
true
:useParallelism
useDataBoost
L'exemple suivant utilise la commande bq
mk
pour créer une nouvelle connexion nommée my_connection
avec les deux propriétés requises pour le boost de données:
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
Étape suivante
- En savoir plus sur Data Boost dans la présentation de Data Boost
- Utiliser Data Boost dans vos applications
- Surveiller l'utilisation de Data Boost
- Surveiller et gérer l'utilisation du quota de Data Boost