mcpField
D
data-pipeline-engineer

data-pipeline-engineer

github.com/curiositech数据与数据库257204 次安装2 天前更新
代码仓库

关于 data-pipeline-engineer

data-pipeline-engineer 是面向数据工程师的数据管道设计与实施技能,涉及批处理、流处理、建模、编排和质量控制。它通过架构模式、反模式清单、参考示例和验证脚本支持管道开发与运维。

主要功能

  1. 01批处理与流处理架构指导
  2. 02数据建模与分层设计
  3. 03Airflow 等工作流编排
  4. 04各层数据质量检查
  5. 05管道验证脚本与参考示例

适用场景

  1. 01设计从原始数据到业务数据集的分层流程
  2. 02构建带重试和质量门禁的管道
  3. 03排查流处理或数据新鲜度问题

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/curiositech/some_claude_skills --skill data-pipeline-engineer

安装后在 Claude Code 中输入/data-pipeline-engineer确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

CHANGELOG.md
.claude-plugin/
plugin.json
references/
great-expectations-suite.json
airflow-dag.py
spark-streaming.py
dbt-project-structure.md
scripts/
validate-pipeline.sh

详细介绍

数据管道工程师

专注于 ETL/ELT 管道、流式架构、数据仓库和现代数据技术栈实现的资深数据工程师。

快速入门

  1. 识别数据源 - 数据格式、数据量、时效性要求
  2. 选择架构 - Medallion(Bronze/Silver/Gold)、Lambda 或 Kappa
  3. 设计分层 - staging → intermediate → marts(dbt 模式)
  4. 添加质量关卡 - 在每一层使用 Great Expectations 或 dbt 测试
  5. 编排 - 使用带传感器和重试机制的 Airflow DAG
  6. 监控 - 血缘、时效性、异常检测

核心能力

能力技术关键模式
批处理Spark、dbt、Databricks增量处理、分区、Delta/Iceberg
流处理Kafka、Flink、Spark Streaming水位线、精确一次、窗口化
编排Airflow、Dagster、PrefectDAG 设计、传感器、任务组
数据建模dbt、SQLKimball、Data Vault、SCD
数据质量Great Expectations、dbt 测试验证套件、时效性

架构模式

Medallion 架构(推荐)
BRONZE (Raw)     → Exact source copy, schema-on-read, partitioned by ingestion
      ↓ Cleaning, Deduplication
SILVER (Cleansed) → Validated, standardized, business logic applied
      ↓ Aggregation, Enrichment
GOLD (Business)   → Dimensional models, aggregates, ready for BI/ML
Lambda 与 Kappa
  • Lambda:批处理层 + 流处理层 → 合并后的服务层(复杂但完整)
  • Kappa:仅流处理并支持重放 → 更简单,但需要稳健的流处理能力

参考示例

完整实现示例位于 ./references/:

文件说明
dbt-project-structure.md包含 staging、intermediate、marts 的完整 dbt 目录结构
airflow-dag.py包含传感器、任务组和质量检查的生产级 DAG
spark-streaming.py带窗口化处理的 Kafka 到 Delta 处理器
great-expectations-suite.json全面的数据质量预期套件

反模式(10 个关键错误)

1. 全表刷新

症状:每次运行都截断并重建整张表
修复:使用带 is_incremental() 的增量模型,按日期分区

2. 与源架构紧密耦合

症状:上游添加或删除列时,管道就会中断
修复:明确源数据契约,在 staging 中仅选择所需列

3. 单体 DAG

症状:一个包含 200 个任务、运行 8 小时的 DAG
修复:按领域拆分 DAG,使用 ExternalTaskSensor 管理依赖关系

4. 缺少数据质量关卡

症状:检测到问题之前,错误数据已进入生产环境
修复:在每一层使用 Great Expectations 或 dbt 测试,失败时阻止流程继续

5. 归档前先处理

症状:转换原始数据时未保留原始数据
修复:始终先将原始数据写入 Bronze 层,确保转换可复现

6. 在查询中硬编码日期

症状:需要手动更新日期筛选条件
修复:使用 Airflow 模板(例如 ds 变量)或动态日期函数

7. 流处理中缺少水位线

症状:状态无限增长,长时间运行的作业发生内存溢出
修复:添加 withWatermark() 以处理迟到数据

8. 缺少重试和退避策略

症状:瞬时故障导致 DAG 运行失败
修复:设置 retries=3、retry_exponential_backoff=True 和 max_retry_delay

9. 未记录数据血缘

症状:无人知晓数据来源或使用者
修复:使用 dbt 文档、集成数据目录并记录列级血缘

10. 仅在生产环境中测试

症状:问题由利益相关者而非工程师发现
修复:使用 dbt --target dev、样例数据集,并为模型配置 CI/CD

质量检查清单

流水线设计:

  • 尽可能采用增量处理
  • 转换具有幂等性(可安全地重复运行)
  • 定义并记录分区策略
  • 记录回填流程

数据质量:

  • 在 Bronze 层进行测试(模式、空值、范围)
  • 在 Silver 层进行测试(业务规则、引用完整性)
  • 在 Gold 层进行测试(聚合检查、趋势监控)
  • 对数据量和分布进行异常检测

编排:

  • 配置重试和告警
  • 定义并监控 SLA
  • 跨 DAG 依赖使用传感器
  • 使用 max_active_runs 防止并行冲突

运维:

  • 记录数据血缘
  • 为常见故障编写运行手册
  • 创建用于监控流水线健康状况的仪表板
  • 明确值班流程

验证脚本

运行 ./scripts/validate-pipeline.sh 以检查:

  • dbt 项目结构和规范
  • Airflow DAG 最佳实践
  • Spark 作业配置
  • 数据质量配置

外部资源

评论

支持 Markdown