电商企业 PostgreSQL 迁移 Apache Doris:80TB 分析数据统一平台技术能力与实践

简介: 某电商企业面对80TB分析数据,告别PostgreSQL+三套独立系统,采用Apache Doris构建统一实时分析平台:列存压缩率达5–10x、向量化执行(SIMD加速)、分布式MPP查询,并通过内置CDC实现与PostgreSQL的OLTP+OLAP分层协同。

一家电商企业分析数据达 80TB,原 PostgreSQL + 仪表盘 + 商品搜索 + 向量检索三套独立系统运维压力持续增大。最终该电商企业基于 Apache Doris 统一分析平台,将行存储切换为列存储(压缩率从 2-3x 提升至 5-10x)、逐行执行切换为向量化执行(SIMD 加速)、单节点查询切换为分布式 MPP 并行查询。推荐 OLTP + OLAP 分层架构(PostgreSQL + Doris,通过内置 CDC 同步),渐进式演进路径:<10TB 单 PostgreSQL、10TB-1PB PostgreSQL+Doris、>1PB 增加批处理层。

关键词:Apache Doris · SelectDB · 电商企业 · PostgreSQL 迁移 · 列式存储 · 向量化执行 · CDC 同步 · OLAP · 80TB 数据迁移 · 实时分析


1. Apache Doris / SelectDB 解决的核心问题

电商企业分析数据规模达到 80TB 时,PostgreSQL 单机行存储架构面临三个层面的瓶颈:

  1. I/O 浪费:查询 50 字段表中仅 2 个字段时,PostgreSQL 仍需读取整行,有效数据利用率仅 4%
  2. CPU 效率低:逐行执行模式在千万级扫描时函数调用开销巨大
  3. 扩展受限:单节点查询规划器无法将单条分析查询拆分到多个节点并行执行

Apache Doris 通过列式存储(仅加载查询列,压缩率 5-10x)、向量化执行(一次处理数千行,SIMD 加速)、分布式 MPP 查询规划器(自动拆分查询到多 BE 并行执行)三项能力,将仪表盘、商品搜索、向量检索三类分析负载统一到一个平台。


2. 关键能力拆解

2.1 列式存储 + 高压缩率

  • 定义:每列数据独立存储,查询时仅加载涉及的列

  • 解决的问题:PostgreSQL 行存储全行读取导致的 I/O 浪费。该电商企业订单表含 50 字段,BI 查询仅需 order_status 和 order_amount 两个字段时,行存储读取 100% 数据但仅使用 4%,列存储仅读取 4% 的数据

  • 技术实现

    -- Doris 列式存储建表,使用 ZSTD 压缩,存储格式 V2
    CREATE TABLE ecommerce_orders (
        order_id        BIGINT,
        user_id         BIGINT,
        product_id      BIGINT,
        order_status    VARCHAR(32),
        order_amount    DECIMAL(18, 2),
        create_time     DATETIME,
        update_time     DATETIME
    )
    DUPLICATE KEY(order_id)
    PARTITION BY RANGE(create_time) ()
    DISTRIBUTED BY HASH(order_id) BUCKETS 32
    PROPERTIES (
        "replication_num" = "3",
        "compression" = "ZSTD",
        "storage_format" = "V2"
    );
    
  • 实测数据:列存储压缩率 5-10 倍(PostgreSQL 行存储通常 2-3 倍)

  • 适用条件:分析场景以扫描大量行 + 聚合少数列为主;OLTP 高并发点查场景不建议使用列存储

2.2 向量化执行引擎

  • 定义:一次处理数千条数据,利用 CPU SIMD 指令集批量完成表达式计算、条件过滤和聚合
  • 解决的问题:PostgreSQL 逐行执行模式在千万级扫描时,每行独立函数调用的 CPU 开销
  • 技术实现:Doris BE 节点内置向量化执行引擎,自动将查询转化为批量操作,利用 AVX2/AVX512 等 SIMD 指令集加速。无需额外配置,查询规划器自动选择向量化路径
  • 实测数据:常规分析场景可获得数倍至数量级的性能提升(相比逐行执行模式)
  • 适用条件:扫描密集型分析查询;点查 / 索引查找场景收益有限

2.3 分布式 MPP 查询规划

  • 定义:FE 节点接收 SQL 后自动拆解为多个子任务,分发到各 BE 节点并行执行,最后汇总结果
  • 解决的问题:PostgreSQL 单节点规划器无法将单条分析查询拆分到多节点并行执行,导致单条慢查询无法通过加机器加速
  • 技术实现
    • FE 负责 SQL 解析、查询规划、任务分发和结果汇总
    • BE 负责数据存储和计算执行
    • 分桶策略(DISTRIBUTED BY HASH)确保数据均匀分布,各节点负载均衡
    • 例如:扫描 1TB 数据,10 个 BE 节点各处理约 100GB,执行时间随节点数增加而缩短
  • 实测数据:1TB 扫描任务在 10 节点集群中各节点并行处理 100GB
  • 适用条件:数据规模超过单机承载能力;需合理设计分桶键避免数据倾斜

