大数据生态全链路选型总览
概述
选型不是挑单品,而是组合一套能跑通业务的链路。本文按离线、实时、OLAP、消息、调度、治理等场景,给出推荐组合方案与选型逻辑,帮你快速完成整体架构选型。
一、选型方法论
1.1 选型三问
选型先问:
1. 业务要什么(时效/吞吐/成本)
2. 团队能养什么(运维/技术栈)
3. 生态怎么接(与现有系统集成)
再看:
社区活跃度
演进方向
云厂商支持1.2 场景矩阵
| 场景 | 核心需求 | 关键组件 |
|---|---|---|
| 离线数仓 | 稳定/量大 | Spark + 分层 |
| 实时数仓 | 低延迟 | Flink + Kafka |
| OLAP 分析 | 查询快 | Doris/CH |
| 数据湖 | 全量/低成本 | Iceberg + 对象存储 |
| 消息管道 | 高吞吐 | Kafka |
| 数据集成 | 多源同步 | DataX/SeaTunnel |
二、离线链路
2.1 推荐组合
离线链路:
采集:DataX/SeaTunnel(批量)、Canal(增量)
消息:Kafka(缓冲/解耦)
计算:Spark(ETL/分析)
存储:HDFS / 对象存储
调度:DolphinScheduler / Airflow
查询:Hive(宽表)、Doris(加速)
治理:Atlas + Ranger适用:
日/小时级报表
数据仓库
批量特征/标签2.2 选型逻辑
为什么:
Spark:离线计算主流(生态/性能)
DataX:成熟稳定(批量迁移)
DolphinScheduler:可视化易运维
分层:ODS/DWD/DWS/ADS 清晰可控三、实时链路
3.1 推荐组合
实时链路:
采集:Canal/Debezium(CDC)
消息:Kafka
计算:Flink
存储:Iceberg(实时湖)/ Kafka(消息)
服务:Doris/StarRocks(实时分析)
调度:Flink 作业管理 + 调度平台
监控:Prometheus + Grafana适用:
实时报表/大屏
实时风控/推荐
实时指标3.2 选型逻辑
为什么:
Flink:实时计算主流(状态/精确一次)
Kafka:管道底座
Doris/StarRocks:实时写入 + 秒级查询
Iceberg:实时入湖(流批一体)3.3 实时与离线配合
配合方式:
共享数据(湖表一份数据)
口径统一(同一逻辑批/流)
结果互校(离线/实时对账)四、OLAP 选型
4.1 场景与推荐
| 场景 | 推荐 | 理由 |
|---|---|---|
| 报表/Ad-hoc | Doris/StarRocks | 易用/性能均衡 |
| 日志/大屏 | ClickHouse | 单表极速 |
| 高并发查询 | StarRocks | 存算分离/高并发 |
| 固定多维报表 | Kylin | 预计算 |
| 时序分析 | Druid | 时间序列 |
| 跨源查询 | Presto/Trino | 联邦查询 |
4.2 选型决策
决策要点:
数据规模
查询模式(固定/即席)
并发与延迟
实时写入能力
运维成本
实践:
主力 + 补充组合
(Doris 主力 + CH 专项)五、消息选型
5.1 场景与推荐
| 场景 | 推荐 | 理由 |
|---|---|---|
| 数据管道 | Kafka | 吞吐/生态 |
| 业务解耦 | RocketMQ/RabbitMQ | 功能/可靠 |
| 云原生多租户 | Pulsar | 存算分离 |
| 流处理底座 | Kafka | Flink 对接 |
实践:
数据链路统一 Kafka
业务消息视情况独立六、调度选型
6.1 场景与推荐
| 场景 | 推荐 |
|---|---|
| 复杂依赖/生态 | Airflow |
| 可视化易用 | DolphinScheduler |
| 轻量 | Azkaban |
实践:
数据平台统一调度
支持依赖/重跑/补数/告警
与监控联动七、数据湖与湖仓
7.1 推荐组合
湖仓方案:
存储:对象存储
表格式:Iceberg(通用首选)
计算:Spark(离线)+ Flink(实时)
查询:Presto/Trino 或 Doris 加速
治理:元数据 + 权限
备选:
Spark 生态 → Delta
增量处理 → Hudi7.2 选型逻辑
为什么:
Iceberg:多引擎兼容/快照隔离
对象存储:低成本无限扩展
存算分离:弹性计算八、数据集成选型
8.1 场景与推荐
| 场景 | 推荐 |
|---|---|
| 批量同步 | DataX/SeaTunnel |
| 实时 CDC | Canal/Debezium/Flink CDC |
| 全量+增量 | SeaTunnel/DataX + CDC |
| 多源汇聚 | SeaTunnel |
实践:
离线批量 → DataX
实时增量 → Canal + Kafka + Flink
一体化 → SeaTunnel九、治理与安全
9.1 推荐组合
| 需求 | 推荐 |
|---|---|
| 元数据/血缘 | Atlas / DataHub |
| 权限 | Ranger |
| 质量 | Great Expectations / Deequ |
| 安全 | Kerberos + Ranger + 脱敏 |
| 指标 | 自建指标平台 |
实践:
血缘+目录 → Atlas/DataHub
权限 → Ranger 统一
质量 → 规则引擎定时校验十、完整组合示例
10.1 电商中大型平台
整体组合:
采集:Canal + DataX + Flume
消息:Kafka(管道)+ RocketMQ(业务)
存储:HDFS/对象存储 + HBase + Redis
计算:Spark(离线)+ Flink(实时)
表格式:Iceberg(湖仓)
OLAP:Doris(报表)+ ClickHouse(日志)
调度:DolphinScheduler
治理:Atlas + Ranger + GX
ML:MLflow + Feature Store
监控:Prometheus + Grafana10.2 中小团队
轻量组合:
采集:DataX + Canal
消息:Kafka
计算:Spark(批)+ Flink(流)
存储:对象存储 + Iceberg
OLAP:Doris
调度:DolphinScheduler
治理:轻量(自建简单血缘)十一、选型避坑
11.1 常见坑
| 坑 | 说明 |
|---|---|
| 过度设计 | 需求小却上重型组件 |
| 追新 | 用未稳定项目 |
| 忽略运维 | 组件多但人不够 |
| 一套通吃 | 场景混用一组件 |
| 忽略生态 | 集成成本巨大 |
11.2 建议
原则:
场景驱动选型
成熟优先(稳定 > 新潮)
组合优化(各司其职)
渐进演进(先小后大)
评估人力(运维成本)十二、小结
选型的本质是为业务目标匹配组件组合:离线用 Spark + 分层数仓,实时用 Kafka + Flink + Doris,湖仓用对象存储 + Iceberg,治理用 Atlas + Ranger。先定场景、再选组合、最后算运维成本,用"场景 × 成熟度 × 团队能力"三个维度做决策,就能避免选型翻车。