CommunityPesquisa e Análise de Dadosgithub.com

Depuração de Pipelines de Dados

Identifique sistematicamente a causa raiz de falhas em pipelines de dados e incidentes de dados — erros de job, dados incorretos ou ausentes, duplicatas e frescor incorreto — rastreando a linhagem upstream, isolando o estágio com falha, reconciliando com a origem e planejando uma correção segura e um backfill. Use quando um pipeline falhar, os números parecerem errados, dados estiverem ausentes ou duplicados, um painel estiver desatualizado ou uma parte interessada relatar uma discrepância nos dados.

O que é Depuração de Pipelines de Dados?

Esta skill capacita um agente de IA a depurar metodicamente incidentes de dados em pipelines de dados. O fluxo de trabalho começa definindo precisamente o sintoma (tabela, coluna, linhas e janela de tempo). Em seguida, o agente rastreia a linhagem upstream usando uma 'busca binária' pelo DAG para localizar o primeiro estágio onde os dados estão incorretos, em vez de ler linearmente cada etapa. Depois de isolar o estágio suspeito, a causa raiz é classificada (bug de código, dados de origem ruins/tardios, falha de execução ou duplicação não idempotente), e uma reconciliação por meio de consultas de contagem/soma confirma onde a divergência ocorre. A correção envolve reverter a causa raiz, planejar um backfill idempotente das janelas afetadas e adicionar uma verificação preventiva de qualidade de dados para evitar recorrência. A skill enfatiza evitar armadilhas comuns, como corrigir sintomas downstream, aplicar correções manuais e ignorar a reconciliação. Ela pode ser usada com qualquer sistema de pipeline (por exemplo, Airflow, dbt, Spark) e é projetada para complementar skills de depuração específicas de ferramentas.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Unknown-333/awesome-data-engineering-skills/tree/main/skills/debugging-data-pipelines

Installed? Explore more Pesquisa e Análise de Dados skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

O que Depuração de Pipelines de Dados faz?

Quando usar

  • Um job de pipeline falhou ou os dados de saída estão incorretos/ausentes/duplicados.
  • Um painel está desatualizado ou uma métrica não reconcilia com a origem.
  • Uma parte interessada relata uma discrepância e você deve encontrar a causa.
  • NÃO use para erros de execução específicos de ferramenta já cobertos por debugging-dbt-runs / debugging-airflow-pipelines (comece por lá, depois use esta skill para incidentes de correção de dados).

Fluxo de trabalho

- [ ] Defina o sintoma precisamente (qual tabela, coluna, linhas, janela de tempo)
- [ ] Rastreie a linhagem upstream para encontrar o primeiro estágio onde os dados estão incorretos
- [ ] Isole: é um bug de código, entrada ruim, dados atrasados ou uma falha de execução?
- [ ] Reconcilie o estágio suspeito contra sua origem (contagens/somas)
- [ ] Corrija a causa raiz, depois planeje um backfill idempotente das janelas afetadas
- [ ] Adicione uma verificação para que não possa ocorrer silenciosamente novamente
  1. Identifique o sintoma. "A receita para 2026-01-15 está ~30% baixa em fct_orders" é depurável; "os números parecem estranhos" não é. Obtenha a tabela, coluna, linhas e a janela.
  2. Rastreie a linhagem upstream. Caminhe da saída incorreta de volta pelos modelos/tarefas para encontrar o primeiro estágio onde os dados já estão errados. Faça uma busca binária no DAG em vez de ler cada estágio.
  3. Classifique a causa: alteração de código, dados de origem ruins/atrasados, uma execução com falha/parcial ou uma duplicata não idempotente.
  4. Reconcilie o estágio suspeito vs sua entrada (contagens de linhas, contagens de chaves, somas) para confirmar onde o delta aparece.
  5. Corrija + faça backfill das janelas afetadas idempotentemente (veja designing-backfills-and-replays).
  6. Evite recorrência com uma verificação de qualidade de dados direcionada.

Padrões

Busca binária de linhagem — verifique um estágio na metade do caminho para cima do DAG: se seus dados estiverem corretos, o bug está downstream; se estiverem errados, suba mais. Repita.

Reconcilie origem vs destino para a janela afetada:

-- As contagens/somas correspondem entre o estágio e sua entrada para a janela incorreta?
SELECT 'origem' AS camada, COUNT(*) n, SUM(amount) total
FROM staging.orders WHERE order_date = DATE '2026-01-15'
UNION ALL
SELECT 'destino', COUNT(*), SUM(amount)
FROM marts.fct_orders WHERE order_date = DATE '2026-01-15';

