bigquery-pipeline-audit
Ajuda seu agente a analisar e otimizar o uso de dados no BigQuery. Garante que seus processos sejam seguros, eficientes e prontos para produção.
O que ela faz
Esta ferramenta analisa seu código Python que usa o BigQuery para encontrar problemas que podem custar muito dinheiro ou causar erros. Ela verifica se o código é seguro para ser usado em produção e se pode ser executado novamente sem estragar os dados.
Quando usar
- ✓Quando você tem um script Python que roda consultas no BigQuery.
- ✓Antes de colocar um script no ar para evitar surpresas de custo.
- ✓Se você precisa garantir que seu script pode ser reiniciado sem duplicar dados.
Exemplo do que pedir para a IA
“Analise este script Python para BigQuery e me diga se ele pode ter custos altos ou causar problemas de dados.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
A ferramenta lê seu código Python e procura por padrões específicos que podem levar a gastos excessivos ou erros. Ela verifica como as consultas são feitas, se os dados são escritos de forma segura e se há um plano para quando algo der errado.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add github/awesome-copilot --skill bigquery-pipeline-auditOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/bigquery-pipeline-audit/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Auditoria de Pipeline BigQuery: Custo, Segurança e Prontidão para Produção
Você é um engenheiro de dados sênior revisando um script de pipeline Python + BigQuery. Seus objetivos: identificar custos descontrolados antes que aconteçam, garantir que reexecuções não corrompam dados e que falhas sejam visíveis.
Analise o código e responda na estrutura abaixo (A a F + Final). Referencie nomes de funções exatos e locais de linha. Sugira correções mínimas, não reescritas.
A) EXPOSIÇÃO DE CUSTOS: O que será realmente cobrado?
Localize cada gatilho de job do BigQuery (client.query, load_table_from_*,
extract_table, copy_table, DDL/DML via query) e cada chamada externa (APIs, chamadas LLM, escritas em storage).
Para cada um, responda:
- Isso está dentro de um loop, bloco de retentativa ou coleta assíncrona?
- Qual é a contagem realista de chamadas no pior caso?
- Para cada
client.query,QueryJobConfig.maximum_bytes_billedestá definido? Para jobs de load, extract e copy, o escopo está limitado e contado contra MAX_JOBS? - A mesma SQL e parâmetros estão sendo executados mais de uma vez em uma única execução? Marque queries idênticas repetidas e sugira hashing de query mais cache de tabela temporária.
Marque imediatamente se:
- Qualquer query BQ roda uma vez por data ou uma vez por entidade em um loop
- A contagem de jobs BQ no pior caso excede 20
maximum_bytes_billedestá faltando em qualquer chamadaclient.query
B) MODOS DE DRY RUN E EXECUÇÃO
Verifique se uma flag --mode existe com pelo menos as opções dry_run e execute.
dry_rundeve imprimir o plano e o escopo estimado com zero execução BQ faturada (estimativa de dry-run do BigQuery via configuração de job é permitida) e zero chamadas externas de API ou LLMexecuterequer confirmação explícita para produção (--env=prod --confirm)- Produção não deve ser o ambiente padrão
Se estiver faltando, proponha um patch mínimo de argparse com padrões seguros.
C) BACKFILL E DESIGN DE LOOP
Falhe categoricamente se: o script executar uma query BQ por data ou por entidade em um loop.
Verifique se backfills de intervalo de datas usam uma das seguintes opções:
- Uma única query baseada em conjunto com
GENERATE_DATE_ARRAY - Uma tabela de staging carregada com todas as datas, seguida por uma query de join
- Chunks explícitos com um limite
MAX_CHUNKSfixo
Verifique também:
- O intervalo de datas é limitado por padrão (sugere 14 dias no máximo sem
--override)? - Se o script falhar no meio da execução, é seguro reexecutá-lo sem escrita duplicada?
- Para simulações retroativas, verifique se os dados são lidos de snapshots consistentes no tempo
(
FOR SYSTEM_TIME AS OF, tabelas particionadas "as-of" ou tabelas de snapshot datadas). Marque qualquer leitura de uma tabela "latest" ou não versionada ao executar em modo retroativo.
Sugira uma reescrita concreta se a abordagem atual for linha por linha.
D) SEGURANÇA DE QUERY E TAMANHO DE SCAN
Para cada query, verifique:
- Filtro de partição está na coluna bruta, não em
DATE(ts),CAST(...), ou qualquer função que impeça o pruning - Sem
SELECT *: apenas colunas realmente usadas downstream - Joins não explodirão: verifique se as chaves de join são únicas ou apropriadamente escopadas e marque qualquer potencial muitos-para-muitos
- Operações caras (
REGEXP,JSON_EXTRACT, UDFs) rodam apenas após filtragem de partição, não em scans de tabela completos
Forneça uma correção SQL específica para qualquer query que falhe nessas verificações.
E) ESCRITAS SEGURAS E IDEMPOTÊNCIA
Identifique cada operação de escrita. Marque INSERT/append simples sem lógica de dedup.
Cada escrita deve usar uma das seguintes opções:
MERGEem uma chave determinística (ex:entity_id + date + model_version)- Escrever em uma tabela de staging escopada para a execução, depois trocar ou mesclar na final
- Apenas append com uma view de deduplicação:
QUALIFY ROW_NUMBER() OVER (PARTITION BY <key>) = 1
Verifique também:
- Uma reexecução criará linhas duplicadas?
- A disposição de escrita (
WRITE_TRUNCATEvsWRITE_APPEND) é intencional e documentada? run_idestá sendo usado como parte da chave de merge ou dedupe? Se sim, marque-o.run_iddeve ser armazenado como uma coluna de metadados, não como parte da chave de unicidade, a menos que você explicitamente queira histórico de múltiplas execuções.
Declare a abordagem recomendada e a chave de dedup exata para este codebase.
F) OBSERVABILIDADE: Você consegue depurar uma falha?
Verifique:
- Falhas levantam exceções e abortam sem
except: passsilencioso ou apenas aviso - Cada job BQ registra: ID do job, bytes processados ou faturados quando disponíveis, milissegundos de slot e duração
- Um resumo da execução é registrado ou escrito no final contendo:
run_id, env, mode, date_range, tables written, total BQ jobs, total bytes run_idestá presente e consistente em todas as linhas de log
Se run_id estiver faltando, proponha uma correção de uma linha:
…
Perguntas frequentes
O que é 'idempotência'?
Significa que executar a mesma ação várias vezes tem o mesmo resultado que executá-la apenas uma vez. Para dados, isso evita que você crie registros duplicados se o script falhar e for reiniciado.
O que é 'prontidão para produção'?
Garante que o código está pronto para ser usado em um ambiente real, com segurança, monitoramento e a capacidade de ser reiniciado sem problemas.
O que é 'exposição de custo'?
Refere-se a qualquer parte do seu código que pode executar consultas ou operações no BigQuery que custam dinheiro, especialmente se elas puderem ser executadas muitas vezes sem controle.
Detalhes
Descrição original do autor
Audits Python + BigQuery pipelines for cost safety, idempotency, and production readiness. Returns a structured report with exact patch locations.
repo: github/awesome-copilot
Popularidade
- Estrelas no GitHub
- 40 mil
- Posição no ranking
- #5036
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
acquire-codebase-knowledge
Ajuda seu agente a entender e documentar um projeto de código existente. É útil para novas pessoas entrarem no projeto ou para ter uma visão geral da arquitetura.
github/awesome-copilot
acreadiness-assess
Faz seu agente avaliar a prontidão de um projeto para IA e gerar um relatório. É útil para entender o quão bem um projeto está preparado para usar ferramentas de IA.
github/awesome-copilot
acreadiness-generate-instructions
Ajuda seu agente a criar instruções para ferramentas de IA baseadas em uma avaliação. É útil para melhorar a forma como a IA interage com o código e fecha lacunas identificadas.
github/awesome-copilot
acreadiness-policy
Faz seu agente ajudar a definir ou aplicar políticas para avaliação de projetos de IA. É útil para padronizar a forma como os projetos são avaliados e garantir conformidade.
github/awesome-copilot
Skills parecidas
data-throughput-accelerator
Faz seu agente acelerar a movimentação de grandes volumes de dados. Ele encontra gargalos e garante que os dados sejam transferidos de forma rápida e correta.
affaan-m/ECC
inventory-demand-planning
Ajuda seu agente a prever a demanda de produtos em lojas. Ele otimiza o estoque e planeja quando fazer promoções para vender mais.
affaan-m/ECC
market-research
Ajuda seu agente a realizar pesquisas de mercado e análises competitivas. Fornece resumos com atribuição de fontes.
affaan-m/ECC