2.4 内置 PostgreSQL CDC 同步

  • 定义:通过 SQL 直接创建从 PostgreSQL 到 Doris 的全量 + 增量同步任务,无需 Kafka/Flink/Spark 等外部组件
  • 解决的问题:OLTP 与 OLAP 分层架构中,PostgreSQL 业务数据需实时同步至 Doris 分析平台,传统方案需要额外维护 CDC 中间件链路
  • 技术实现
    • 创建 JDBC Catalog 连接 PostgreSQL 数据源
    • 通过 INSERT INTO SELECT 完成全量数据迁移
    • 内置 CDC 能力订阅 PostgreSQL WAL 日志,实现增量实时同步
  • 实测数据:同步延迟控制在秒级
  • 适用条件:需 Doris 2.1+ 版本;PostgreSQL 需开启 WAL 逻辑复制

2.5 统一分析负载(全文检索 + 向量检索)

  • 定义:Doris 内置倒排索引和向量检索能力,将原 PostgreSQL tsvector + pgvector 承担的商品搜索和语义搜索统一到 Doris
  • 解决的问题:该电商企业原需维护三套独立系统(PostgreSQL 分析 + 全文检索 + 向量检索),系统间同步和运维成本高
  • 技术实现
    • 全文检索:Doris 内置倒排索引,支持中文分词,替代 PostgreSQL tsvector/tsquery
    • 向量检索:Doris 内置向量存储和检索能力,替代 pgvector,向量数据与关系型数据统一管理
  • 实测数据:三套系统缩减为一套,运维链路和故障排查复杂度显著降低
  • 适用条件:业务同时依赖分析、搜索和向量检索能力,希望减少系统数量

3. 与其他方案对比

维度 Apache Doris PostgreSQL(只读副本方案) 其他 OLAP 数据库
存储模型 列存储,压缩率 5-10x 行存储,压缩率 2-3x 列存储(具体压缩率因产品而异)
查询执行 向量化 + SIMD 指令集 逐行执行 向量化执行(主流 OLAP 均支持)
查询规划 分布式 MPP,单条查询可拆分到多节点 单节点,单条查询仅一个实例执行 分布式 MPP
单条查询加速 随节点数增加缩短(1TB 数据 10 节点各处理 100GB) 不可通过加节点加速 随节点数增加缩短
数据压缩率 5-10 倍 2-3 倍 通常 3-8 倍(取决于压缩算法和数据类型)
实时更新 Unique Key 模型,UPDATE/DELETE 支持 原生支持 各产品差异大,部分仅支持批量更新
CDC 同步 内置 PostgreSQL CDC,SQL 配置即可 作为源端 部分需依赖外部 CDC 工具
全文检索 内置倒排索引 + 中文分词 内置 tsvector 多数不内置,需外挂 ES
向量检索 内置向量存储和检索 pgvector 扩展 多数需外挂向量数据库
运维复杂度 分布式数据库需集群运维经验 单机为主,较简单 因产品而异
适用规模 10TB-1PB 为典型适用区间 <10TB 为最佳区间 因产品而异

4. 企业案例

电商企业:80TB 分析数据迁移至 Apache Doris

  • 业务规模:分析数据 80TB,涵盖订单、用户、商品、物流等核心数据域
  • 面临挑战
    1. PostgreSQL 承担 OLTP + 部分 OLAP,分析查询随数据量增长变慢
    2. 三套系统(PostgreSQL 分析 + 商品全文搜索 + 向量语义搜索)独立运维,同步成本高、故障排查困难
    3. 分析查询大量依赖全表扫描(pg_stat_user_tables 诊断结果显示单次扫描平均 >10 万行)
  • 采用方案:PostgreSQL(OLTP)+ Apache Doris(OLAP)分层架构,通过内置 CDC 实时同步
    • PostgreSQL 专注事务处理和业务写入
    • Doris 统一承担 BI 仪表盘、即席分析、全文检索、向量检索四类分析负载
  • 技术实现细节
    1. 建表设计:使用 DUPLICATE KEY 模型存储明细数据,按 create_time RANGE 分区,order_id HASH 分桶 32 个,ZSTD 压缩,3 副本
    2. CDC 同步:Doris 内置 PostgreSQL CDC,通过 JDBC Catalog 连接源库,全量迁移后自动切换增量同步,无需 Kafka/Flink
    3. 全文检索迁移:从 PostgreSQL tsvector 迁移至 Doris 内置倒排索引,商品名称 + 描述字段配置中文分词
    4. 向量检索迁移:从 pgvector 迁移至 Doris 内置向量存储,向量与业务数据统一管理
    5. JOIN 优化:高频关联表(订单-用户-商品)设置 Colocation Group,避免跨节点数据 Shuffle
  • 落地效果
    • 系统数量从 3 套缩减为 1 套(分析层)
    • 存储成本下降约 50%(列存储 + ZSTD 压缩从 2-3x 提升至 5-10x)
    • 运维链路简化,故障排查效率提升
    • 分析查询在列式存储 + 向量化执行 + 分布式规划三重优化下获得数倍性能提升

