Skip to content
Agent Orchestration
Skill

/data-engineering

数据工程。Airflow、Dagster、Kafka Streams、Flink、dbt、数据管道、流处理、数据质量。当用户提到数据管道、ETL、流处理、数据质量时路由到此。

BOOST
From plugin
ccg
5.9k47 skills19 commands
Install
$ npx -y skills add fengshao1227/ccg-workflow --skill data-engineering --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/data-engineering

Context preview

The summary Claude sees to decide when to auto-load this skill.

数据工程。Airflow、Dagster、Kafka Streams、Flink、dbt、数据管道、流处理、数据质量。当用户提到数据管道、ETL、流处理、数据质量时路由到此。

SKILL.md

data-engineering.SKILL.md
name: data-engineering
description: 数据工程。Airflow、Dagster、Kafka Streams、Flink、dbt、数据管道、流处理、数据质量。当用户提到数据管道、ETL、流处理、数据质量时路由到此。
license: MIT
user-invocable: false
disable-model-invocation: false

数据工程域 · Data Engineering

域概览

数据工程域涵盖数据管道编排、流式处理、数据质量保障三大核心领域。

数据管道层                流处理层              质量保障层
├── Airflow (调度编排)    ├── Kafka Streams     ├── Great Expectations
├── Dagster (资产管理)    ├── Flink             ├── dbt
└── Prefect (现代工作流)  └── Spark Streaming   └── Soda Core

---

数据管道编排

框架对比

| 特性 | Airflow | Dagster | Prefect | |------|---------|---------|---------| | 核心模型 | DAG + Task | Asset + Op | Flow + Task | | 学习曲线 | 陡峭 | 中等 | 平缓 | | 资产管理 | 无 | 原生支持 | 无 | | 动态任务 | 支持 | 支持 | 支持 | | 本地开发 | 复杂 | 简单 | 简单 | | 社区生态 | 最大 | 成长中 | 成长中 |

Airflow 核心模式

  • DAG 定义:`with DAG(dag_id, schedule, default_args) as dag`
  • TaskFlow API:`@task` 装饰器,自动 XCom 传递
  • 动态任务:`@task` + `.expand()` 实现 dynamic task mapping
  • Operators:PythonOperator / BashOperator / SQL / HTTP / S3
  • Sensors:FileSensor / HttpSensor / ExternalTaskSensor
  • 重试策略:`retries=3, retry_delay=timedelta(minutes=5), retry_exponential_backoff=True`
  • 失败回调:`on_failure_callback` 发送告警
  • SLA 监控:`sla=timedelta(hours=2)` + `sla_miss_callback`

Dagster 核心模式

  • Asset 定义:`@asset(group_name, deps)` 声明数据资产
  • MaterializeResult:返回元数据(行数、预览等)
  • Resources:`ConfigurableResource` 管理外部连接
  • Jobs:`define_asset_job(selection=AssetSelection.groups(...))`
  • Schedules:`ScheduleDefinition(job, cron_schedule)`
  • Sensors:`@sensor(job)` 监听外部事件触发
  • Partitions:`DailyPartitionsDefinition` 按日分区
  • Asset Checks:`@asset_check` 验证数据新鲜度/质量

Prefect 核心模式

  • Flow/Task:`@flow` + `@task(retries=3, cache_key_fn=task_input_hash)`
  • 并发:`ConcurrentTaskRunner` + `task.map(items)`
  • Deployments:`Deployment.build_from_flow(schedule=CronSchedule(...))`
  • Blocks:`Secret` / `JSON` 管理配置和密钥

调度策略 Checklist

  • [ ] Cron 表达式正确(`0 2 * * *` 日批 / `*/15 * * * *` 实时)
  • [ ] 事件驱动:文件到达 / S3 / API 触发
  • [ ] 跨 DAG 依赖:ExternalTaskSensor / Asset deps
  • [ ] 幂等性:UPSERT / 分区覆盖写入
  • [ ] 增量处理:`WHERE updated_at > last_run`
  • [ ] 数据血缘:Dagster 原生 / Airflow Lineage / dbt ref()

---

流式处理

框架对比

| 特性 | Kafka Streams | Flink | Spark Streaming | |------|---------------|-------|-----------------| | 部署模式 | 嵌入式(JVM) | 独立集群 | 独立集群 | | 状态管理 | RocksDB | 内存/RocksDB | 内存 | | Exactly-Once | 支持 | 支持 | 支持 | | 窗口类型 | 丰富 | 最丰富 | 基础 | | 学习曲线 | 平缓 | 陡峭 | 中等 | | Python API | kafka-python | PyFlink | PySpark |

Kafka Streams 核心模式

  • 拓扑构建:`StreamsBuilder` → `stream()` → `filter/map/flatMap` → `to()`
  • 聚合:`groupByKey().count()` / `.aggregate()` / `.reduce()`
  • Join:Stream-Stream(时间窗口)/ Stream-Table / Table-Table
  • 状态存储:`Stores.persistentKeyValueStore` + Transformer
  • Exactly-Once:`PROCESSING_GUARANTEE_CONFIG = EXACTLY_ONCE_V2`
  • 性能调优:`NUM_STREAM_THREADS=4` / `CACHE_MAX_BYTES_BUFFERING` / RocksDB 配置

