Ejecuta consultas federadas con Data Boost

En esta página, se explica cómo usar Data Boost de Spanner cuando ejecutas consultas federadas desde BigQuery a una base de datos de Spanner. Con Data Boost, las consultas federadas se ejecutan con un impacto mínimo en las cargas de trabajo existentes en la instancia de Spanner aprovisionada. Las consultas de Data Boost de BigQuery a una base de datos de Spanner pueden unir datos de BigQuery con datos de Spanner.

La federación de Spanner permite que BigQuery consulte datos que se encuentran en Spanner en tiempo real, sin copiarlos ni moverlos. Si deseas obtener más información sobre las consultas federadas de Spanner, consulta Consultas federadas de Spanner. Para obtener información sobre Data Boost, consulta la descripción general de Data Boost.

Antes de comenzar

Antes de poder ejecutar consultas federadas con Data Boost, debes completar las siguientes tareas:

Crea una instancia y una base de datos de Spanner

Si no tienes una instancia ni una base de datos de Spanner, sigue los pasos que se indican en Crea y consulta una base de datos con la consola de Google Cloud para crearlas.

Habilita la API de BigQuery Connection

La API de conexión de BigQuery te permite administrar conexiones de BigQuery a fuentes de datos externas, como una base de datos de Spanner.

  • Enable the BigQuery connection API.

    Enable the API

Para obtener más información, consulta la API de conexión de BigQuery en la documentación de BigQuery.

Otorga permisos de IAM para el aumento de datos a los principales

Se deben otorgar los siguientes permisos a un principal para ejecutar consultas federadas con Data Boost:

  • spanner.instances.get: Te permite obtener la configuración de una instancia.
  • spanner.databases.useDataBoost: Te permite usar los recursos de procesamiento de Data Boost de Spanner para procesar consultas particionadas.

Para obtener más información sobre los permisos de Spanner, consulta Permisos de Identity and Access Management (IAM).

Para otorgar estos permisos obligatorios, te recomendamos que uses el rol de IAM Cloud Spanner Database Reader With DataBoost (roles/spanner.databaseReaderWithDataBoost). Puedes agregar ese rol a cualquier principal que necesite ejecutar consultas federadas con Data Boost. Para obtener más información sobre los roles predefinidos en Spanner, consulta Roles predefinidos. Para aprender a crear un rol de IAM personalizado, consulta Crea un rol personalizado.

Ejecuta una consulta federada de Data Boost

Para ejecutar una consulta de Data Boost desde BigQuery a una fuente externa, necesitas una conexión de BigQuery a la fuente externa y el ID de la conexión. Cuando ejecutas una consulta federada de Spanner con Data Boost, la fuente externa es una base de datos de Spanner. Después de crear tu ID de conexión, BigQuery lo usará para ejecutar una consulta de Data Boost de una base de datos de Spanner.

Usa una de las siguientes opciones para crear un ID de conexión de BigQuery y, luego, usa el ID de conexión para ejecutar una consulta de Aumento de datos desde BigQuery:

  1. Iniciar en Spanner: Crea el ID de conexión externa de BigQuery en la consola de Spanner. Después de crear el ID de tu conexión en la consola de Spanner, se te redireccionará a la consola de BigQuery para ejecutar una consulta federada de Data Boost en una base de datos de Spanner.

  2. Iniciar en BigQuery: Crea el ID de conexión externa de Data Boost en la consola de BigQuery o con la herramienta de línea de comandos bq. Después de crear el ID de conexión, permaneces en la consola de BigQuery para ejecutar una consulta federada de Data Boost en una base de datos de Spanner.

Cómo comenzar en Spanner para ejecutar una consulta de Data Boost

Para ejecutar una consulta federada de Data Boost desde Spanner Studio, haz lo siguiente:

  1. Ve a la página Instancias de Spanner en la consola de Google Cloud.

    Ir a la página Instancias

    En la consola, se muestra una lista de tus instancias de Spanner.

  2. Selecciona una instancia de Spanner y, luego, una base de datos.

  3. En el menú de navegación de la página Descripción general de la base de datos, haz clic en Spanner Studio.

  4. Haz clic en Ver en BigQuery.

  5. En el diálogo Ver en BigQuery, ingresa un ID de conexión.

    El ID de conexión se usa para crear una nueva conexión externa de BigQuery a tu base de datos de Spanner. Para hacer referencia a tu conexión externa, usa el siguiente patrón:

    PROJECT-ID.LOCATION.CONNECTION-ID
    

    Se produce un error si el ID ya existe.

  6. Completa el resto del cuadro de diálogo y haz lo siguiente:

    • Selecciona Leer datos en paralelo.
    • Selecciona Usar Data Boost de Spanner.
  7. Haz clic en Ver en BigQuery.

    BigQuery Studio se abrirá con la siguiente consulta:

    SELECT * FROM EXTERNAL_QUERY("PROJECT-ID.LOCATION.CONNECTION-ID", "SELECT * FROM INFORMATION_SCHEMA.TABLES;");
    

    Puedes reemplazarlo por tu consulta federada. Por ejemplo, puedes hacer una consulta similar a la siguiente. En este ejemplo, se realiza una consulta federada a partir de una tabla llamada orders en una base de datos de Spanner y se unen los resultados con una tabla de BigQuery llamada 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;

Comienza en BigQuery para ejecutar una consulta de Data Boost

Para crear una conexión de datos externa de BigQuery a una base de datos de Spanner y usar esa conexión para ejecutar una consulta federada de Data Boost desde BigQuery, selecciona una de las siguientes opciones:

Console

  1. Ve a Cómo crear conexiones de Spanner en la documentación de BigQuery y sigue las instrucciones de la pestaña Console.

  2. En el panel Fuente de datos externa, haz lo siguiente:

    • Selecciona Leer datos en paralelo.
    • Selecciona Usar Data Boost de Spanner.

bq

  1. Ve a Crea conexiones de Spanner en la documentación de BigQuery y sigue las instrucciones de la pestaña bq*.

  2. Establece las siguientes propiedades de conexión en true:

    • useParallelism
    • useDataBoost

En el siguiente ejemplo, se usa el comando bq mk para crear una conexión nueva llamada my_connection con las dos propiedades requeridas para el aumento de datos:

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

¿Qué sigue?