Introdução às consultas contínuas

As consultas contínuas do BigQuery são instruções SQL executadas continuamente para permitir a análise dos dados recebidos no BigQuery em tempo real. Você pode usar consultas contínuas para tarefas urgentes, como gerar insights imediatos, aplicar inferência de machine learning (ML) em tempo real e replicar dados para outras plataformas. Com esse recurso, é possível usar o BigQuery como um mecanismo de tratamento de dados orientado a eventos para a lógica de decisão nos aplicativos.

Destinos e fontes de dados compatíveis

É possível gravar ou exportar as linhas de saída produzidas por uma consulta contínua para os seguintes destinos:

As consultas contínuas podem processar dados que foram gravados em tabelas padrão do BigQuery ou tabelas gerenciadas do Apache Iceberg usando um dos seguintes métodos:

O diagrama a seguir mostra fluxos de trabalho comuns de consulta contínua:

Diagrama que ilustra os fluxos de trabalho comuns de consultas contínuas do BigQuery, incluindo ingestão de dados, processamento e exportação para destinos como o Bigtable e o Pub/Sub.

Casos de uso

Veja alguns casos de uso comuns em que convém usar consultas contínuas:

  • Serviços personalizados de interação com o cliente: use a IA generativa para criar mensagens personalizadas para cada interação com o cliente.
  • Detecção de anomalias: crie soluções que permitam realizar detecção de anomalias e ameaças em dados complexos em tempo real, para que você possa reagir a problemas mais rapidamente.
  • Pipelines personalizáveis baseados em eventos: use a integração de consulta contínua com o Pub/Sub para acionar aplicativos downstream com base nos dados recebidos.
  • Aprimoramento de dados e extração de entidades: use consultas contínuas para realizar aprimoramento e transformação de dados em tempo real usando funções SQL e modelos de ML.
  • ETL (extrair, transformar e carregar) reverso: execute ETL reverso em tempo real em outros sistemas de armazenamento mais adequados para veiculação de aplicativos de baixa latência. Por exemplo: analisar ou aprimorar dados de eventos gravados no BigQuery; e, em seguida, fazer streaming para o Bigtable, Spanner ou tabelas gerenciadas do Apache Iceberg para veiculação do aplicativo.
  • Acionamento de agentes autônomos: acione pipelines de dados agênticos em tempo real com base em eventos complexos detectados em streams de dados em tempo real. Para ver um exemplo, consulte o codelab Criar um agente de dados orientado por eventos com o BigQuery e o Kit de Desenvolvimento de Agente (ADK).
  • Monitoramento autônomo de agentes: desenvolva monitoramento e alertas automatizados em tempo real para interações agênticas em tempo real usando o plug-in de análise de agentes do BigQuery, que transmite todos os dados de trace do agente, uso de ferramentas e registros operacionais diretamente para o BigQuery para uma observabilidade profunda da sua força de trabalho de IA.

Funcionalidade compatível

As seguintes operações são aceitas em consultas contínuas:

Operações com estado compatíveis

Para solicitar suporte ou enviar feedback sobre esse recurso, envie um e-mail para bq-continuous-queries-feedback@google.com.

As operações com estado permitem que as consultas contínuas realizem análises complexas que exigem a retenção de informações em várias linhas ou intervalos de tempo. Enquanto as funções sem estado processam cada linha de forma independente, as operações com estado mantêm o estado dos dados ingeridos para oferecer suporte a funções como JOINs, agregações e agregações de janela. Esse recurso permite correlacionar eventos de diferentes streams ou calcular métricas ao longo do tempo, como uma média de 30 minutos, armazenando os dados necessários na memória enquanto a consulta é executada.

As consultas contínuas aceitam as seguintes operações com estado:

Autorização

Os tokens de acesso doGoogle Cloud que são usados quando jobs de consulta contínua têm um time to live (TTL) de dois dias quando são gerados por uma conta de usuário. Portanto, esses jobs param de ser executados após dois dias. Os tokens de acesso gerados pelas contas de serviço podem ser executados por mais tempo, mas ainda precisam aderir ao tempo de execução máximo da consulta. Para mais informações, consulte Executar uma consulta contínua usando uma conta de serviço.

Locais

Para uma lista de regiões com disponibilidade, consulte Locais de consulta contínua do BigQuery.

Limitações

As consultas contínuas estão sujeitas às seguintes limitações:

Limitações de reserva

  • Você precisa criar uma reserva da edição Enterprise ou Enterprise Plus com um tipo de atribuição CONTINUOUS para executar consultas contínuas. As consultas contínuas não aceitam o modelo de faturamento de computação on demand.
  • Quando você cria uma atribuição de reserva de CONTINUOUS, a reserva associada é limitada a no máximo 500 slots. Para solicitar um aumento desse limite, entre em contato com bq-continuous-queries-feedback@google.com.
  • Não é possível criar uma atribuição de reserva que usa um tipo de trabalho diferente na mesma reserva como uma atribuição de reserva de consulta contínua.
  • O BigQuery determina o número de consultas contínuas que podem ser executadas simultaneamente por projeto com base no tamanho configurado da atribuição de reserva que usa o tipo de serviço CONTINUOUS. Para aceitar novos jobs, o BigQuery exige um limite de 10 slots por job de consulta contínua. A consulta não consome necessariamente todos os 10 slots durante a execução normal. Esse limite garante que cada consulta contínua em execução mantenha capacidade de computação de referência suficiente para lidar com picos repentinos no volume de dados recebidos sem atrasos ou comprometimento do processamento de baixa latência.

    Para garantir que suas consultas sejam aceitas sem atingir os limites de simultaneidade, recomendamos o uso do escalonamento automático de slots. Com o escalonamento automático, o uso geral de slots será escalonado dinamicamente com base na demanda real de recursos. É possível configurar uma reserva de valor de referência menor e definir um limite máximo de escalonamento automático que cubra confortavelmente o limite de 10 slots por consulta para as consultas simultâneas esperadas.

  • Ao executar várias consultas contínuas usando a mesma reserva, jobs individuais podem não dividir os recursos disponíveis de maneira justa, já que são definidos pela imparcialidade do BigQuery.

Escalonamento automático de slots

As consultas contínuas podem usar o escalonamento automático de slots para escalonar dinamicamente a capacidade alocada para acomodar sua carga de trabalho. À medida que a carga de trabalho das consultas contínuas aumenta ou diminui, o BigQuery ajusta dinamicamente os slots.

Depois que uma consulta contínua começa a ser executada, ela escuta ativamente os dados recebidos, o que consome recursos de slot. Embora uma reserva com uma consulta contínua em execução não reduzir escala vertical para zero slots, uma consulta contínua inativa que está principalmente detectando dados recebidos deve consumir uma quantidade mínima de slots, normalmente cerca de 1 slot.

Compartilhamento de slots inativos

As consultas contínuas podem usar o compartilhamento de slots inativos para compartilhar recursos de slots não utilizados com outras reservas e tipos de serviço.

  • Uma atribuição de reserva de CONTINUOUS ainda é necessária para executar uma consulta contínua e não pode depender apenas de slots inativos de outras reservas. Portanto, uma atribuição de reserva CONTINUOUS requer um valor de referência de slot diferente de zero ou uma configuração de escalonamento automático de slot diferente de zero.
  • Somente slots de valor de referência ociosos ou slots confirmados de uma atribuição de reserva CONTINUOUS podem ser compartilhados. Os slots com escalonamento automático não podem ser compartilhados como slots inativos para outras reservas.

Preços

As consultas contínuas podem usar o escalonamento fluido do BigQuery.

As consultas contínuas usam Preços de computação de capacidade do BigQuery, que são medidos em slots. Para executar consultas contínuas, é preciso ter uma reserva que use a edição Enterprise ou Enterprise Plus e uma atribuição de reserva que usa o tipo de job CONTINUOUS.

O uso de outros recursos do BigQuery, como ingestão de dados e armazenamento, é cobrado conforme as taxas mostradas nos Preços do BigQuery.

O uso de outros serviços que recebem resultados de consulta contínua ou que são chamados durante o processamento de consultas é cobrado de acordo com as taxas publicadas para esses serviços. Para os preços de outros serviços do Google Cloud usados pelas consultas contínuas, consulte os seguintes tópicos:

Como estimar os requisitos de capacidade de slot

Como cada carga de trabalho é diferente, geralmente não é possível fazer uma estimativa exata de slots para consultas contínuas com antecedência. A quantidade de slots exigida pelas consultas contínuas depende de uma combinação de vários fatores:

  • O número de consultas contínuas em execução simultânea.
  • A complexidade da instrução SQL.
  • O uso de funções de processamento com estado, incluindo durações de janela, JOINs e agregações.
  • A taxa ou velocidade dos dados recebidos.
  • A estrutura e o tamanho dos dados que estão sendo ingeridos.

Conceitualmente, é possível estimar o requisito total de slots como uma função da carga de trabalho de consulta contínua:

Slots estimados ≈ Número de consultas contínuas x ∑ (Taxa de dados x Complexidade da consulta)

Como o consumo real de slots depende muito da sua carga de trabalho e dos padrões de dados, o método mais preciso para estimar o custo é monitorar um job em execução. É possível medir o pico de uso de slots de uma execução de consulta contínua isolada usando as visualizações INFORMATION_SCHEMA. Para instruções detalhadas e consultas de exemplo para acompanhar o uso de slots ao longo do tempo, consulte Ver informações de consumo de slots.

A seguir

Tente criar uma consulta contínua.