Depuración de Tuberías de Datos

Identifique sistemáticamente las causas raíz de fallos en tuberías de datos e incidentes de datos (errores de trabajos, datos incorrectos o faltantes, duplicados y problemas de frescura) rastreando el linaje ascendente, aislando la etapa fallida, conciliando con la fuente y planificando una corrección segura y una recarga histórica. Úselo cuando una tubería falle, los números parezcan incorrectos, falten datos o estén duplicados, un panel esté desactualizado o una parte interesada reporte una discrepancia.

¿Qué es Depuración de Tuberías de Datos?

Esta habilidad está diseñada para ayudar a agentes de IA o desarrolladores a diagnosticar y resolver sistemáticamente fallos en tuberías de datos, como trabajos fallidos, datos incorrectos, faltantes, duplicados o problemas de actualización. Proporciona un flujo de trabajo estructurado que comienza definiendo el síntoma exacto, luego rastrea el linaje ascendente mediante una búsqueda binaria en el DAG para encontrar la primera etapa donde los datos son incorrectos, clasifica la causa (error de código, datos de entrada defectuosos, datos tardíos o fallo de ejecución), concilia la etapa sospechosa con su fuente usando consultas SQL de recuento y suma, y finalmente planifica una corrección y una recarga histórica idempotente, además de añadir una comprobación de calidad de datos para evitar recurrencias. Es compatible con cualquier plataforma que maneje tuberías de datos y no depende de herramientas específicas. Su utilidad radica en evitar parches superficiales, ahorrar tiempo al no leer linealmente todo el DAG y garantizar que los arreglos sean auditables y reproducibles.

Compatible con~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 Investigación y análisis de datos skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

¿Qué hace Depuración de Tuberías de Datos?

Cuándo usar

  • Un trabajo de tubería falló, o los datos de salida son incorrectos/faltan/están duplicados.
  • Un panel está desactualizado o una métrica no coincide con la fuente.
  • Una parte interesada reporta una discrepancia y debes encontrar la causa.
  • NO usar para errores específicos de herramientas que ya cubren debugging-dbt-runs / debugging-airflow-pipelines (comienza allí, luego usa esto para incidentes de corrección de datos).

Flujo de trabajo

- [ ] Define el síntoma con precisión (qué tabla, columna, filas, ventana de tiempo)
- [ ] Rastrea el linaje ascendente para encontrar la primera etapa donde los datos son incorrectos
- [ ] Aísla: ¿es un error de código, datos de entrada incorrectos, datos tardíos o un fallo de ejecución?
- [ ] Concilia la etapa sospechosa contra su fuente (recuentos/sumas)
- [ ] Corrige la causa raíz, luego planifica una recarga histórica idempotente de las ventanas afectadas
- [ ] Agrega una comprobación para que no pueda repetirse en silencio
  1. Fija el síntoma. "Los ingresos para 2026-01-15 son ~30% bajos en fct_orders" es depurable; "los números se ven mal" no lo es. Obtén la tabla, columna, filas y ventana.
  2. Rastrea el linaje ascendente. Camina desde la salida incorrecta hacia atrás a través de modelos/ tareas para encontrar la primera etapa donde los datos ya son incorrectos. Realiza una búsqueda binaria en el DAG en lugar de leer cada etapa.
  3. Clasifica la causa: cambio de código, datos fuente incorrectos/tardíos, una ejecución fallida/parcial o un duplicado no idempotente.
  4. Concilia la etapa sospechosa vs su entrada (recuentos de filas, recuentos de claves, sumas) para confirmar dónde aparece la diferencia.
  5. Corrige + recarga históricamente las ventanas afectadas de forma idempotente (consulta designing-backfills-and-replays).
  6. Prevén la recurrencia con una comprobación de calidad de datos dirigida.

Patrones

Búsqueda binaria de linaje — verifica una etapa a mitad del DAG: si sus datos son correctos, el error está aguas abajo; si son incorrectos, sube más. Repite.

Concilia fuente vs destino para la ventana afectada:

-- ¿Coinciden los recuentos/sumas entre la etapa y su entrada para la ventana incorrecta?
SELECT 'source' AS layer, COUNT(*) n, SUM(amount) total
FROM staging.orders WHERE order_date = DATE '2026-01-15'
UNION ALL
SELECT 'target', COUNT(*), SUM(amount)
FROM marts.fct_orders WHERE order_date = DATE '2026-01-15';

Una brecha de recuento → filas eliminadas/filtradas o una carga parcial fallida. Una brecha de suma con recuentos iguales → un error de transformación/lógica. Un recuento de destino más alto → duplicación (carga no idempotente).

Verificación de línea de tiempo — correlaciona la ventana del incidente con despliegues, cambios de esquema de la fuente e historial de ejecuciones; la mayoría de los incidentes comienzan con un cambio.

Errores comunes

  • Corregir síntomas aguas abajo — parchear el mart cuando el error está en staging hace que se repita; corrige la primera etapa incorrecta.
  • Correcciones manuales únicas a datos de producción — no auditables e irrepetibles; corrige el código y vuelve a ejecutar de forma idempotente.
  • Leer todo el DAG de forma lineal — en su lugar, realiza una búsqueda binaria del linaje.
  • Saltarse la conciliación — adivinar dónde divergieron los datos pierde tiempo; mide recuentos/sumas por etapa.
  • Sin comprobación preventiva después de la corrección — la misma clase de error regresa sin ser vista.

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.

Skills relacionados