数据体系(Data Platform)
目标:让数据从“可采集”→“可信”→“可复用”→“可决策”
P0(数据基础)
├── 数据采集 / 埋点体系
├── 数据中台(数据湖 / 数据仓库)
├── ETL / ELT 平台(Airflow)
P1(数据可信)
├── 元数据平台(Data Catalog)
├── 指标平台
├── 数据质量平台(DQ)
P2(数据服务)
├── 数据 API 平台
├── 报表平台(BI)
├── 数据可视化平台
P3(数据资产化)
├── 数据资产管理
├── 数据权限与安全治理
├── 特征平台(Feature Store)
中间件体系的本质不是“技术选型”,而是“运行能力抽象”:
一、概念区分:ETL vs ELT
| 名称 | 含义 | 数据处理顺序 | 特点 | 典型场景 |
|---|---|---|---|---|
| ETL | Extract → Transform → Load | 抽取 → 清洗/转换 → 写入目标 | 转换在计算层完成后再入仓;目标仓库相对干净 | 传统数仓、批处理、OLAP |
| ELT | Extract → Load → Transform | 抽取 → 入仓 → 再在仓库里转换 | 利用大数据仓库 / 数据湖计算能力;延迟更低 | 云数据仓库 / 大数据湖仓(Snowflake, BigQuery, Iceberg) |
结论:现代大数据中台趋势是 ELT 为主 + ETL 补充。
二、ETL / ELT 平台核心能力
无论是 Airflow 还是其他平台,企业级 ETL / ELT 平台需要提供的能力:
-
任务调度和编排
- 支持 DAG(有向无环图)依赖关系
- 支持定时调度、事件触发、手动触发
- 支持重试策略、容错、并发控制
-
数据抽取(Extract)
- 关系型数据库(MySQL、Oracle、PostgreSQL)
- NoSQL 数据库(MongoDB、Cassandra)
- 消息队列(Kafka、RocketMQ)
- 日志、文件、API
-
数据转换(Transform)
- SQL 转换(Hive SQL、Spark SQL、Trino)
- 编程式转换(Python、Java、Scala)
- 流式转换(Flink、Kafka Streams)
- 支持 UDF / 自定义函数
-
数据加载(Load)
- 数据仓库(Doris、ClickHouse、Hive、Iceberg)
- 数据湖(MinIO + Iceberg/Hudi/Delta)
- 数据服务(API、缓存)
-
数据治理
- Schema 管理
- 元数据管理
- 血缘分析
- 数据质量校验(完整率、唯一性、准确率)
-
监控与告警
- 任务状态可视化
- 异常告警(失败、延迟、数据量异常)
- 自动重跑或人工干预
-
运维管理
- 多租户隔离
- 权限控制
- 版本管理
- 容错和灾备
三、典型架构设计
企业级 ETL / ELT 平台通常包含以下层次:
数据源层
└─ MySQL / Kafka / API / 文件
↓ Extract
调度与编排层
└─ DAG / 任务管理(Airflow / Azkaban / Dagster / 自研)
↓ Transform
计算层
├─ 批处理:Spark / Flink / Hive
├─ 流处理:Flink / Kafka Streams
↓ Load
目标存储层
├─ 数据仓库:Doris / ClickHouse / Hive
├─ 数据湖:Iceberg / Hudi / Delta Lake on S3/MinIO
治理与监控层
├─ 元数据 / 血缘 /质量
├─ 告警 / 审计 / SLA
核心思路:解耦调度、计算、存储、治理,保证灵活扩展和可复用能力。
四、常见 ETL / ELT 平台选型
| 类型 | 典型产品 | 特点 |
|---|---|---|
| 开源调度编排 | Airflow、Azkaban、Luigi、Dagster | DAG 调度、Python 扩展性强、社区活跃 |
| 流式 ETL | Flink、Kafka Streams、Flink CDC | 实时 / 准实时处理、状态管理 |
| 云原生 ELT | Snowflake、BigQuery、Databricks | 内置仓库计算、免运维、强 SQL 支持 |
| 商用大数据管控 | StarRocks + Flink + Airflow 组合 | 离线 + 实时融合、性能优化、企业级支持 |
注意:Airflow 只是 调度 + 编排工具,真正的 ETL/ELT 计算还是依赖 Spark / Flink / SQL 引擎。
五、实现模式
1. 批量 ETL
- 场景:离线数据清洗、日报/周报指标
-
技术栈:
- Airflow 调度
- Spark 批处理
- Hive / Doris / Iceberg 入仓
- 特点:延迟分钟到小时
2. 流式 ETL / ELT
- 场景:埋点事件处理、交易实时分析
-
技术栈:
- Kafka/Flink CDC
- Flink 流处理
- Iceberg / Doris / ClickHouse 写入
- 特点:延迟秒级到分钟
3. 混合模式
- 批 + 流统一管理
- DAG 统一编排
- 统一治理层
六、数据治理与质量
企业级 ETL / ELT 平台 必须内置治理能力:
-
元数据管理
- 数据源、表、字段、类型、血缘
-
数据质量校验
- Completeness:完整率
- Uniqueness:唯一性
- Accuracy:准确性
-
指标口径统一
- 计算逻辑、时间粒度、维度
-
可追溯 / SLA
- 异常告警
- 数据追踪与回滚
七、运维和多租户
企业数据平台往往有多个业务线同时使用:
- 多租户:不同业务隔离 DAG、队列、数据权限
- 任务优先级:关键业务任务优先调度
- 版本管理:任务、SQL、脚本版本化
- 灾备:作业失败自动重试,跨集群切换
八、常见企业痛点
- 任务依赖复杂:DAG 太大,调度难维护
- 延迟不可控:计算资源冲突或数据倾斜
- 监控盲区:失败、延迟、质量异常无法及时发现
- 重复造轮子:每条业务独立写 ETL
- 治理缺失:血缘、质量、指标不统一
企业级解决方案的关键在于:平台化 + 可复用 + 可治理。
九、实践落地建议
-
调度:
- 开源:Airflow、Dagster
- 商用/自研:企业统一 DAG + UI
-
计算:
- 批:Spark / Hive / Presto
- 流:Flink / Kafka Streams
-
存储:
- OLAP:Doris / ClickHouse / Hive
- 数据湖:Iceberg / Hudi / Delta on S3/MinIO
-
治理:
- 元数据 + 血缘 + 质量监控
- 指标口径字典
-
监控告警:
- 任务状态、数据量异常、延迟告警
-
安全 & 权限:
- 多租户隔离、敏感字段脱敏