Flink 核心模式

  • DataStream API:`env.addSource()` → `filter/map` → `addSink()`
  • 窗口类型:
  • 滚动窗口 `TumblingProcessingTimeWindows.of(Time.minutes(5))`
  • 滑动窗口 `SlidingProcessingTimeWindows.of(size, slide)`
  • 会话窗口 `ProcessingTimeSessionWindows.withGap(gap)`
  • 全局窗口 `GlobalWindows.create()` + 自定义 Trigger
  • 窗口聚合:`aggregate(AggregateFunction, WindowFunction)` 增量+全窗口
  • ProcessFunction:低级 API,访问时间戳、注册定时器
  • 状态管理:ValueState / ListState / MapState + TTL 清理
  • Checkpoint:`env.enableCheckpointing(60000)` + EXACTLY_ONCE
  • Savepoint:`flink run -s /path/to/savepoint`
  • 时间语义:Event Time + Watermark(`forBoundedOutOfOrderness`)
  • 延迟数据:`allowedLateness()` + `sideOutputLateData()`
  • 数据倾斜:添加随机前缀打散 key

流处理 Checklist

  • [ ] 选择时间语义:Event Time vs Processing Time
  • [ ] Watermark 策略:乱序容忍度设置
  • [ ] 窗口类型匹配业务场景
  • [ ] 状态 TTL 防止无限增长
  • [ ] Checkpoint 间隔和超时配置
  • [ ] Exactly-Once 语义端到端保证
  • [ ] 背压监控和处理
  • [ ] 并行度调优

---

数据质量

质量维度

完整性(非空) → 准确性(范围) → 一致性(关联) → 及时性(新鲜度) → 有效性(格式)

工具对比

| 工具 | 优势 | 适用场景 | |------|------|----------| | Great Expectations | 丰富 Expectations、Data Docs | Python 生态、复杂验证 | | dbt | SQL 原生、血缘追踪 | 数据仓库、转换测试 | | Soda Core | 简洁 YAML 配置 | 快速验证、CI/CD |

Great Expectations 核心模式

  • Data Context:`gx.get_context()` → 添加数据源 → 构建批次
  • 常用 Expectations:
  • `expect_table_row_count_to_be_between(min, max)`
  • `expect_column_values_to_not_be_null(column)`
  • `expect_column_values_to_be_unique(column)`
  • `expect_column_values_to_be_between(column, min, max)`
  • `expect_column_values_to_be_in_set(column, value_set)`
  • `expect_column_values_to_match_regex(column, regex)`
  • Checkpoints:批量运行验证 + 生成 Data Docs
  • 自定义 Expectation:继承 `ColumnMapExpectation`

dbt 测试核心模式

  • Schema 测试:`unique` / `not_null` / `accepted_values` / `relationships`
  • Generic 测试:`{% test name(model, column_name, params) %}`
  • Singular 测试:`tests/` 目录下自定义 SQL,返回行 = 失败
  • dbt_expectations 包:`expect_column_mean_to_be_between` / `expect_row_values_to_have_recent_data`
  • 执行:`dbt test` / `dbt test --select model` / `dbt test --store-failures`
  • 血缘:`{{ ref('model') }}` + `{{ source('schema', 'table') }}` → `dbt docs generate`

Soda Core 核心模式

checks for table_name:
  - row_count > 100
  - missing_count(column) = 0
  - duplicate_count(column) = 0
  - invalid_count(column) = 0:
      valid format: email
  - freshness(timestamp_col) < 1d

数据质量 Checklist

  • [ ] 分层验证:源数据 → 转换后 → 目标数据
  • [ ] 完整性:必需列非空、无空字符串
  • [ ] 准确性:数值范围、格式正则、逻辑一致
  • [ ] 一致性:跨表主键匹配、值一致
  • [ ] 及时性:数据新鲜度 < 阈值
  • [ ] 唯一性:主键/业务键无重复
  • [ ] 质量指标:完整性/唯一性/有效性加权评分
  • [ ] 告警:指标低于阈值自动通知(Slack/Email/PagerDuty)
  • [ ] 持续监控:定时执行质量检查

---

最佳实践

| 实践 | 说明 | |------|------| | 幂等性设计 | UPSERT / 分区覆盖,重跑不产生副作用 | | 增量处理 | 基于时间戳/CDC 增量提取,减少全量扫描 | | 数据血缘 | dbt ref() / Dagster Asset deps 追踪上下游 | | 分层验证 | 源→转换→目标每层都验证 | | 监控告警 | 管道 SLA + 质量指标 + 延迟告警 | | 状态管理 | 流处理状态 TTL + Checkpoint + Savepoint | | 容错设计 | 重试策略 + 死信队列 + 回滚方案 |

触发词

数据管道、Airflow、Dagster、Prefect、ETL、流处理、Ka

Read more
Ships withccg

多模型协作工作流引擎 — /ccg:go 一个命令,AI 自动分析意图、选择策略、编排 Codex + Gemini + Claude 协作执行

Get the whole plugin

Other skills on ccg.

verify-change
Skill

verify-change

变更校验关卡。分析代码变更,检测文档同步状态,评估变更影响范围。当用户提到变更检查、文档同步、代码审查、提交前检查、diff分析时使用。在设计级变更、重构完成时自动触发。

verify-module
Skill

verify-module

模块完整性校验关卡。扫描目录结构、检测缺失文档、验证代码与文档同步。当用户提到模块校验、文档检查、结构完整性、README检查、DESIGN检查时使用。在新建模块完成时自动触发。

verify-quality
Skill

verify-quality

代码质量校验关卡。检测复杂度、重复代码、命名规范、函数长度等质量指标。当用户提到代码质量、复杂度检查、代码异味、重构建议、lint检查、代码规范时使用。在复杂模块、重构完成时自动触发。

verify-security
Skill

verify-security

安全校验关卡。自动扫描代码安全漏洞,检测危险模式,确保安全决策有文档记录。当用户提到安全扫描、漏洞检测、安全审计、代码安全、OWASP、注入检测、敏感信息泄露时使用。在新建模块、安全相关变…