Introducción a las consultas continuas
En este documento, se describen las consultas continuas de BigQuery.
Las consultas continuas de BigQuery son instrucciones de SQL que se ejecutan de forma continua. Las consultas continuas te permiten analizar datos entrantes en BigQuery en tiempo real. Puedes insertar las filas de salida que genera una consulta continua en una tabla de BigQuery o exportarlas a Pub/Sub, Bigtable o Spanner. Las consultas continuas pueden procesar datos que se escribieron en tablas estándar de BigQuery a través de uno de los siguientes métodos:
- La API de BigQuery Storage Write (gRPC)
- La API de BigQuery Storage Write (REST)
- Carga por lotes
- La sentencia
INSERTde DML - Sentencias de lenguaje de manipulación de datos (DML)
como
DELETE,UPDATEyMERGEcuando se exportan datos a Pub/Sub. - Escrituras de los resultados de una consulta por lotes en una tabla permanente
- Escrituras de los resultados de una consulta continua de BigQuery en una tabla permanente
- Una suscripción de Pub/Sub a BigQuery
- Escrituras de Dataflow a BigQuery
- Escrituras de Datastream a BigQuery con el modo de escritura de solo anexos
Puedes usar consultas continuas para realizar tareas urgentes, como crear estadísticas y actuar de inmediato en función de ellas, aplicar inferencias de aprendizaje automático (AA) en tiempo real y replicar datos en otras plataformas. Esto te permite usar BigQuery como un motor de procesamiento de datos controlado por eventos para la lógica de decisión de tu aplicación.
En el siguiente diagrama, se muestran flujos de trabajo comunes de consultas continuas:
Casos de uso
Estos son algunos casos de uso comunes en los que tal vez quieras usar consultas continuas:
- Servicios de interacción personalizada con el cliente: Usa la IA generativa para crear mensajes personalizados para cada interacción con el cliente.
- Detección de anomalías: Compila soluciones que te permitan realizar la detección de anomalías y amenazas en datos complejos en tiempo real para que puedas reaccionar a los problemas con mayor rapidez.
- Canalizaciones basadas en eventos personalizables: Usa la integración de consulta continua con Pub/Sub para activar aplicaciones descendentes según los datos entrantes.
- Enriquecimiento de datos y extracción de entidades: Usa consultas continuas para realizar el enriquecimiento y la transformación de datos en tiempo real con funciones de SQL y modelos de AA.
- Extracción, transformación y carga inversa (ETL): Realiza ETL inverso en tiempo real en otros sistemas de almacenamiento más adecuados para la entrega de aplicaciones de baja latencia. Por ejemplo, analizar o mejorar los datos de eventos que se escriben en BigQuery y, luego, transmitirlos a Bigtable o Spanner para la entrega de aplicaciones.
- Activación autónoma de agentes: Activa canalizaciones de datos de agentes en tiempo real en función de eventos complejos detectados en flujos de datos en vivo. Para obtener un ejemplo, consulta el codelab Crea un agente de datos basado en eventos con BigQuery y el Kit de desarrollo de agentes (ADK).
- Supervisión autónoma de agentes: desarrolla supervisión y alertas automatizadas en tiempo real para interacciones de agentes en tiempo real con el complemento de análisis de agentes de BigQuery, que transmite todos los datos de seguimiento de agentes, el uso de herramientas y los registros operativos directamente a BigQuery para una observabilidad profunda de tu fuerza laboral de IA.
Funcionalidad admitida
Las siguientes operaciones son compatibles con las consultas continuas:
- Ejecutar
declaraciones
INSERTpara escribir datos de una consulta continua en una tabla de BigQuery Ejecutar
EXPORT DATAsentencias para publicar resultados de consultas continuas en temas de Pub/SubLas consultas continuas que exportan datos a Pub/Sub se deben ejecutar con una cuenta de servicio. Para obtener más información, consulta Exporta datos a Pub/Sub.
Desde un tema de Pub/Sub, puedes usar los datos con otros servicios, como realizar análisis de transmisiones a través de Dataflow o de los datos en un flujo de trabajo de Application Integration.
Ejecutar declaraciones
EXPORT DATApara exportar datos de BigQuery a tablas de Bigtable Para obtener más información, consulta Exporta datos a Bigtable.Ejecutar declaraciones
EXPORT DATApara exportar datos de BigQuery a tablas de Spanner Para obtener más información, consulta Exporta datos a Spanner (ETL inverso).Llama a las siguientes funciones de IA generativa:
AI.GENERATE-
- Estas funciones requieren que tengas un modelo remoto de BigQuery ML en un modelo de Gemini Enterprise Agent Platform.
Llama a las siguientes funciones de IA:
Estas funciones requieren que tengas un modelo remoto de BigQuery ML en una API de IA de Cloud.
Normalizar datos numéricos a través de la
ML.NORMALIZERfunción.Analizar y procesar
JSONdatos, incluida la compatibilidad con funciones JSON y la anulación de anidación de JSON.Usar funciones de GoogleSQL sin estado, por ejemplo, funciones de conversión. En las funciones sin estado, cada fila se procesa de forma independiente de las otras filas de la tabla.
Usar operaciones conestado—por ejemplo
JOINs, agregaciones y agregaciones deventanas. En las operaciones con estado, el estado de los datos transferidos se retiene en varias filas o intervalos de tiempo para calcular un resultado preciso.Usar la
APPENDSfunción del historial de cambios para procesar datos anexados desde un momento específico.Usar la
CHANGESfunción del historial de cambios para procesar datos modificados, incluidos los anexos y las mutaciones, desde un momento específico cuando se exportan datos a Pub/Sub. Sin embargo,CHANGESno es compatible cuando se usa una operación con estado.Consultar vistas, siempre que la consulta en SQL subyacente de la vista sea una consulta continua válida.
Operaciones con estado admitidas
Para solicitar asistencia o enviar comentarios sobre esta función, envía un correo electrónico a bq-continuous-queries-feedback@google.com.
Las operaciones con estado permiten que las consultas continuas realicen análisis complejos que requieren retener información en varias filas o intervalos de tiempo. Si bien
las funciones sin estado procesan cada fila de forma independiente, las operaciones con estado mantienen
el estado de los datos transferidos para admitir funciones como JOINs, agregaciones y
agregaciones de ventanas. Esta capacidad te permite correlacionar eventos de diferentes transmisiones o calcular métricas a lo largo del tiempo, como un promedio de 30 minutos, mediante el almacenamiento de los datos necesarios en la memoria mientras se ejecuta la consulta.
Las consultas continuas admiten las siguientes operaciones con estado:
Autorización
Los Google Cloud tokens de acceso que se usan cuando se ejecutan trabajos de consulta continua tienen un tiempo de actividad (TTL) de dos días cuando los genera una cuenta de usuario. Por lo tanto, estos trabajos se dejan de ejecutar después de dos días. Los tokens de acceso que generan las cuentas de servicio pueden ejecutarse por más tiempo, pero deben cumplir con el tiempo de ejecución máximo de la consulta. Para obtener más información, consulta Ejecuta una consulta continua con una cuenta de servicio.
Ubicaciones
Para obtener una lista de las regiones admitidas, consulta Ubicaciones de consultas continuas de BigQuery.
Limitaciones
Las consultas continuas de Spanner están sujetas a las siguientes limitaciones:
- El estado de los datos transferidos solo se mantiene para las operaciones con estado específicas
en la versión preliminar.
Si bien las consultas continuas ahora admiten algunos tipos de
JOINs, agregaciones y agregaciones de ventanas, estos se restringen a operaciones con estado específicas. No se admiten todos los tipos de operaciones con estado. No puedes usar las siguientes funciones de SQL en una consulta continua, a menos que aparezcan como una operación con estado admitida:
Los siguientes operadores de consulta:
Consulta operadores de conjuntos
Funciones de BigQuery ML distintas de las enumeradas en Funcionalidad admitida
Sentencias del lenguaje de manipulación de datos (DML), excepto
INSERTSentencias
EXPORT DATAque no segmentan Bigtable, Pub/Sub o Spanner
Las consultas continuas no admiten las siguientes fuentes de datos:
- Tablas externas.
- Vistas de esquema de información.
- Tablas administradas de Apache Iceberg.
- Tablas comodín.
- Datos de inserción/actualización de captura de datos modificados (CDC)
- Vistas materializadas.
- Vistas en las que la consulta en SQL subyacente usa funciones no admitidas, como funciones definidas por el usuario, tablas externas o tablas habilitadas para CDC.
Las consultas continuas no admiten las funciones de seguridad a nivel de las column- y las filas.
El resultado de una consulta continua está sujeto a las cuotas y los límites inherentes del servicio de destino al que se exporta el resultado.
Cuando exportas datos a extremos de ubicación de Bigtable, Spanner o Pub/Subsolo puedes segmentar recursos de Bigtable, Spanner o Pub/Sub que se encuentren dentro del mismo Google Cloud límite regional que el conjunto de datos de BigQuery que contiene la tabla que estás consultando. Esta restricción no se aplica cuando se exportan datos a extremos globales de Pub/Sub. Para obtener más información sobre la exportación a una política de enrutamiento de perfiles de app de Bigtable, consulta Consideraciones sobre la ubicación.
No puedes ejecutar una consulta continua desde un lienzo de datos.
No puedes modificar el SQL que se usa en una consulta continua mientras se ejecuta el trabajo de consulta continua. Para obtener más información, consulta Modifica el SQL de una consulta continua.
Si un trabajo 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, falla. Puedes volver a ejecutar la consulta y usar la función del historial de cambios
APPENDSoCHANGESpara reanudar el procesamiento desde el momento en que detuviste el trabajo de consulta continua anterior. Para obtener más información, consulta Inicia una consulta continua desde un momento determinado.Una consulta continua configurada con una cuenta de usuario se puede ejecutar hasta por dos días. Una consulta continua configurada con una cuenta de servicio se puede ejecutar hasta por 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 compilan con las funciones de confiabilidad de BigQuery, pueden ocurrir problemas temporales ocasionales. Los problemas pueden generar una cierta cantidad de reprocesamiento automático de tu consulta continua, lo que podría generar datos duplicados en el resultado de la consulta continua. Diseña tus sistemas descendentes para controlar esas situaciones.
Limitaciones de las reservas
- Debes crear una reserva de la edición Enterprise o Enterprise Plus
edition reservation con un
CONTINUOUStipo de asignación para ejecutar consultas continuas. Las consultas continuas no son compatibles con el modelo de facturación de procesamiento a pedido. - Cuando creas una
CONTINUOUSasignación de reserva, la reserva asociada se limita a 500 ranuras como máximo. Para solicitar un aumento de este límite, comunícate 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.
BigQuery determina la cantidad de consultas continuas que se pueden ejecutar de forma simultánea por proyecto en función del tamaño configurado de la asignación de reserva que usa el tipo de trabajo
CONTINUOUS. Para admitir trabajos nuevos, BigQuery requiere un umbral de 10 ranuras por trabajo de consulta continua. La consulta no necesariamente consume las 10 ranuras durante la ejecución normal. Este umbral garantiza que cada consulta continua en ejecución mantenga suficiente capacidad de procesamiento de referencia para controlar los aumentos repentinos en el volumen de datos entrantes sin retrasarse ni comprometer el procesamiento de baja latencia.Para asegurarte de que tus consultas se admitan correctamente sin alcanzar los límites de simultaneidad, te recomendamos que uses el ajuste de escala automático de ranuras. Con el ajuste de escala automático, el uso general de ranuras se ajustará de forma dinámica en función de la demanda real de recursos. Puedes configurar una reserva de referencia más pequeña y establecer un límite máximo de ajuste de escala automático que cubra cómodamente el umbral de 10 ranuras por consulta para las consultas simultáneas esperadas.
Cuando se ejecutan varias consultas continuas con la misma reserva, es posible que los trabajos individuales no dividan los recursos disponibles de manera equitativa, como se define en la equidad de BigQuery.
Ajuste de escala automático de ranuras
Las consultas continuas pueden usar el ajuste de escala automático de ranuras para ajustar de forma dinámica la capacidad asignada para satisfacer tu carga de trabajo. A medida que tu carga de trabajo de consultas continuas aumenta o disminuye, BigQuery ajusta de forma dinámica tus ranuras.
Después de que comienza a ejecutarse una consulta continua, escucha de forma activa los datos entrantes, lo que consume recursos de ranuras. Si bien una reserva con una consulta continua en ejecución no se reduce a cero ranuras, se espera que una consulta continua inactiva que principalmente escucha datos entrantes consuma una cantidad mínima de ranuras, por lo general, alrededor de 1 ranura.
Uso compartido de ranuras inactivas
Las consultas continuas pueden usar el uso compartido de ranuras inactivas para compartir recursos de ranuras sin usar con otras reservas y tipos de trabajos.
- A
CONTINUOUSasignación de reserva aún se requiere para ejecutar una consulta continua y no puede depender únicamente de las ranuras inactivas de otras reservas. Por lo tanto, una asignación de reservaCONTINUOUSrequiere una configuración de ajuste de escala automático de ranuras distinta de cero o una configuración de referencia de ranuras 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 ajuste de escala automático no se pueden compartir como ranuras inactivas para otras reservas.
Precios
Las consultas continuas pueden usar el ajuste de escala fluido de BigQuery.
Las consultas continuas usan
los precios de procesamiento de la capacidad de BigQuery,
que se miden 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 usa el tipo de trabajo CONTINUOUS.
El uso de otros recursos de BigQuery, como la transferencia y el almacenamiento de datos, se cobra según las tarifas que se muestran en los precios de BigQuery.
El uso de otros servicios que reciben resultados de consultas continuas o a los que se llama durante el procesamiento continuo de consultas se cobra según las tarifas publicadas para esos servicios. Para obtener información sobre los precios de otros Google Cloud servicios que se usan en las consultas continuas, consulta los siguientes temas:
Estima los requisitos de capacidad de las ranuras
Debido a que cada carga de trabajo es diferente, a menudo no es posible realizar una estimación exacta de las ranuras para las consultas continuas por adelantado. La cantidad de ranuras que requieren tus consultas continuas depende de una combinación de varios factores:
- La cantidad de consultas continuas que se ejecutan de forma simultánea
- La complejidad de la instrucción de SQL
- El uso de funciones de procesamiento con estado, incluidas las duraciones de las ventanas, las
JOINs y las agregaciones - La frecuencia o velocidad de los datos entrantes
- La estructura y el tamaño de los datos que se transfieren
Conceptualmente, puedes estimar tu requisito total de ranuras como una función de tu carga de trabajo de consultas continuas:
Ranuras estimadas ≈ Cantidad de consultas continuas x ∑ (Frecuencia de datos x Complejidad de la consulta)
Debido a que el consumo real de ranuras depende en gran medida de tu carga de trabajo y patrones de datos únicos, el método más preciso para estimar el costo es supervisar un trabajo en ejecución. Puedes medir el uso máximo de ranuras de una ejecución de consulta continua aislada con las vistas INFORMATION_SCHEMA. Para obtener instrucciones detalladas y consultas de ejemplo
para hacer un seguimiento del uso de ranuras a lo largo del tiempo, consulta
Consulta información sobre el consumo de ranuras.
¿Qué sigue?
Intenta crear una consulta continua.