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:

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:

Diagrama que ilustra los flujos de trabajo comunes de las consultas continuas de BigQuery, incluida la transferencia de datos, el procesamiento y la exportación de datos a destinos como Bigtable y Pub/Sub.

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:

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:

Limitaciones de las reservas

  • Debes crear una reserva de la edición Enterprise o Enterprise Plus edition reservation con un CONTINUOUS tipo 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 CONTINUOUS asignació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 CONTINUOUS asignació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 reserva CONTINUOUS requiere 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.