Transformando Alertas do BigQuery em Insights Inteligentes com IA
Todo mundo tem aquelas tarefas que ficam pairando, né? Para mim, era manter o pulso firme nas novidades do BigQuery. Queria saber o que rolava de novo e por que era relevante, sem ter que ficar de olho no feed oficial e gastar tempo precioso pesquisando. A ideia de construir uma automação completa do zero parecia demais, até que um dia decidi que era hora de resolver isso. Nasceu assim meu primeiro projeto de ‘código vibes’ de ponta a ponta!

A ideia já estava na cabeça: um jeito de ler o feed, um registro no BigQuery para não perder o que já foi visto, uma chamada para o Gemini e o alerta no Google Chat via webhook. Em vez de encarar uma tela em branco, fui direto no Gemini e descrevi a lógica. A velocidade com que tudo se encaixou foi impressionante. Trabalhando com o Gemini, ajustando os comandos e o código, tive uma automação funcional em poucas horas. É o exemplo perfeito de transformar um projeto de ‘um dia’ em uma vitória de ‘hoje à tarde’.
Neste guia, vou te mostrar o passo a passo dessa solução. É um pipeline que fica de olho em um feed RSS, usa o BigQuery para controlar as novidades já processadas, aciona a API Gemini no Vertex para gerar sugestões práticas de uso e envia tudo para o Google Chat. Tudo isso orquestrado por um notebook programado no BigQuery Studio.
Embora o foco seja nas novidades do BigQuery, você pode adaptar esse template para monitorar qualquer outro feed. Falaremos mais sobre isso no final!
O que você vai precisar
- Uma conta do Google Workspace. A funcionalidade de adicionar webhooks em espaços do Google Chat é exclusiva do Workspace, não disponível para contas Gmail comuns.
- Um projeto no Google Cloud com faturamento ativado.
- APIs do BigQuery, Vertex AI e Secret Manager habilitadas no seu projeto Google Cloud.
- Permissões adequadas na sua conta ou um service account. Para este guia, assumimos credenciais com os papéis de BigQuery Admin, Vertex AI User e Secret Manager Admin.
Parte 1: Preparando o Canal de Comunicação no Google Chat
Primeiro, precisamos definir onde as notificações vão aparecer. Vamos criar um espaço no Google Chat e gerar o link do webhook.
- Acesse chat.google.com.
- Ao lado de “Espaços”, clique nos três pontinhos e escolha “Criar um espaço”.

Criando um novo espaço no chat
- Dê um nome ao seu espaço, como “Novidades BigQuery”, e uma descrição.
- Depois de criado, clique no nome do espaço no topo e selecione “Apps e integrações”.

Encontrando o menu Apps e Integrações
- Clique em “Adicionar Webhooks”.
- Dê um nome ao webhook (ex: “Notificador BQ”) e, se quiser, um avatar.
- Clique em “Salvar”. Uma janela aparecerá com o URL do webhook. Copie este URL e guarde em um local seguro para o próximo passo.
Mais detalhes sobre webhooks estão na documentação do Google Chat.
Parte 2: Protegendo seu Webhook com Secret Manager
O ideal é nunca colar URLs ou chaves sensíveis diretamente no código. Vamos guardar nosso novo URL do webhook de forma segura no Secret Manager.
- No Google Cloud Console, confira se o seu projeto está selecionado no topo da tela.

Selecionando seu projeto Google Cloud no console
- Habilite a API Secret Manager clicando aqui.
- Navegue até o Secret Manager procurando-o na barra de busca no topo do Cloud Console.

Navegando até o Secret Manager no console
- Clique em “+ Criar Secret”.
- Dê um nome ao secret. O código do notebook (próximo passo) espera o nome
chat-webhook-url, então é melhor usar esse. - No campo “Valor do secret”, cole o URL do webhook do Google Chat que você copiou.

Criando um novo secret no Secret Manager
- Deixe as outras configurações como padrão e clique em “Criar Secret”.
Parte 3: O Notebook de Automação
Aqui é onde a mágica acontece. Usaremos um notebook do BigQuery Studio para executar todos os passos como código Python. Este notebook fará toda a lógica: buscar, filtrar, enriquecer e enviar.
O primeiro passo é carregar o notebook no seu ambiente do BigQuery Studio:
- Clique neste link para abrir uma nova janela no console Google Cloud com uma prévia do notebook.
- Clique em “Upload” para adicionar o notebook ao seu espaço de trabalho no BigQuery Studio.

Fazendo upload de um notebook no BigQuery Studio
- Assim que o notebook carregar, clique em “Conectar” no canto superior direito para se conectar a um runtime.

