Introdução às consultas contínuas
Neste documento, descreveremos as consultas contínuas do BigQuery.
As consultas contínuas do BigQuery são instruções SQL executadas continuamente. As consultas contínuas permitem analisar dados recebidos no BigQuery em tempo real. É possível inserir as linhas de saída produzidas por uma consulta contínua em uma tabela do BigQuery ou exportá-las para o Pub/Sub ou o Bigtable. As consultas contínuas podem processar dados que foram escritos em tabelas padrão do BigQuery usando um dos seguintes métodos:
- A API BigQuery Storage Write
- O método
tabledata.insertAll
- Carregamento em lote
- A instrução DML
INSERT
Você pode usar consultas contínuas para realizar tarefas urgentes, como criar insights e agir imediatamente com base neles aplicando a inferência de machine learning (ML) em tempo real e a replicação de dados em outras plataformas. Dessa forma, você pode usar o BigQuery como um dispositivo de tratamento de dados orientado a eventos para a lógica de decisão do aplicativo.
O diagrama a seguir mostra fluxos de trabalho comuns de consulta contínua:
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 para veiculação do aplicativo.
Operações suportadas
As seguintes operações são aceitas em consultas contínuas:
- Execução de
instruções
INSERT
para gravar dados a partir de uma consulta contínua em uma tabela do BigQuery. Execução de instruções
EXPORT DATA
para publicar a saída de consultas contínuas em tópicos do Pub/Sub. Para mais informações, consulte Exportar dados para o Pub/Sub.A partir de um tópico do Pub/Sub, é possível usar os dados com outros serviços, como análise de streaming usando o Dataflow, ou usando os dados em um fluxo de trabalho de integração de aplicativos.
Execução de instruções
EXPORT DATA
para exportar dados do BigQuery para tabelas Bigtable. Para mais informações, consulte Exportar dados para o Bigtable.Chamando as seguintes funções de IA generativa:
Essas funções exigem que você tenha um modelo remoto de ML do BigQuery em um modelo da Vertex AI.
Chamar as seguintes funções de IA:
Essas funções exigem que você tenha um modelo remoto de ML do BigQuery em uma API Cloud AI.
Normalizar dados numéricos usando a função
ML.NORMALIZER
.Usar funções do GoogleSQL sem estado, por exemplo, funções de conversão. Em funções sem estado, cada linha é processada independentemente de outras linhas na tabela.
Usar a função
APPENDS
do histórico de alterações para iniciar o processamento de consulta contínua de um de um momento específico.
Autorização
Para executar consultas contínuas de longa duração, use uma conta de serviço em vez de uma conta de usuário.
Os tokens de acesso do Google Cloud que são usados quando jobs de consulta contínua têm um time to live (TTL, na sigla em inglês) 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 não são limitadas por um TTL. Portanto, os jobs de consulta contínua executados por uma conta de serviço são executados até serem explicitamente cancelados. Para mais informações, consulte Executar uma consulta contínua usando uma conta de serviço.
Locais
As consultas contínuas são compatíveis nos locais a seguir.
US
EU
asia-northeast1
asia-south1
europe-west1
europe-west2
europe-west4
us-central1
us-east1
us-east4
us-west1
Limitações
As consultas contínuas estão sujeitas às seguintes limitações:
- As consultas contínuas do BigQuery não mantêm o estado
de dados ingeridos. Operações comuns que dependem do estado, como
JOINs
, funções de agregação e funções analíticas em janelas não são aceitas no momento. Não é possível usar os seguintes recursos de SQL em uma consulta contínua:
- funções escalares não determinísticas, por exemplo, a
função
CURRENT_DATE
; - operações
JOIN
; - Funções de agregação
- Funções de agregação aproximada
As seguintes cláusulas de consulta:
Os seguintes operadores de consulta:
Operadores de conjunto de consulta
funções do BigQuery ML que não sejam as listadas em Operações compatíveis
Instruções de linguagem de definição de dados (DDL, na sigla em inglês)
Instruções de linguagem de manipulação de dados (DML, na sigla em inglês) exceto
INSERT
.Instruções de linguagem de controle de dados (DCL, na sigla em inglês)
instruções
EXPORT DATA
que não segmentam o Bigtable ou Pub/Sub
- funções escalares não determinísticas, por exemplo, a
função
As consultas contínuas não aceitam tabelas curingas como fonte de dados.
As consultas contínuas não aceitam tabelas externas como fonte de dados.
As consultas contínuas não aceitam estes recursos de segurança do BigQuery:
Ao exportar dados para o Bigtable, só é possível segmentar Instâncias do Bigtable que se enquadram no mesmo limite regional do Google Cloud como o conjuntos de dados do BigQuery que contém a tabela que você está consultando. Para mais informações, consulte Considerações de localização. Esta restrição não se aplica à exportação de dados para o Pub/Sub porque o Pub/Sub é um recurso global.
Não é possível executar uma consulta contínua em uma tela de dados.
Não é possível modificar o SQL usado em uma consulta contínua enquanto o job da consulta contínua está em execução. Para mais informações, consulte Modificar o SQL de uma consulta contínua.
Se o job de consulta contínua ficar atrasado por mais de sete dias, será necessário cancelar e iniciar um novo job de consulta contínua. É possível executar a consulta novamente e usar a função
APPENDS
do histórico de alterações para retomar o processamento a partir do momento em que você interrompeu o job de consulta contínua anterior. Para mais informações, consulte Iniciar uma consulta contínua de um momento específico.
Limitações de reserva
- Você precisa criar reservas da edição Enterprise ou da edição Enterprise Plus 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 para uma consulta contínua, a reserva associada é limitada a 500 slots ou menos e não pode ser configurada para usar escalonamento automático.
- Uma atribuição de reserva de consulta contínua não compartilha slots inativos, mesmo se a reserva estiver configurado para isso.
- 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.
- Não é possível configurar a simultaneidade de consultas contínuas. O BigQuery
determina automaticamente o número de consultas contínuas que podem ser executadas
simultaneamente, com base nas atribuições de reserva disponíveis que usam o tipo de job
CONTINUOUS
. - 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.
Preços
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:
A seguir
Tente criar uma consulta contínua.