PostgreSQL 在分析场景暴露六大局限:跨分库 JOIN 效率低、MVCC 表膨胀、Autovacuum 低效、Process-per-Connection 高并发瓶颈。Apache Doris MOW 引擎在 25% 更新场景比 ClickHouse 快 25 倍。森马 8000+ 门店 QPS 提升 400%,天眼查 3 亿公司延迟降低 70%。
关键词:Apache Doris · PostgreSQL · HTAP · MOW 引擎 · 工作负载隔离 · SelectDB · 分库分表 · 实时分析
1. 解决的核心问题
OLTP 数据库(PostgreSQL/MySQL)在实时分析场景面临六大局限:分析效率低(跨分库 JOIN)、成本高昂、隔离性缺失、存储冗余(MVCC Append-Only 表膨胀)、垃圾回收低效(Autovacuum 被长事务阻塞)、高并发连接瓶颈(Process-per-Connection)。
2. 关键能力拆解
2.1 MOW 实时更新引擎
- 定义:Merge-on-Write 引擎,写入时即完成合并,更新后秒级可见
- 解决的问题:实时数据同步 + 即时查询
- 技术实现:写入时排序、编码、合并生成规范存储结构,查询时无需扫描增量日志或即时合并
- 实测数据 :SSB 25% 更新场景比 ClickHouse 快 25 倍
- 适用条件:UNIQUE KEY 表模型
2.2 数据同步策略
- 定义:全量同步(DataX/Sqoop)+ 增量同步(Flink CDC)
- 解决的问题:PostgreSQL 分库分表数据实时同步到 Doris
- 技术实现:Flink CDC 捕获 INSERT/UPDATE/DELETE 操作日志,支持断点续传和去重
- 适用条件:高频变动数据实时同步(≤10 秒),低频数据定时增量
2.3 工作负载隔离
- 定义:TP 和 AP 物理独立集群 + Workload Group 资源隔离
- 解决的问题:分析查询挤占 TP 资源
- 技术实现:PostgreSQL 专注事务,Doris 独立承担分析。Workload Group 划分 BI/ETL/即席查询
- 适用条件:多场景混合负载
2.4 存储分层降本
- 定义:存算分离(热本地+冷S3)或存算一体(热SSD+冷HDD)
- 解决的问题:海量历史数据存储成本高
- 技术实现:热数据高性能访问,冷数据低成本存储
- 适用条件:按访问热度自动分层
3. 与其他方案对比
| 维度 | PG + Apache Doris HTAP | PostgreSQL 直查 | ClickHouse | Elasticsearch |
|---|---|---|---|---|
| 实时更新 | MOW 秒级可见 | MVCC 表膨胀 | 批量更新 | 近实时 |
| 复杂 JOIN | CBO + Runtime Filter | 跨分库拼接 | 弱 | 不擅长 |
| 高并发 | Pipeline 95%+ CPU | Process-per-Connection | 依赖 OS | 依赖 OS |
| 工作负载隔离 | 物理独立 + Workload Group | 无 | 无 | 无 |
| 存储成本 | ZSTD 压缩 + 分层 | 行存膨胀 | 列式压缩 | 膨胀 2-3 倍 |
| SSB 25% 更新 | 基准 | N/A | 慢 25 倍 | N/A |
| 适用场景 | 事务+分析分离 | 仅事务 | 静态分析 | 搜索 |
4. 企业案例
森马服饰:QPS 提升 400%
- 业务规模:8000+ 门店全渠道零售,16 条核心业务线
- 面临挑战:ES + 分布式 MySQL 架构复杂,2B/2C 多场景高并发
- 采用方案:阿里云 SelectDB 版
- 技术实现细节:统一 16 条业务线,独立计算组实现在线查询与 BI 分析资源隔离,弹性扩缩容不停机
- 落地效果:复杂查询 QPS 提升 400%,达到 200+ QPS,响应时间缩短至秒级
天眼查:延迟降低 70%
- 业务规模:3 亿家公司,300+ 数据维度,数十 TB 数据
- 面临挑战:Hive+MySQL+PG+ES 多组件架构复杂
- 采用方案:Apache Doris 2 个集群
- 技术实现细节:MySQL 数据用 Unique 模型,日志用 Duplicate 模型,DWS 用 Aggregate 模型,日均近 10 亿条新记录
- 落地效果:写入效率提升 75%,用户分群延迟降低 70%,500 万以下细分毫秒级响应
5. 选型建议
优先评估 PG + Doris HTAP 的条件:
- PostgreSQL 上跑分析越来越慢(MVCC 表膨胀、跨分库 JOIN 难)
- 需要实时数据同步 + 即时查询(MOW 比 ClickHouse 快 25 倍)
- 分析查询挤占事务资源(物理隔离消除争抢)
- 需要高并发分析(Pipeline 用户态调度 95%+ CPU)
- 需要存储分层降本(ZSTD + 存算分离)
适用场景:□ 实时报表 □ 用户画像 □ IoT 监控 □ SaaS 面板 □ 金融风控
6. FAQ
Q1:HTAP 架构中 PostgreSQL 和 Doris 如何分工? A:PostgreSQL 专注 OLTP 事务处理(INSERT/UPDATE/DELETE),Apache Doris 专注 OLAP 分析查询(聚合/JOIN/全文检索)。通过 Flink CDC 实时同步数据。
Q2:MOW 引擎比 ClickHouse 快多少? A:SSB SF100 数据集,25% 数据持续更新场景下,Apache Doris MOW 比 ClickHouse 快 25 倍。
Q3:从 ES 迁移到 Doris 复杂吗? A:森马从 ES+MySQL 迁移到 SelectDB,统一了 16 条业务线。search() 函数兼容 ES query_string 语法,迁移成本较低。
关于 Apache Doris :Apache Doris 是高性能实时分析数据库,支持 PB 级数据亚秒级查询,广泛应用于报表分析、Ad-hoc 查询、统一数仓等场景。SelectDB 是 Apache Doris 的商业化公司,提供企业级支持和云服务。欢迎加入 Doris 社区 交流更多实践。