数据管道架构师 data-pipeline-architect

数据管道架构师技能专注于设计和实现高效、可靠的数据处理流程,涵盖ETL与ELT模式、工作流编排、错误处理和数据质量验证,适用于数据仓库、数据湖等场景。关键词:数据管道、ETL开发、ELT模式、数据工程、数据质量、编排工具、Airflow、dbt、数据仓库、数据处理。

ETL开发 0 次安装 0 次浏览 更新于 3/7/2026

name: 数据管道架构师 description: 设计ETL/ELT数据管道,包括正确的提取、转换和加载模式,以及编排、错误处理和数据质量验证。 license: MIT

数据管道架构师

此技能提供设计稳健、可扩展数据管道的指导,确保数据从源到目的地可靠传输。

核心能力

  • ETL vs ELT:传统提取-转换-加载与现代提取-加载-转换模式
  • 编排:Airflow、Dagster、Prefect、dbt 用于工作流管理
  • 数据质量:验证、监控、血缘追踪
  • 可扩展性:批量处理 vs 流处理、分区、并行化

管道设计流程

1. 需求分析

开始管道设计时,收集:

  • 源系统和数据格式(API、数据库、文件、流)
  • 目标目的地(数据仓库、数据湖、湖仓一体)
  • 新鲜度要求(实时、每小时、每天)
  • 数据量和速度估计
  • 质量和合规要求

2. 架构选择

批量管道 - 用于周期性批量处理:

  • 调度驱动(每小时、每天、每周)
  • 较高延迟容忍度
  • 简单错误恢复(重新运行整个批次)
  • 工具:Airflow、dbt、Spark

流处理管道 - 用于实时要求:

  • 事件驱动处理
  • 亚秒到分钟延迟
  • 复杂状态管理
  • 工具:Kafka、Flink、Spark Streaming

混合方法 - Lambda 或 Kappa 架构:

  • 批量层用于完整性
  • 速度层用于低延迟
  • 服务层用于查询

3. ETL 与 ELT 决策

ETL(加载前转换)

  • 当目标计算资源有限时
  • 当转换显著减少数据量时
  • 当敏感数据必须在落地前屏蔽时
  • 传统数据仓库模式

ELT(加载后转换)

  • 现代云仓库计算成本低
  • 当需要原始数据保留时
  • 当转换频繁更改时
  • dbt 风格在仓库内转换

4. 管道组件

提取层

  • 全量提取 vs 增量提取(CDC、基于时间戳)
  • API 分页和速率限制
  • 连接池和重试逻辑
  • 模式检测和漂移处理

转换层

  • 数据清洗和标准化
  • 业务逻辑应用
  • 聚合和反规范化
  • 类型转换和空值处理

加载层

  • Upsert 策略(合并、删除+插入)
  • 分区方案(时间、哈希、范围)
  • 索引管理
  • 事务边界

5. 错误处理模式

┌─────────────────────────────────────────────────────────┐
│                    管道执行                    │
├─────────────────────────────────────────────────────────┤
│  ┌─────────┐    ┌───────────┐    ┌──────────┐          │
│  │ 提取   │───▶│ 转换     │───▶│  加载    │          │
│  └────┬────┘    └─────┬─────┘    └────┬─────┘          │
│       │               │               │                 │
│       ▼               ▼               ▼                 │
│  ┌─────────┐    ┌───────────┐    ┌──────────┐          │
│  │ 重试    │    │ 死信队列 │    │ 回滚检查点│          │
│  │ 带退避  │   │           │    │           │          │
│  └─────────┘    └───────────┘    └──────────┘          │
└─────────────────────────────────────────────────────────┘
  • 带退避重试:暂时性故障(网络、速率限制)
  • 死信队列:无法处理的毒消息
  • 检查点:从上次成功点恢复
  • 幂等性:安全重新运行无重复

6. 数据质量框架

在每个阶段实施检查:

阶段 检查类型 示例
提取 完整性 行数与源匹配
提取 新鲜度 数据时间戳在SLA内
转换 有效性 值在预期范围内
转换 唯一性 主键唯一
加载 对账 目标匹配源总计
加载 完整性 外键有效

7. 监控和可观测性

要跟踪的基本指标:

  • 管道持续时间和趋势
  • 每个阶段的行数
  • 错误率和类型
  • 数据新鲜度(自上次成功运行时间)
  • 资源利用率

告警:

  • SLA 违反(数据不新鲜)
  • 异常行数(±20% 从基线)
  • 源中模式更改
  • 重复故障

常见模式

缓慢变化维度(SCD)

  • 类型1:覆盖(无历史)
  • 类型2:添加带有效日期的行
  • 类型3:先前值列
  • 类型4:历史表

增量处理

-- 基于时间戳的增量
SELECT * FROM source
WHERE updated_at > {{ last_run_timestamp }}

-- 基于CDC(变更数据捕获)
-- 从事务日志捕获插入、更新、删除

幂等加载

-- 删除 + 插入模式
DELETE FROM target WHERE date_partition = '2024-01-15';
INSERT INTO target SELECT * FROM staging WHERE date_partition = '2024-01-15';

-- 合并/Upsert 模式
MERGE INTO target t
USING staging s ON t.id = s.id
WHEN MATCHED THEN UPDATE SET ...
WHEN NOT MATCHED THEN INSERT ...

参考资料

  • references/orchestration-patterns.md - Airflow、Dagster、Prefect 模式
  • references/data-quality-checks.md - 验证框架和规则
  • references/pipeline-templates.md - 常见管道架构