mcpField
D
data-pipeline

data-pipeline

github.com/rightnow-ai数据与数据库18.2k108 次安装25 周前更新
代码仓库

关于 data-pipeline

面向数据工程的技能,帮助设计和运行生产级 ETL/ELT 流水线,涵盖编排、数据质量、增量处理,以及使用 Airflow、Spark 和 dbt 的批处理与流处理模式。

主要功能

  1. 01Airflow 编排模式
  2. 02Spark 作业设计
  3. 03dbt 项目结构与测试
  4. 04数据质量检查
  5. 05增量加载与回填

适用场景

  1. 01设计可靠的生产数据流水线
  2. 02在流水线阶段之间加入验证
  3. 03按日期范围重新处理历史数据
  4. 04隔离失败记录,避免流水线整体停止

安装

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

$npx skills add https://github.com/rightnow-ai/openfang --skill data-pipeline

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

详细介绍

数据管道专家

数据工程专家,在设计和运营生产级 ETL/ELT 管道、编排框架和数据质量系统方面经验丰富。这项技能可指导你使用 Apache Airflow、Spark 和 dbt 等业界标准工具,在批处理和流式架构中构建可靠、可观测且可扩展的数据管道。

核心原则

  • 如果目标数据仓库能够处理转换,则优先选择 ELT 而非 ETL;先加载原始数据,再就地转换,以便复现和审计
  • 将每个管道步骤设计为幂等;使用相同输入重新运行任务时,必须生成相同输出,且不产生副作用或重复数据
  • 在每个阶段按时间或逻辑键对数据分区;分区有助于增量处理、高效裁剪和可控的回填操作
  • 在各阶段之间加入数据质量检查;及早发现错误数据,避免其导致下游表发生连锁数据损坏
  • 将编排(何时执行以及执行顺序)与计算(如何执行)分开;调度器本身不应执行繁重的数据处理

技术

  • 构建 Airflow DAG,并设置任务级重试、超时和 SLA;使用传感器处理外部依赖,并使用 XCom 进行轻量级任务间通信
  • 设计 Spark 作业时,合理设置分区(repartition/coalesce)、对小型维度表使用广播连接,并缓存重复使用的 DataFrame
  • 按以下层次组织 dbt 项目:staging 模型(清理源数据)、intermediate 模型(业务逻辑)和 mart 模型(最终消费表)
  • 在多个层次编写 dbt 测试:架构测试(not_null、unique、accepted_values)、关系测试,以及用于业务规则的自定义数据测试
  • 使用 Great Expectations 等框架实现数据质量门禁:针对行数、列分布和引用完整性定义预期
  • 使用 Debezium 等工具采用变更数据捕获(CDC)模式,将数据库变更流式传输到事件管道中,无需轮询

常见模式

  • 增量加载:使用高水位列(updated_at)或 CDC 事件,仅处理新增或变更的记录;遇到架构变更时,再回退到全量重新加载
  • 回填策略:设计支持日期参数的 DAG 运行,使历史数据重新处理沿用与每日运行相同的代码路径,只需更改日期范围
  • 死信队列:将失败记录路由到单独的表或主题,以便调查和重新处理,而不是停止整个管道
  • 架构演进:使用架构注册表(Avro、Protobuf)或只允许添加列的策略来演进数据契约,同时避免破坏下游使用方

应避免的陷阱

  • 不要在 Airflow 运算符中执行繁重计算;应将任务委派给 Spark、dbt 或外部计算资源,Airflow 只负责编排
  • 不要跳过数据摄取后的验证;上游数据源的架构悄然变更,是导致管道故障的最常见原因
  • 不要在管道代码中硬编码连接字符串或凭据;应使用密钥管理器和基于环境的配置
  • 在可进行增量处理时,不要在每次管道执行时都全表扫描;这会浪费计算资源并增加延迟

评论

支持 Markdown