• 请不要在回答技术问题时复制粘贴 AI 生成的内容
KJH
V2EX  ›  程序员

Doris 增量数据刷新方案

  •  1
     
  •   KJH · 8h 24m ago · 465 views

    各位巨佬,真没招呀,在线拜求

    目前我们引入了 Doris 实时数仓,版本 2.1 ,FE 8c 32g BE 16c 32g

    数据处理流程是 数据进入到 Doris 后开始使用 Doris 的 insert into select 进行 dwd dwm dws ads 等层级的数据处理。

    由于都是业务数据,不是纯新增数据,所以都是主键模型。

    某个业务维护的相关表需要先根据 update_time 统计出关联的业务字段,写入到一张增量表中,最后由增量表作为驱动表。也就是在一个大的多表 JOIN sql 中,增量表作为 build 端,利用 RUNTIME FILTER 下推过滤大表数据从而实现表数据更新

    现在问题就出现在这个增量驱动表上,增量表数据很少可能也就 3 万~5 万区间,5 分钟跑一次,每次全量刷新。

    然后利用 ANALYZE TABLE 刷新增量表的统计新的,我没想到的是,增量表数据进去了以后,统计信息居然需要等 3 分钟在执行才能统计到条数,

    这也就导致 Doris 优化器 CBO 在利用统计信息判断 join 的时,增量表如果统计信息是 0,或者健康度太低,就不会走 RF ,从而进行全表扫描,导致OOM !!

    我尝试过使用 /*+ SET_VAR(disable_join_reorder=true) / 或/+ LEADING(a b c) */ 都不行,效率太差,内存使用更高,原本能成功的,用了这两个优化后失败率更高了。

    现在是我每两个小时执行一次增量表统计信息收集,然后 DORIS 的 ETL 任务能抗两小时,两小时后就开始报错 OOM 了。

    所以想请教下各位巨佬,Doris 不是各个大厂都在推么,难道没这种问题么?还是我使用方式错了,我人要麻了。。。

    4 replies    2026-05-15 16:36:13 +08:00
    BlueBing
        1
    BlueBing  
       8h 16m ago   ❤️ 1
    帮楼主顶一个,顺便问下,选型没考虑 starorcks 吗
    KJH
        2
    KJH  
    OP
       7h 52m ago
    @BlueBing 没用阿里云
    Jim2Chen
        3
    Jim2Chen  
       3h 40m ago   ❤️ 1
    帮楼主顶一个
    KJH
        4
    KJH  
    OP
       2h 49m ago
    没大佬来哇 。。完啦
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2946 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 11:26 · PVG 19:26 · LAX 04:26 · JFK 07:26
    ♥ Do have faith in what you're doing.