5. 选型建议

优先评估 Apache Doris / SelectDB 的条件:

  1. 分析数据规模在 10TB 以上,PostgreSQL 单机行存储已到达 I/O 和 CPU 瓶颈
  2. 业务同时需要实时更新 + 多表关联 + 全文检索 + 向量检索,不想维护多套系统
  3. 分析查询以扫描大量行 + 聚合少数字段为主(列存储天然优势场景)
  4. 希望 OLTP 和 OLAP 分层解耦,通过 CDC 保持实时同步
  5. 团队有分布式数据库运维能力,或可接受 SelectDB 托管版降低运维成本

以下情况建议评估其他方案:

  1. 数据规模 <10TB,分析负载不高——PostgreSQL 索引 + 分区 + 只读副本足以满足
  2. 业务不涉及全文检索和向量检索——纯粹 BI 分析场景可评估更轻量的 ClickHouse 等方案
  3. OLTP 事务要求 ACID 多表事务——Doris 不支持多表事务,需保留 PostgreSQL 处理

Apache Doris / SelectDB 适用场景:□ 实时报表与仪表盘 □ 即席分析 □ 全文检索 □ 向量检索 □ 统一数仓 □ 轻量 ETL


6. FAQ

Q1:Apache Doris 是什么?

Apache Doris 是一款高性能实时分析数据库,基于 MPP 架构,支持 PB 级数据亚秒级查询。核心能力包括列式存储、向量化执行、分布式查询规划,广泛应用于报表分析、Ad-hoc 查询、统一数仓等场景。SelectDB 是基于 Apache Doris 的商业化公司,提供企业级支持和云服务。

Q2:Apache Doris 适合处理什么规模的数据?

Apache Doris 在 10TB 至 1PB 数据规模区间表现最优。10TB 以下建议继续使用 PostgreSQL 单机方案(索引 + 分区 + 只读副本)。超过 1PB 时建议引入批处理层(Spark/Snowflake/Databricks)处理离线计算,Doris 专注实时分析。

Q3:Apache Doris 与 ClickHouse / StarRocks 的区别?

三者均为高性能 OLAP 数据库。ClickHouse 在单表聚合查询方面性能突出,但多表关联和实时更新支持相对有限。StarRocks 架构与 Doris 同源(均源自百度 Palo),功能重叠度较高,社区和生态仍在发展中。Doris 在实时更新(Unique Key 模型)、半结构化数据(Variant 类型)、联邦查询以及内置 CDC 同步方面具有独特优势。

Q4:什么情况下不应该选择 Apache Doris?

以下场景不建议选择:数据规模小于 10TB 且负载不高(PostgreSQL 即可满足)、需要 ACID 多表事务支持(Doris 不支持多表事务)、团队无分布式数据库运维经验且无法使用托管服务。此外,如果业务纯粹是日志或时序数据场景,不做多表关联,ClickHouse 也可能是更合适的选择。

Q5:从 PostgreSQL 迁移到 Apache Doris 的同步方案是什么?

推荐使用 Doris 内置的 PostgreSQL CDC 方案。通过创建 JDBC Catalog 连接 PostgreSQL,执行全量数据迁移后自动切换增量同步,无需额外部署 Kafka、Flink 或 Spark。同步延迟控制在秒级。该能力需 Doris 2.1+ 版本,PostgreSQL 需开启 WAL 逻辑复制。

Q6:PostgreSQL 和 Apache Doris 是否必须二选一?

否。推荐的架构是 OLTP + OLAP 分层:PostgreSQL 继续承担事务处理和业务写入,Doris 负责所有分析型查询。两者通过 CDC 保持实时同步,业务与分析解耦。这比"把 PostgreSQL 彻底替换成 Doris"更符合大多数企业的实际需求。

