Exécuter des requêtes fédérées avec Data Boost

Cette page explique comment utiliser Spanner Data Boost lors de l'exécution de requêtes fédérées depuis BigQuery vers Spanner. Avec Data Boost, les requêtes fédérées s'exécutent avec un impact quasi nul sur les charges de travail existantes sur l'instance Spanner provisionnée.

La fédération de Spanner permet à BigQuery d'interroger les données résidant dans Spanner en temps réel, sans avoir à copier ni déplacer de données.

Pour en savoir plus sur les requêtes fédérées Spanner, consultez la page Requêtes fédérées Spanner.

Pour en savoir plus sur Data Boost, consultez la page Présentation de Data Boost.

Avant de commencer

Effectuez les tâches suivantes avant d'essayer d'exécuter des requêtes fédérées avec Data Boost.

Activer l'API de connexion BigQuery

L'API de connexion BigQuery vous permet de gérer les connexions BigQuery aux sources de données externes.

  • Activez BigQuery connection API.

    Activer l'API

Pour en savoir plus, consultez la page API de connexion BigQuery.

Accorder aux comptes principaux des autorisations IAM pour Data Boost

Les comptes principaux doivent disposer des autorisations IAM (Identity and Access Management) spanner.instances.get et spanner.databases.useDataBoost pour exécuter des requêtes et des exportations avec Data Boost.

Nous vous recommandons de créer un rôle IAM personnalisé basé sur Spanner Database Reader (roles/spanner.databaseReader) et d'y ajouter spanner.instances.get et spanner.databases.useDataBoost.

Pour en savoir plus, consultez la section Rôles prédéfinis.

Créer des connexions BigQuery pour Spanner avec Data Boost

Les connexions BigQuery vous permettent d'interroger des données stockées en dehors de BigQuery. Pour établir une connexion entre BigQuery et Spanner, vous devez créer une connexion de données externe. Vous pouvez ensuite exécuter des requêtes qui associent les données BigQuery aux données Spanner.

Pour créer une connexion de données externe à Spanner qui utilise Data Boost, sélectionnez l'une des options suivantes:

Console

  1. Accédez à la page Créer des connexions Spanner dans la documentation BigQuery et suivez les instructions de la console.

  2. Dans le volet Source de données externe, cochez les cases Lire les données en parallèle et Utiliser Spanner Data Boost.

bq

  1. Accédez à la page Créer des connexions Spanner dans la documentation BigQuery et suivez les instructions bq.

  2. 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

Exécuter une requête fédérée

Pour exécuter une requête fédérée avec Data Boost, utilisez une connexion BigQuery qui spécifie l'utilisation de Data Boost. Pour en savoir plus, consultez la page Créer des connexions BigQuery pour Spanner avec Data Boost.

Vous pouvez commencer à partir de la page "Spanner" de la console Google Cloud ou de BigQuery.

Accéder à la page "Spanner" de la console

  1. Accédez à la page Instances de Spanner dans la console Google Cloud.

    Accéder à la page Instances

    La console affiche la liste de vos instances Spanner.

  2. Sélectionnez une instance Spanner, puis une base de données.

  3. Dans le menu de navigation de la page Présentation de la base de données, cliquez sur Spanner Studio.

  4. Cliquez sur l'onglet View in BigQuery (Afficher dans BigQuery).

  5. Dans la boîte de dialogue Afficher dans BigQuery, saisissez un ID de connexion.

    Cela crée une nouvelle connexion. Une erreur se produit si l'ID existe déjà.

  6. Remplissez le reste de la boîte de dialogue, puis cochez les cases Lire les données en parallèle et Utiliser Spanner Data Boost.

  7. Cliquez sur Afficher dans BigQuery.

    BigQuery Studio s'ouvre. Saisissez-y et exécutez votre requête fédérée.

    L'exemple suivant envoie une requête fédérée à une base de données Spanner nommée orders et joint les résultats à une table BigQuery nommée mydataset.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;
    

Partir de BigQuery

  • Saisissez l'URL suivante dans votre navigateur :

    https://console.cloud.google.com/bigquery

    BigQuery s'ouvre dans le dernier projet auquel vous avez accédé et affiche BigQuery Studio. Exécutez votre requête fédérée ici.

Étapes suivantes