美文网首页
03. SQLboy 快照和全量总是成双成对的

03. SQLboy 快照和全量总是成双成对的

作者: 冰菓_ | 来源:发表于2023-09-15 14:16 被阅读0次

最近做一个需求,让我想起了之前在一本书上看到的一句话 快照和全量总是成双成对的
我借着这个需求来讲一下为什么要如此设计?

背景

  1. 我们有一张业务同步过来的事实表,可以是增量形式,也可以是全量形式,但是作为数仓人员,我们很难去了解业务的具体含义,如果是增量形式,我们还需要挖掘业务,想要做一张快照表,实施起来是麻烦的,容易出问题的,后续业务变更,数仓的变更逻辑也是复杂的,一般是建议业务同步过来的事实表最好是全量形式(离线数据)
  2. 增量数据抽取到数仓,并不需要复杂的merge操作,直接基于更新时间排序取最新一条数据即可,这样即是当日全量的数据.
  3. 快照表是对事实表业务过程生命周期的描述,一个具体过程的完结,也即是一条快照表数据的完结,快照表相对与当日全量表保存了业务过程的完整生命周期(状态)
  4. 需求是,我们要计算当日发放金额,当日发放金额,当日过期金额,累积剩余金额(累积发放金额 - 累积发放金额 - 累积过期金额),由于一条数据的状态会发生变化,如果是只计算当日的数据,事实上并没有什么问题,但是历史数据没有被修正,基于增量部分的计算方式会导致历史的累计指标出现问题的(修正历史数据) (涉及状态的累计指标怎么建模)

设计

dwd 全量/快照
dws 退化时间 按人(物) + 维度聚合(明确主键) + 各种度量(当日/当月/累积值)
adm 聚合dws层逻辑

遗留

  1. 半累积指标,就是在算钱的时候,状态的变更导致需要刷取历史数据,但是太久的数据我们是不需要刷取的,状态大致只会变更最近3个月的数据,这样情况,我们只需要刷取最近3个月的数据即可,上面给的例子其实也不会更改太久的历史数据,但是他要算累积数据,不太好取一个中间累积值

相关文章

  • redis-aof-rdb

    持久化 RDB 快照 全量 在服务线上请求的同时,Redis还需要进行内存快照,内存快照要求Redis必须进行文件...

  • 13_redis_持久化

    Redis持久化有两种方式:快照和AOF日志快照是全量备份,是内存数据的二进制序列化形式,在存储上非常紧凑AOF是...

  • Redis持久化之RDB

    Redis持久化之RDB RDB (快照)持久化:保存某个时间点的全量数据快照。 在配置文件中进行配置 以save...

  • Redis-如何持久化保证高可用

    RDB--备份数据库状态 Redis通过RDB(快照)完成持久化,即保存某个时间点的全量数据快照save:阻塞Re...

  • Redis深度历险-AOF持久化

    Redis深度历险-AOF持久化 Redis提供两种持久化方式AOF和RDB,RDB是快照形式持久化全量数据、AO...

  • redis持久化机制总结

    Redis 的持久化机制有两种,第一种是快照,第二种是 AOF 日志。 区别 快照是一次全量备份,AOF 日志是连...

  • redis009---持久化

    Redis 的持久化机制有两种,第一种是快照,第二种是 AOF 日志。快照是一次全量备份,AOF 日志是连续的增量...

  • Redis-持久化

    持久化 1.快照(一次全量备份)(默认的持久化策略) 2.AOF日志(连续的增量备份) 3.Redis4.0混合持...

  • redis持久化(RDB和AOF)

    redis提供了三种持久化的方案,将内存中的数据持久化写入磁盘。 1、RDB(快照)持久化:保存某个时间点的全量数...

  • redis系列(四):AOF持久化

    RDB是存储了当前时间节点的数据库全量快照。AOF持久化是通过保存redis所执行的所有命令来记录数据的。 就比如...

网友评论

      本文标题:03. SQLboy 快照和全量总是成双成对的

      本文链接:https://www.haomeiwen.com/subject/xknvvdtx.html