mcpField
D
data-engineer

data-engineer

github.com/404kidwiz数据与数据库101 次安装
代码仓库

关于 data-engineer

Data Engineer 是用于规划和实施数据管道、存储及处理工作流的技能,面向数据工程团队。内容涵盖批处理与流处理架构、数据质量、治理、可靠性和成本考量。

主要功能

  1. 01ETL/ELT 管道设计
  2. 02批处理与流处理方案
  3. 03数据湖和数据仓库规划
  4. 04数据质量与治理实践
  5. 05可靠性和成本优化
  6. 06系统迁移规划

适用场景

  1. 01设计从数据源到消费层的管道
  2. 02为流程加入错误处理和质量检查
  3. 03为分析工作负载选择存储方案
  4. 04规划实时流处理

安装

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

$npx skills add https://github.com/404kidwiz/claude-supercode-skills --skill data-engineer

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

包含的文件

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

EXAMPLES.md
REFERENCE.md
scripts/
run_etl_pipeline.py

详细介绍

数据工程师

目的

提供专业的数据工程能力,用于构建可扩展的数据管道、ETL/ELT 工作流、数据湖和数据仓库。专注于分布式数据处理、流处理、数据质量和现代数据栈技术(Airflow、dbt、Spark、Kafka),并着重保障可靠性和优化成本。

适用场景

  • 设计从数据源到消费层的端到端数据管道
  • 实现包含错误处理和数据质量检查的 ETL/ELT 工作流
  • 构建数据湖或数据仓库,并优化存储和查询
  • 设置实时流处理(Kafka、Flink、Kinesis)
  • 优化数据基础设施成本(存储分层、计算效率)
  • 实施数据治理与合规措施(GDPR、数据血缘)
  • 将旧版数据系统迁移到现代数据平台

快速入门

在以下情况调用此技能:

  • 设计从数据源到消费层的端到端数据管道
  • 实现包含错误处理和数据质量检查的 ETL/ELT 工作流
  • 构建数据湖或数据仓库,并优化存储和查询
  • 设置实时流处理(Kafka、Flink、Kinesis)
  • 优化数据基础设施成本(存储分层、计算效率)
  • 实施数据治理与合规措施(GDPR、数据血缘)

以下情况请勿调用:

  • 只需优化 SQL 查询(改用 database-optimizer)
  • 开发机器学习模型(改用 ml-engineer 或 data-scientist)
  • 进行简单的数据分析或可视化(改用 data-analyst)
  • 执行数据库管理任务(改用 database-administrator)
  • 集成 API,但不进行数据转换(改用 backend-developer)

决策框架

管道架构选择
├─ Batch Processing?
│   ├─ Daily/hourly schedules → Airflow + dbt
│   │   Pros: Mature ecosystem, SQL-based transforms
│   │   Cost: Low-medium
│   │
│   ├─ Large-scale (TB+) → Spark (EMR/Databricks)
│   │   Pros: Distributed processing, handles scale
│   │   Cost: Medium-high (compute-intensive)
│   │
│   └─ Simple transforms → dbt Cloud or Fivetran
│       Pros: Managed, low maintenance
│       Cost: Medium (SaaS pricing)
│
├─ Stream Processing?
│   ├─ Event streaming → Kafka + Flink
│   │   Pros: Low latency, exactly-once semantics
│   │   Cost: High (always-on infrastructure)
│   │
│   ├─ AWS native → Kinesis + Lambda
│   │   Pros: Serverless, auto-scaling
│   │   Cost: Variable (pay per use)
│   │
│   └─ Simple CDC → Debezium + Kafka Connect
│       Pros: Database change capture
│       Cost: Medium
│
└─ Hybrid (Batch + Stream)?
    └─ Lambda Architecture or Kappa Architecture
        Lambda: Separate batch/speed layers
        Kappa: Single stream-first approach
数据存储选择
用例技术优点缺点
结构化分析Snowflake/BigQuerySQL、查询速度快大规模使用时成本高
半结构化数据Delta Lake/IcebergACID、架构演进复杂
原始存储S3/GCS便宜、持久无查询引擎
实时数据Redis/DynamoDB延迟低分析能力有限
时间序列数据TimescaleDB/InfluxDB针对时间数据进行了优化适用场景特定
ETL 与 ELT 的选择
因素ETL(先转换)ELT(先加载)
数据量小到中等大(TB+)
转换复杂,加载前完成基于 SQL,在仓库内完成
延迟较高较低
成本加载前计算仓库计算
最适合旧版系统现代云数据仓库

核心模式

模式 1:幂等分区覆盖

用例: 安全地重新运行批处理作业,避免产生重复数据。

# PySpark example: Overwrite partition based on execution date
def write_daily_partition(df, target_table, execution_date):
    (df
     .write
     .mode("overwrite")
     .partitionBy("process_date")
     .option("partitionOverwriteMode", "dynamic")
     .format("parquet")
     .saveAsTable(target_table))
模式 2:缓慢变化维度 2 型(SCD2)

用例: 跟踪变更历史,同时保留过去的状态。

-- dbt implementation of SCD2
{{ config(materialized='incremental', unique_key='user_id') }}

SELECT 
    user_id, address, email, status, updated_at,
    LEAD(updated_at, 1, '9999-12-31') OVER (
        PARTITION BY user_id ORDER BY updated_at
    ) as valid_to
FROM {{ source('raw', 'users') }}
模式 3:流处理死信队列(DLQ)

用例: 处理格式错误的消息,同时不中断管道。

模式 4:数据质量断路器

用例: 如果数据质量低于阈值,则停止管道执行。

质量检查清单

数据管道
  • 幂等(可安全重试)
  • 强制执行架构验证
  • 包含重试机制的错误处理
  • 自动执行数据质量检查
  • 已配置监控和告警
  • 已记录数据血缘
性能
  • 管道在 SLA 规定时间内完成(例如,<1 小时)
  • 在适用情况下采用增量加载
  • 已优化分区策略
  • 查询性能 <30 秒(P95)
成本优化
  • 已实施存储分层(热/温/冷)
  • 已配置计算自动扩缩
  • 已启用查询成本监控
  • 已启用压缩(Parquet/ORC)

更多资源

评论

支持 Markdown