数仓模型-实时数据中台

模型演进:维度建模-> 宽表模型 -> dw模型 -> 子域模型

数据模型

  • 子域模型:借鉴领域建模,面向领域对象,将稳定的子域业务逻辑进行沉淀,每一个子域都是dwd,再将所有的子域dwd合成数据中台dwd,最后再分流到各业务线,进行业务逻辑的开发。
  • 事实表:事务事实表、周期快照事实表、累计快照事实表
  • 实时数据中台:抽取业务系统中的公共部分成为服务,具备了对于前台业务变化及创新的快速响应能力。
    • 中台既要全链路统一拉横,又要做薄
    • 中台覆盖率80%,提效降本,快速支撑业务
    • 子域要稳定,不包含业务逻辑,且能支撑总台覆盖不了的需求

技术架构

  • 离线和实时独立链路
    • 离线和实时完全两条独立的链路,互不相关,维护两套逻辑,对数成本高

  • 批流一体1.0 事务表离线和实时链路 (case:交易订单)
    • 借用Hologress统一存储,可以把离线数据加速到Hologress,在接口层统一。
    • 离线和实时逻辑独立计算,实时计算增量,离线计算历史全量,但不适用于累计快照表。

  • 批流一体2.0 累计快照表离线和实时链路 (case:物流订单)
    • 累计快照表(物流订单)更新周期长,state存储压力大,用增全量合并思想进行状态更新。
    • 实时计算增量,离线计算历史全量,但实时更新状态依赖离线全量,不用重算。

模型优化

  • 消息保序 --last_value

--字段级别去重
create view tmp_v1 as 
select id
   ,last_value(type,name) as name --关闭回撤 + -
-- ,first_value(type,name)as name 
from  order_souce
group by id

--行级别去重
create view tmp_v1 as 
select *
from
(
   select *
       ,row_number() over(partition by id order by gmt_modified desc) as rn
     --,row_number() over(partition by id order by proc() desc) as rn
   from  order_souce
)
where rn=1
  • 批流混合 --udaf

create view order_source as 
select id
   ,last_v(type,name) as name --关闭回撤 + -
-- ,first_v(type,name)as name 
(
    select id,name,'ri' as type
    from ri
    union all
    select id,name,'df' as type
    from df
)
group by id

纯实时流的DAG:

批流混合的DAG:

  • 双流join

--双流join
select   a.id
        ,a.name
        ,b.age
from a
left join b
on a.id= b.id

--双流join优化
select id
       ,last_value(if(type='t1',name,null)) as name     --last_v关闭回撤 + -
       ,last_value(if(type='t2',age,null))  as age
from
(    
    select 't1' as type
           ,id
           ,name
           ,'-' as age 
    from  a
    union all
    select 't2' as type
           ,id
           ,'-' as name
           ,age 
    from  b
    on a.id = b.id
)
group by id

uinon all的DAG:

  • 外键乱序

    • 为什么会产生乱序

解决方案:

1.全链路保序
2.外键关联前置

保障方案

  • 主备链保障

  • 全链路压测

全链路三档(5倍、10倍、15倍)灌数,压测input rps和output rps峰值

  • 报警监控
    • input rps<=0 监控
    • 延迟>3min 监控
    • 10分钟内checkpoint 成功次数增长波动<1
    • failover次数>0 监控

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值