Cette page explique comment utiliser Spanner Data Boost lorsque vous exécutez des requêtes fédérées de 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 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 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 ni de base de données Spanner, suivez les étapes de la section 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 à des sources de données externes, comme une base de données Spanner.
-
Enable the BigQuery connection API.
Pour en savoir plus, consultez la documentation BigQuery sur l'API de connexion BigQuery.
Accorder des autorisations IAM pour Data Boost aux comptes principaux
Un compte 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 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 à n'importe quel compte 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 Rôles prédéfinis. Pour savoir comment créer un rôle IAM personnalisé, consultez 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 d'une base de données Spanner.
Utilisez l'une des options suivantes pour créer un ID de connexion BigQuery, puis utilisez cet ID pour exécuter une requête Data Boost depuis BigQuery :
Commencer 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 vers une base de données Spanner.
Commencez 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
. Une fois l'ID de connexion créé, 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 :
Accédez à la page Instances de Spanner dans la consoleGoogle 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 modèle suivant :
PROJECT-ID.LOCATION.CONNECTION-ID
Une erreur se produit si l'ID existe déjà.
Remplissez le reste de la boîte de dialogue, puis procédez comme suit :
- Sélectionnez Lire des 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 envoie 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;
Commencer dans BigQuery pour exécuter une requête Data Boost
Pour créer une connexion de données externe de BigQuery à 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 et suivez les instructions de l'onglet Console.
Dans le volet Source de données externes, procédez comme suit :
- Sélectionnez Lire des données en parallèle.
- Sélectionnez Utiliser Spanner Data Boost.
bq
Accédez à Créer des connexions Spanner dans la documentation BigQuery et 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 connexion nommée my_connection
avec les deux propriétés requises pour 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
Étapes suivantes
- En savoir plus sur Data Boost dans 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 Data Boost