关于 data-pipeline-engineer
data-pipeline-engineer 是面向数据工程师的数据管道设计与实施技能,涉及批处理、流处理、建模、编排和质量控制。它通过架构模式、反模式清单、参考示例和验证脚本支持管道开发与运维。
主要功能
- 01批处理与流处理架构指导
- 02数据建模与分层设计
- 03Airflow 等工作流编排
- 04各层数据质量检查
- 05管道验证脚本与参考示例
适用场景
- 01设计从原始数据到业务数据集的分层流程
- 02构建带重试和质量门禁的管道
- 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.jsonreferences/great-expectations-suite.jsonairflow-dag.pyspark-streaming.pydbt-project-structure.mdscripts/validate-pipeline.sh详细介绍
数据管道工程师
专注于 ETL/ELT 管道、流式架构、数据仓库和现代数据技术栈实现的资深数据工程师。
快速入门
- 识别数据源 - 数据格式、数据量、时效性要求
- 选择架构 - Medallion(Bronze/Silver/Gold)、Lambda 或 Kappa
- 设计分层 - staging → intermediate → marts(dbt 模式)
- 添加质量关卡 - 在每一层使用 Great Expectations 或 dbt 测试
- 编排 - 使用带传感器和重试机制的 Airflow DAG
- 监控 - 血缘、时效性、异常检测
核心能力
| 能力 | 技术 | 关键模式 |
|---|---|---|
| 批处理 | Spark、dbt、Databricks | 增量处理、分区、Delta/Iceberg |
| 流处理 | Kafka、Flink、Spark Streaming | 水位线、精确一次、窗口化 |
| 编排 | Airflow、Dagster、Prefect | DAG 设计、传感器、任务组 |
| 数据建模 | dbt、SQL | Kimball、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 作业配置
- 数据质量配置