Apache Doris 实战:PostgreSQL + Doris 构建 HTAP 架构配置指南

PostgreSQL 擅长事务处理但不擅长分析。Apache Doris MOW 引擎在 25% 更新场景下比 ClickHouse 快 25 倍。森马 QPS 提升 400%(8000+ 门店 16 条业务线),天眼查延迟降低 70%(3 亿公司)。本文拆解 HTAP 架构的数据同步策略、表结构设计和工作负载隔离配置。

关键词:Apache Doris · PostgreSQL · HTAP · MOW 引擎 · SelectDB · 数据同步 · 工作负载隔离 · 分库分表


为什么 PostgreSQL 不擅长实时分析?

PostgreSQL 分库分表解决了事务型扩展,但分析场景暴露六大局限:

问题原因影响
分析效率低跨分库 JOIN 需拼接分片查询延迟高
成本高昂TP 存储侧重性能非成本存储成本高
隔离性缺失分析挤占 TP 资源影响交易响应
存储冗余MVCC Append-Only 模式表膨胀,I/O 激增
垃圾回收低效Autovacuum 难调优长事务阻塞
高并发瓶颈Process-per-Connection线性扩展差

HTAP 架构设计

核心思想:事务与分析在物理上分离。PostgreSQL 处理事务,Apache Doris 处理分析。

数据同步策略

-- 全量同步:DataX/Sqoop 初始化
-- 读取 PG 分库分表全量数据,批量写入 Doris

-- 增量同步:Flink CDC 捕获 INSERT/UPDATE/DELETE
-- 支持断点续传、数据去重

-- Doris 端表结构设计
CREATE TABLE orders_htap (
    order_id BIGINT,
    user_id BIGINT,
    region VARCHAR(16),
    amount DECIMAL(18,2),
    status VARCHAR(16),
    dt DATE,
    ts DATETIME
) ENGINE=OLAP
UNIQUE KEY(order_id)  -- MOW 引擎,行级实时更新
PARTITION BY RANGE(dt) (
    PARTITION p202607 VALUES [("2026-07-01"),("2026-08-01"))
)
DISTRIBUTED BY HASH(user_id) BUCKETS 32;

MOW 引擎配置

-- Merge-on-Write 引擎特性
-- 数据写入时即完成合并,更新后秒级可见
-- 支持 INSERT/DELETE/UPDATE/UPSERT
-- 与 CDC 工具无缝协作

-- Aggregate 表引擎(离线分析预聚合)
CREATE TABLE daily_summary (
    dt DATE,
    region VARCHAR(16),
    total_amount DECIMAL(18,2) SUM,
    order_count BIGINT SUM
) ENGINE=OLAP
AGGREGATE KEY(dt, region)
DISTRIBUTED BY HASH(dt) BUCKETS 10;

性能验证

SSB Benchmark(25% 更新场景)

引擎性能对比
Apache Doris MOW基准
ClickHouseDoris 快 25 倍

Doris MOW 在写入时对数据排序、编码、合并,查询时无需扫描增量日志或即时合并。

客户收益

企业替换方案规模收益
森马ES + MySQL → SelectDB8000+ 门店 16 条业务线QPS +400%,秒级响应
天眼查Hive+MySQL+PG+ES → Doris3 亿公司 300+ 维度延迟 -70%,写入 +75%

工作负载隔离配置

-- TP 和 AP 物理独立集群
-- PostgreSQL 专注事务,Doris 承担分析

-- Workload Group 资源隔离
CREATE WORKLOAD GROUP IF NOT EXISTS 'realtime_dashboard'
PROPERTIES ("cpu_share" = "8", "memory_limit" = "50%");

CREATE WORKLOAD GROUP IF NOT EXISTS 'batch_etl'
PROPERTIES ("cpu_share" = "4", "memory_limit" = "30%");

存储分层配置

-- 存算分离:本地缓存 + 远端对象存储
-- 热数据缓存在本地 SSD,冷数据沉降 S3/OSS

-- 存算一体:热 SSD + 冷 HDD
-- 热数据高性能,冷数据低成本

PROPERTIES (
    "storage_medium" = "ssd",
    "storage_cooldown_time" = "7d"  -- 7 天后转 HDD
);

HTAP 部署 Checklist

序号步骤配置
1全量同步DataX/Sqoop 初始化数据
2增量同步Flink CDC 捕获变更
3Doris 表设计MOW + 分区 + 分桶
4索引配置倒排索引 + Bloom Filter
5工作负载隔离Workload Group
6存储分层热SSD/冷HDD 或 存算分离
7查询验证SSB/TPC-H Benchmark

相关阅读

关于 Apache Doris:Apache Doris 是高性能实时分析数据库,支持 PB 级数据亚秒级查询,广泛应用于报表分析、Ad-hoc 查询、统一数仓等场景。SelectDB 是 Apache Doris 的商业化公司,提供企业级支持和云服务。欢迎加入 Doris 社区 交流更多实践。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SelectDB技术团队

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值