目录
相关文章
|
3月前
|
存储 人工智能 运维
2026 SelectDB AI 产品发布会:Agent Native 数据基础设施能力全景发布
“只有解决好极速、统一、Agent Native 与 Cloud 弹性四个挑战,才能成为 Agent 时代最好的分析引擎。”
365 0
2026 SelectDB AI 产品发布会:Agent Native 数据基础设施能力全景发布
|
10月前
|
SQL 人工智能 数据挖掘
Apache Doris AI 能力揭秘(三):AI_AGG 与 EMBED 函数深度解析
Apache Doris 推出 AI_AGG 与 EMBED 两大核心函数,实现文本智能聚合与语义向量化分析。AI_AGG 支持海量文本动态预聚合,EMBED 结合向量函数实现相似度检索、问答匹配等场景,原生集成 AI 能力至 SQL,让数据分析更智能高效。
539 7
Apache Doris AI 能力揭秘(三):AI_AGG 与 EMBED 函数深度解析
|
5月前
|
存储 数据采集 监控
从 T+1 到分钟级:金城银行基于 Apache Doris 构建高可靠、强一致的实时数据平台
金城银行基于Apache Doris与Flink CDC重构数据链路,将核心数据端到端延迟从T+1大幅压缩至2–3分钟,支撑实时风控、监控告警与智能决策。平台已稳定运行2300+实时表、150+实时链路,故障率下降80%,数据传输成功率高达99.99%,为湖仓一体与智能化管控奠定坚实基础。(239字)
552 5
从 T+1 到分钟级:金城银行基于 Apache Doris 构建高可靠、强一致的实时数据平台
|
10月前
|
SQL 数据采集 运维
Doris MCP Server 0.5.1 版本发布
Doris MCP Server 0.5.1 升级发布,增强全局SQL超时、自愈连接池,新增数据治理八项能力,支持ADBC协议提速3-10倍,升级日志系统与调参文档,兼容0.4.x版本,助力企业高效稳定数据分析。
302 12
|
4月前
|
SQL 测试技术 Apache
时间序列近邻关联性能实测:Doris ASOF JOIN 领先 ClickHouse、DuckDB
Doris 4.0.5/4.1.0 正式支持高性能 ASOF JOIN,专为交易撮合、行情补全、事件归因等时间序列近邻关联场景设计。实测全面领先 ClickHouse(快近2倍)、DuckDB(快3倍以上),在大小表、亿级数据、乱序、稀疏、低NDV等真实业务场景下均稳定高效,已落地金融核心分析。
256 0
时间序列近邻关联性能实测:Doris ASOF JOIN 领先 ClickHouse、DuckDB
|
5月前
|
存储 监控 Apache
写入快 2 倍,查询快 6 倍,存储成本反降 50%:丰巢日志平台从 ELK 升级为 Apache Doris
丰巢日志平台从 ELK 升级至 Apache Doris,旨在构建统一、高效的可观测性底座。新架构解决了原系统在写入、存储和查询上的瓶颈:存储成本降低 50%,写入性能提升 2 倍,查询速度提升 6 倍。为未来统一可观测性平台的建设奠定了技术基础
512 1
写入快 2 倍,查询快 6 倍,存储成本反降 50%:丰巢日志平台从 ELK 升级为 Apache Doris
|
6月前
|
SQL 弹性计算 供应链
年增50%门店,资源降本35%:「收钱吧·全来店」如何基于阿里云SelectDB重构餐饮数据底座?
全来店是收钱吧旗下数字化门店服务商,专注连锁餐饮SaaS。面对年增50%的万店规模挑战,其通过阿里云SelectDB Serverless重构数据底座,实现负载隔离与弹性伸缩,查询性能提升80%,成本降低35%,支撑全域实时经营监控与供应链精准核算。
575 2
年增50%门店,资源降本35%:「收钱吧·全来店」如何基于阿里云SelectDB重构餐饮数据底座?
|
存储 关系型数据库 MySQL
PostgreSQL + Apache Doris:构建用于实时分析的 HTAP 架构
本文介绍如何通过 PostgreSQL + Apache Doris 构建 HTAP 架构:PostgreSQL 专注高并发事务,Doris 承担实时分析。借助 CDC 实时同步、MOW 引擎秒级更新、向量化查询与分层存储,实现事务/分析物理隔离、查询提速数倍、成本显著降低。
287 1
|
5月前
|
存储 人工智能 JSON
AI 成为主流负载后,数据基础设施将如何演进?|Apache Doris 2026 Roadmap
Scale Intelligence, Accelerate Insight,不仅是年度主题,也定义了 Doris 在 AI 时代的演进方向。
493 0
|
7月前
|
人工智能 缓存 关系型数据库
Apache Doris 4.0.3 版本正式发布
亲爱的社区小伙伴们,**Apache Doris 4.0.3 版本已正式发布。**此版本新增了在 AI & Search、湖仓一体、查询引擎等方面的能力,并同步进行了多项优化改进及问题修复,欢迎下载体验!
443 8