Introducción a las consultas continuas
En este documento se describen las consultas continuas de BigQuery.
Las consultas continuas de BigQuery son instrucciones SQL que se ejecutan de forma continua. Las consultas continuas te permiten analizar los datos entrantes en BigQuery en tiempo real. Puede insertar las filas de salida generadas por una consulta continua en una tabla de BigQuery o exportarlas a Pub/Sub, Bigtable o Spanner. Las consultas continuas pueden procesar datos que se han escrito en tablas estándar de BigQuery mediante uno de los siguientes métodos:
- La API Storage Write de BigQuery
- El método
tabledata.insertAll
- Carga por lotes
- La instrucción DML
INSERT
Puedes usar consultas continuas para realizar tareas urgentes, como crear estadísticas y actuar en consecuencia de inmediato, aplicar inferencias de aprendizaje automático (ML) en tiempo real y replicar datos en otras plataformas. De esta forma, puedes usar BigQuery como motor de procesamiento de datos basado en eventos para la lógica de decisión de tu aplicación.
En el siguiente diagrama se muestran los flujos de trabajo habituales de las consultas continuas:
Casos prácticos
Estos son algunos casos prácticos habituales en los que puede ser útil usar consultas continuas:
- Servicios de interacción personalizada con los clientes: usa la IA generativa para crear mensajes personalizados para cada interacción con los clientes.
- Detección de anomalías: crea soluciones que te permitan detectar anomalías y amenazas en datos complejos en tiempo real para que puedas reaccionar ante los problemas más rápido.
- Pipelines basados en eventos personalizables: usa la integración de consultas continuas con Pub/Sub para activar aplicaciones posteriores en función de los datos entrantes.
- Enriquecimiento de datos y extracción de entidades: usa consultas continuas para enriquecer y transformar datos en tiempo real mediante funciones de SQL y modelos de aprendizaje automático.
- Proceso de extracción, transformación y carga (ETL) inverso: realiza procesos de ETL inversos en tiempo real en otros sistemas de almacenamiento más adecuados para el servicio de aplicaciones de baja latencia. Por ejemplo, analizar o mejorar los datos de eventos que se escriben en BigQuery y, a continuación, transmitirlos a Bigtable o Spanner para que los use la aplicación.
Operaciones admitidas
Las siguientes operaciones se admiten en las consultas continuas:
- Ejecutar instrucciones
INSERT
para escribir datos de una consulta continua en una tabla de BigQuery. Ejecutar instrucciones
EXPORT DATA
para publicar la salida de la consulta continua en temas de Pub/Sub. Para obtener más información, consulta Exportar datos a Pub/Sub.Desde un tema de Pub/Sub, puedes usar los datos con otros servicios, como realizar analíticas en tiempo real con Dataflow o usar los datos en un flujo de trabajo de integración de aplicaciones.
Ejecutar instrucciones
EXPORT DATA
para exportar datos de BigQuery a tablas de Bigtable. Para obtener más información, consulta el artículo Exportar datos a Bigtable.Ejecutar instrucciones
EXPORT DATA
para exportar datos de BigQuery a tablas de Spanner. Para obtener más información, consulta el artículo Exportar datos a Spanner (ETL inverso).Llamar a la siguiente función de IA generativa:
Para usar esta función, debes tener un modelo remoto de BigQuery ML sobre un modelo de Vertex AI.
Llamar a las siguientes funciones de IA:
Para usar estas funciones, debes tener un modelo remoto de BigQuery ML en una API de Cloud AI.
Normalizar datos numéricos mediante la función
ML.NORMALIZER
.Usar funciones de GoogleSQL sin estado, como las funciones de conversión. En las funciones sin estado, cada fila se procesa de forma independiente de las demás filas de la tabla.
Usar la función de historial de cambios
APPENDS
para iniciar el procesamiento continuo de consultas desde un momento específico.
Autorización
Los Google Cloud tokens de acceso que se usan al ejecutar trabajos de consulta continua tienen un tiempo de vida (TTL) de dos días cuando los genera una cuenta de usuario. Por lo tanto, estas tareas dejan de ejecutarse al cabo de dos días. Los tokens de acceso que generan las cuentas de servicio pueden durar más, pero deben seguir cumpliendo el tiempo de ejecución máximo de las consultas. Para obtener más información, consulta Ejecutar una consulta continua con una cuenta de servicio.
Ubicaciones
Las consultas continuas se admiten en las siguientes ubicaciones:
Descripción de la región | Nombre de la región | Detalles | |
---|---|---|---|
América | |||
Multirregional de EE. UU. | us |
||
Dallas | us-south1 |
|
|
Iowa | us-central1 |
|
|
Los Ángeles | us-west2 |
||
México | northamerica-south1 |
||
Montreal | northamerica-northeast1 |
|
|
Norte de Virginia | us-east4 |
||
Oregón | us-west1 |
|
|
Salt Lake City | us-west3 |
||
São Paulo | southamerica-east1 |
|
|
Carolina del Sur | us-east1 |
||
Toronto | northamerica-northeast2 |
|
|
Asia‑Pacífico | |||
Deli | asia-south2 |
||
Hong Kong | asia-east2 |
||
Yakarta | asia-southeast2 |
||
Melbourne | australia-southeast2 |
||
Bombay | asia-south1 |
||
Osaka | asia-northeast2 |
||
Seúl | asia-northeast3 |
||
Singapur | asia-southeast1 |
||
Sídney | australia-southeast1 |
||
Taiwán | asia-east1 |
||
Tokio | asia-northeast1 |
||
Europa | |||
Multirregional de la UE | eu |
||
Bélgica | europe-west1 |
|
|
Berlín | europe-west10 |
|
|
Finlandia | europe-north1 |
|
|
Fráncfort | europe-west3 |
||
Londres | europe-west2 |
|
|
Madrid | europe-southwest1 |
|
|
Milán | europe-west8 |
||
Países Bajos | europe-west4 |
|
|
París | europe-west9 |
|
|
Estocolmo | europe-north2 |
|
|
Turín | europe-west12 |
||
Varsovia | europe-central2 |
||
Zúrich | europe-west6 |
|
|
Oriente Medio | |||
Doha | me-central1 |
||
Dammam | me-central2 |
||
Tel Aviv | me-west1 |
||
África | |||
Johannesburgo | africa-south1 |
Limitaciones
Las consultas continuas están sujetas a las siguientes limitaciones:
- Las consultas continuas de BigQuery no mantienen el estado de los datos ingeridos. No se admiten operaciones comunes que dependen del estado, como
JOIN
, funciones de agregación o funciones de ventana. No puede usar las siguientes funciones de SQL en una consulta continua:
JOIN
operaciones- Funciones de agregación
- Funciones de agregación aproximada
Las siguientes cláusulas de consulta:
Los siguientes operadores de consulta:
Operadores de conjuntos de consultas
Funciones de BigQuery ML que no se incluyan en la sección Operaciones admitidas
Declaraciones de lenguaje de manipulación de datos (DML) excepto
INSERT
.Declaraciones
EXPORT DATA
que no estén dirigidas a Bigtable, Pub/Sub o Spanner.
Las consultas continuas no admiten el tratamiento de datos de inserción y actualización de captura de datos de cambios (CDC).
Las consultas continuas no admiten tablas comodín como fuente de datos.
Las consultas continuas no admiten tablas externas como fuente de datos.
Las consultas continuas no admiten vistas INFORMATION_SCHEMA como fuente de datos.
Las consultas continuas no admiten tablas de BigLake para Apache Iceberg en BigQuery.
Las consultas continuas no admiten las siguientes funciones de seguridad de BigQuery:
Cuando exporta datos a Bigtable, solo puede usar instancias de Bigtable que estén dentro del mismoGoogle Cloud límite regional que el conjunto de datos de BigQuery que contiene la tabla que está consultando. Para obtener más información, consulta Cuestiones importantes sobre ubicación. Esta restricción no se aplica a la exportación de datos a Pub/Sub, ya que Pub/Sub es un recurso global.
Cuando exportas datos a Bigtable, Spanner o endpoints de Pub/Sub, solo puedes usar recursos de Bigtable, Spanner o Pub/Sub que estén dentro del mismo límite regional de Google Cloudque el conjunto de datos de BigQuery que contiene la tabla que estás consultando. Esta restricción no se aplica al exportar datos a endpoints globales de Pub/Sub.
No puedes ejecutar una consulta continua desde un lienzo de datos.
No puedes modificar el SQL usado en una consulta continua mientras se esté ejecutando la tarea de consulta continua. Para obtener más información, consulta Modificar el SQL de una consulta continua.
Si una tarea de consulta continua se retrasa en el procesamiento de los datos entrantes y tiene un retraso de marca de agua de salida de más de 48 horas, se produce un error. Puedes volver a ejecutar la consulta y usar la función de historial de cambios
APPENDS
para reanudar el procesamiento desde el momento en el que detuviste el trabajo de consulta continua anterior. Para obtener más información, consulta Iniciar una consulta continua desde un momento concreto.Una consulta continua configurada con una cuenta de usuario puede ejecutarse durante un máximo de dos días. Una consulta continua configurada con una cuenta de servicio puede ejecutarse durante un máximo de 150 días. Cuando se alcanza el tiempo de ejecución máximo de la consulta, esta falla y deja de procesar los datos entrantes.
Aunque las consultas continuas se crean con las funciones de fiabilidad de BigQuery, pueden producirse problemas temporales de vez en cuando. Los problemas pueden provocar que se vuelva a procesar automáticamente una parte de tu consulta continua, lo que podría dar lugar a datos duplicados en el resultado de la consulta continua. Diseña tus sistemas posteriores para gestionar estas situaciones.
Limitaciones de las reservas
- Para ejecutar consultas continuas, debes crear reservas de la edición Enterprise o Enterprise Plus. Las consultas continuas no admiten el modelo de facturación de computación bajo demanda.
- Cuando creas una
CONTINUOUS
asignación de reserva, la reserva asociada se limita a un máximo de 500 ranuras. Puedes solicitar un aumento de este límite poniéndote en contacto con bq-continuous-queries-feedback@google.com. - No puedes crear una asignación de reserva que use un tipo de trabajo diferente en la misma reserva que una asignación de reserva de consulta continua.
- No puedes configurar la simultaneidad de consultas continuas. BigQuery determina automáticamente el número de consultas continuas que se pueden ejecutar simultáneamente en función de las asignaciones de reserva disponibles que usen el tipo de tarea
CONTINUOUS
. - Cuando se ejecutan varias consultas continuas con la misma reserva, es posible que los trabajos individuales no dividan los recursos disponibles de forma equitativa, tal como se define en la equidad de BigQuery.
Autoescalado de ranuras
Las consultas continuas pueden usar el autoescalado de ranuras para escalar dinámicamente la capacidad asignada y adaptarse a tu carga de trabajo. A medida que aumenta o disminuye la carga de trabajo de tus consultas continuas, BigQuery ajusta dinámicamente tus slots.
Una vez que se empieza a ejecutar una consulta continua, escucha activamente los datos entrantes, lo que consume recursos de ranura. Aunque una reserva con una consulta continua en ejecución no se reduce a cero ranuras, se espera que una consulta continua inactiva que principalmente esté escuchando datos entrantes consuma una cantidad mínima de ranuras, normalmente alrededor de 1.
Compartir intervalos inactivos
Las consultas continuas pueden usar la función de compartir ranuras inactivas para compartir recursos de ranuras sin usar con otras reservas y tipos de tareas.
- Para ejecutar una consulta continua, sigue siendo necesario
CONTINUOUS
asignar una reserva y no se puede depender únicamente de las ranuras inactivas de otras reservas. Por lo tanto, unaCONTINUOUS
asignación de reserva requiere una base de referencia de franja horaria distinta de cero o una configuración de autoescalado de franja horaria distinta de cero. - Solo se pueden compartir las ranuras de referencia inactivas o las ranuras confirmadas de una asignación de reserva
CONTINUOUS
. Las ranuras con escalado automático no se pueden compartir como ranuras inactivas para otras reservas.
Precios
Las consultas continuas usan la tarifa de computación de capacidad de BigQuery, que se mide en ranuras.
Para ejecutar consultas continuas, debes tener una reserva que use la edición Enterprise o Enterprise Plus y una asignación de reserva que use el tipo de trabajo CONTINUOUS
.
El uso de otros recursos de BigQuery, como la ingesta y el almacenamiento de datos, se cobra según las tarifas que se indican en la página de precios de BigQuery.
El uso de otros servicios que reciben resultados de consultas continuas o que se llaman durante el procesamiento de consultas continuas se cobra según las tarifas publicadas para esos servicios. Para consultar los precios de otros Google Cloud servicios que usan las consultas continuas, consulta los siguientes temas:
Siguientes pasos
Prueba a crear una consulta continua.