O botão de conectar em notebooks do BigQuery Studio
Você pode conferir o código completo do notebook no GitHub também.
Aqui está um resumo do que o código faz (se não se importar com os detalhes, pule para a Parte 4):
A. Configuração inicial
As primeiras células instalam as bibliotecas Python necessárias e as importam. Em seguida, definem variáveis globais para o seu projeto, o nome do secret e o dataset e a tabela do BigQuery que usaremos para registrar tudo.
B. Criando a tabela de registro
Para evitar enviar notificações duplicadas, criamos uma tabela no BigQuery para registrar os recursos já processados. O notebook executa uma query para criar esta tabela, que inclui um feature_id (um hash único do recurso baseado na sua descrição) e a gemini_suggestion.
C. As funções essenciais
get_secret(): Uma função auxiliar para buscar o valor dechat-webhook-urldo Secret Manager.
def get_secret(secret_id, project_id, version_id="latest"):
get_recent_release_notes(): Esta função busca o feed de lançamentos do BigQuery. Ela analisa o conteúdo XML e HTML para encontrar tags específicas como, garantindo que apenas anúncios de recursos individuais sejam processados, e não outras notas de lançamento como correções de bugs.Feature
def get_recent_release_notes(days=1):
get_processed_ids_from_bq(): Faz uma consulta na nossa tabela de registro para obter uma lista de todos osfeature_idsque já foram processados.
def get_processed_ids_from_bq(project_id, dataset_id, table_id):
generate_use_cases(): Pega a descrição do recurso e envia para o Gemini com um prompt detalhado (que você pode customizar!) pedindo para ele agir como um assistente de IA e fornecer sugestões de “Onde Saber Mais” e “Como Investigar”, formatadas em HTML simples para o Google Chat.
def generate_use_cases(release_note):
send_to_google_chat(): Esta função constrói um Card do Google Chat bem elaborado, incluindo um cabeçalho, a descrição do recurso, as sugestões formatadas do Gemini e um botão “Ver Nota de Lançamento”.
def send_to_google_chat(feature_description, gemini_suggestion, published_date, link_url):
save_result_to_bq(): Após um recurso ser processado com sucesso e enviado ao Chat, esta função salva seufeature_ide outros metadados na nossa tabela de registro do BigQuery para evitar que ele seja processado e enviado novamente.
def save_result_to_bq(project_id, dataset_id, table_id, feature_data):
main(): A função principal que orquestra todo o fluxo:- Busca os IDs processados do BigQuery.
- Busca os recursos recentes do feed.
- Filtra quaisquer recursos que já estejam em nosso log.
- Para cada recurso novo, gera casos de uso com o Gemini.
- Em seguida, envia o card formatado para o Google Chat.
- Finalmente, registra o novo recurso como “processado” no BigQuery.
def main():
E sim! O Gemini escreveu 100% deste código! (com algumas idas e vindas, pedindo para refinar coisas e enviando algumas mensagens de erro para ajudá-lo a fazer ajustes)
Parte 4: Testando e Agendando o Notebook
O último passo é testar o notebook e depois configurá-lo para rodar automaticamente, para que você nunca mais perca uma atualização.
- No notebook, execute todas as células manualmente uma vez para garantir que tudo está funcionando corretamente. Você deverá ver notificações aparecendo no seu espaço do Google Chat para quaisquer notas de lançamento do BigQuery dos últimos 7 dias (este é o período de busca padrão definido no notebook).

Como executar uma célula manualmente em notebooks do BigQuery Studio
- Assim que confirmar que está funcionando, clique no botão Agendar no topo da interface do notebook.

Onde encontrar o botão Agendar no BigQuery Studio notebooks
- Dê um nome para o agendamento, como
bigquery_releases_to_chat. - Escolha executar com suas credenciais de usuário (ou um service account com os papéis Secret Accessor, BigQuery Admin e Vertex AI User).
- Em “Cloud Storage bucket”, clique em Browse e depois no ícone “Criar novo bucket”, fornecendo um nome de bucket único, como
scheduled-notebooks-[nome-do-projeto]. - Defina a Frequência. Você pode escolher “Diária” ou usar uma programação cron “Personalizada” (ex:
0 5,7,9,11,13,15,17 * * *, que é o que usei para rodar a cada duas horas entre 5h e 17h). - Defina seu Fuso horário desejado.
- Clique em Criar Schedule.
Pronto! Sua automação está no ar e postará novos lançamentos de recursos do BigQuery, enriquecidos com IA, diretamente no seu espaço de chat.
Como adaptar este demo para o seu caso de uso
Este pipeline pode servir como um template. Veja como customizá-lo:
- Monitorar outra fonte de dados: Mude o
feed_urlna funçãoget_recent_release_notespara qualquer feed. Você precisará pedir ao Gemini para ajustar a lógica de parsing nessa função para que ela corresponda à estrutura do seu novo feed. - Alterar a “Inteligência”: O verdadeiro poder está no prompt. Você pode editar a função
generate_use_casespara pedir ao Gemini qualquer coisa. Em vez de “sugestões de onboarding”, você poderia pedir para ele:- “Escreva um guia ‘Primeiros Passos’ em 3 etapas para um iniciante.”
- “Gere um exemplo de código SQL ou Python que utilize este novo recurso.”
- “Identifique os principais problemas que este recurso resolve para os clientes.”
- “Traduza esta atualização para o espanhol.”
- Mudar o destino do chat: Não usa Google Chat? Você pode seguir o mesmo padrão para outros serviços como Slack, Discord e outros. Novamente, peça ajuda ao Gemini para adaptar o código!
chat_bubble Comentários (1)
Simples e efetivo!!
Deixe seu comentário