Uma lacuna na contagem → linhas descartadas/filtradas ou uma carga parcial com falha. Uma lacuna na soma com contagens iguais → um bug de transformação/lógica. Contagem de destino maior → duplicação (carga não idempotente).

Verificação de linha do tempo — correlacione a janela do incidente com deploys, alterações de esquema de origem e histórico de execuções; a maioria dos incidentes começa com uma alteração.

Armadilhas comuns

  • Corrigir sintomas downstream — corrigir o mart quando o bug está no staging faz com que ele se repita; corrija o primeiro estágio incorreto.
  • Correções manuais pontuais em dados de produção — não auditáveis e não repetíveis; corrija o código e execute novamente de forma idempotente.
  • Ler o DAG inteiro linearmente — em vez disso, faça busca binária de linhagem.
  • Pular a reconciliação — adivinhar onde os dados divergiram perde tempo; meça contagens/somas por estágio.
  • Nenhuma verificação preventiva após a correção — a mesma classe de bug retorna despercebida.

Individual skills in this repo

This repo contains 9 individual skills — each has its own dedicated page.

Unknown-333/authoring-airflow-dags

Write production-grade Apache Airflow DAGs using the TaskFlow API — idempotent tasks, correct scheduling and catchup, retries/SLAs, connections/variables, and avoiding top-level code. Use when creating or reviewing Airflow DAGs, scheduling pipelines, wiring task dependencies, configuring retries/backfills, or fixing non-idempotent tasks.

Unknown-333/building-dagster-assets

Build Dagster pipelines using software-defined assets — asset dependencies, partitions, resources and IO managers, asset checks, and schedules/sensors. Use when creating Dagster assets or jobs, modeling data as assets, adding partitions or backfills, wiring resources/IO managers, or migrating from task-based orchestration to assets.

Unknown-333/building-dbt-models

Build well-structured dbt models — staging/intermediate/marts layers, ref() and source(), materializations, and incremental models with the right strategy. Use when creating or refactoring dbt models, choosing table vs view vs incremental, structuring a dbt project, or writing incremental logic.

Unknown-333/building-feature-pipelines

Build ML feature pipelines and feature stores — point-in-time-correct joins to avoid label leakage, offline/online parity, feature freshness and backfills, and materialization with tools like Feast. Use when engineering features for ML, preventing train/serve skew or data leakage, building a feature store, or backfilling historical features for training.

Unknown-333/building-iceberg-tables

Design and operate Apache Iceberg tables — partitioning and hidden partitioning, partition/schema evolution, snapshots and time travel, compaction and small-file cleanup, and MERGE/upsert for lakehouse tables on Spark, Flink, Trino, or Snowflake. Use when creating or maintaining Iceberg tables, choosing partitioning, evolving schema/partitions, or fixing small-file and metadata bloat.

Unknown-333/building-ingestion-pipelines

Build batch and incremental data ingestion (extract-load) pipelines — full vs incremental extraction, change data capture (CDC), watermarks and high-water marks, API pagination and rate limits, and choosing managed EL tools (Fivetran, Airbyte) vs custom code. Use when ingesting data from databases, APIs, files, or SaaS into a warehouse/lake, or designing incremental extraction and CDC.

Unknown-333/building-kafka-consumers

Build reliable Apache Kafka consumers and producers — consumer groups and partition assignment, offset commit strategy, at-least-once vs exactly-once, idempotent/transactional producers, rebalancing, and dead-letter handling. Use when writing Kafka consumers/producers, configuring offset commits or consumer groups, tuning throughput, or handling rebalances and poison messages.

Unknown-333/designing-backfills-and-replays

Plan and run safe data backfills and replays — idempotent reprocessing of historical windows, partition-by-partition execution, isolating backfill compute from production, verifying results, and avoiding double-counting or changed history. Use when backfilling a new or fixed model, reprocessing after a bug, replaying events, or loading history for a new pipeline without corrupting existing data.

Unknown-333/designing-data-contracts

Define and enforce data contracts between producers and consumers — explicit schema, semantics, ownership, SLAs, and versioning — to prevent silent upstream changes from breaking downstream pipelines. Use when a producer schema change could break consumers, defining an interface between teams/services and the warehouse, or adding schema enforcement at ingestion.

Habilidades Relacionadas