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 de 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. Para 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 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 conexión de BigQuery
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.
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 Data Boost a los principales
Una principal debe tener los siguientes permisos 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 Spanner Data Boost 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 de 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 usa 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 ese ID para ejecutar una consulta de Data Boost desde BigQuery:
Comienza en Spanner: Crea el ID de conexión externa de BigQuery en la consola de Spanner. Después de que se cree tu ID de 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.
Comienza 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, permanecerás 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:
Ve a la página Instancias de Spanner en laGoogle Cloud consola.
En la consola, se muestra una lista de tus instancias de Spanner.
Selecciona una instancia de Spanner y, luego, una base de datos.
En la página Descripción general de la base de datos, en el menú de navegación, haz clic en Spanner Studio.
Haz clic en Ver en BigQuery.
En el diálogo Ver en BigQuery, ingresa un ID de conexión.
El ID de conexión se usa para crear una conexión externa nueva 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.
Completa el resto del diálogo y haz lo siguiente:
- Selecciona Leer datos en paralelo.
- Selecciona Usar Data Boost de Spanner.
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 reemplazarla por tu consulta federada. Por ejemplo, puedes hacer una consulta similar a la del siguiente ejemplo. En este ejemplo, se realiza una consulta federada desde una tabla llamada
orders
en una base de datos de Spanner y se unen los resultados con una tabla de BigQuery llamadamydataset.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 desde 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
Ve a Crea conexiones de Spanner en la documentación de BigQuery y sigue las instrucciones de la pestaña Consola.
En el panel Fuente de datos externa, haz lo siguiente:
- Selecciona Leer datos en paralelo.
- Selecciona Usar Data Boost de Spanner.
bq
Ve a Crea conexiones de Spanner en la documentación de BigQuery y sigue las instrucciones de la pestaña bq*.
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 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
¿Qué sigue?
- Obtén más información sobre Data Boost en la Descripción general de Data Boost
- Cómo usar Data Boost en tus aplicaciones
- Supervisa el uso de Data Boost
- Supervisa y administra el uso de la cuota de Aumento de datos