O AI.AGG do BigQuery resume milhões de linhas em uma query SQL. Conte as que ficam de fora em silêncio
O AI.AGG, em preview, faz um map-reduce de chamadas do Gemini sobre texto e imagens no BigQuery. Útil para logs e feedback, mas algumas linhas somem sem erro, então confira a completude.
Ouça este artigo · 4 min
Narração completa do artigo, gerada por IA.

Peça a um analista para ler 50.000 reclamações de clientes e dizer quais são os cinco principais temas, e você terá uma resposta em uma semana. Peça a um modelo, e você bate em outra parede: as reclamações não cabem na janela de contexto dele. A nova função do BigQuery do Google foi feita para essa parede.
AI.AGG, em preview, executa uma instrução em linguagem natural sobre milhões de linhas em uma única query SQL e retorna uma resposta agregada por grupo. “Resuma as principais causas de falha nestes logs, por serviço” vira um GROUP BY.
Como funciona
O Google trata a agregação semântica como um problema de map-reduce distribuído, com o Gemini em cada etapa:
- Validar linhas
- Lotes para caber no contexto
- Inferência em paralelo
- Sintetizar recursivamente
Ele aceita texto e imagens: pode agregar achados visuais em imagens no Cloud Storage sem movê-las. Funciona dentro da governança do BigQuery, incluindo o VPC Service Controls. Os usos sugeridos pelo Google incluem diagnosticar logs de sistema de alto volume e gerar listas de categorias que depois alimentam o AI.CLASSIFY, a função no nível da linha.
Os limites são a matéria
O post do Google é preciso sobre os limites, e vários importam mais do que parecem:
- Linhas podem desaparecer em silêncio. Se qualquer campo em um STRUCT passado para a função for NULL, a linha inteira é tratada como NULL e descartada. A orientação do Google é envolver campos anuláveis com IFNULL. Erros transitórios de lote também pulam as linhas rejeitadas em vez de fazer a query falhar.
- A escala tem tetos recomendados. Cerca de 20 milhões de linhas e 1.000 grupos por query, no máximo 10 MiB por linha, menos de dez imagens por linha e uma resposta final limitada a 10.000 tokens por grupo.
- Custa mais tokens do que os dados contêm. O batching recursivo faz o total de tokens enviados ao Gemini exceder a contagem de tokens dos dados de origem. Diferente do AI.CLASSIFY, que pode usar modelos pequenos destilados em CPUs, o AI.AGG usa modelos de pesos completos em cada etapa.
O primeiro ponto merece uma pausa. Em SQL comum, uma linha descartada é um bug que alguém encontra. Aqui, é comportamento projetado. Um resumo de “todas as reclamações deste trimestre” que excluiu em silêncio toda reclamação com o campo de região ausente não é um resumo de todas as reclamações. A resposta vai parecer completa de qualquer jeito.
Como usar com segurança
Conte o que entrou. Rode um COUNT(*) simples por grupo com os mesmos filtros e o mesmo tratamento de IFNULL, e compare com o que a agregação realmente cobriu. Se a função ou seu pipeline não conseguir informar as linhas processadas, monte essa checagem você mesmo antes de confiar na saída em um relatório.
Peça abstenção. A orientação de prompt do próprio Google diz para projetar estados de falha, retornando nulls em vez de adivinhar, e definir um contrato de saída explícito. Faça as duas coisas. Um agregado que diz “evidência insuficiente” é mais útil do que um parágrafo confiante construído sobre uma fração das linhas. É a propriedade de abstenção que listamos em a especificação de contexto do agente.
Estime antes de rodar. O Google aponta o AI.COUNT_TOKENS para estimativas de custo, filtros WHERE e LIMIT rígidos e cache de contexto para conjuntos de dados estáticos. Faça da estimativa uma etapa obrigatória para qualquer query acima de algumas centenas de milhares de linhas.
Mantenha para descoberta. O AI.AGG é excelente para encontrar temas que ninguém nomeou ainda. Quando um tema é nomeado, passe para a classificação no nível da linha, que pode ser contada, auditada e rodada com modelos mais baratos. Descoberta com a ferramenta cara, medição com a barata.