• 数仓中的全量表,增量表,拉链表,流水表,快照表


    预热:

    我们先从几个物理概念入手理解什么是流量,存量,增量

    (1)存量:系统在某一时点时的所保有的数量;

    (2)流量:是指在某一段时间内流入/出系统的数量

    (3)增量:则是指在某一段时间内系统中保有数量的变化

    (4)增量=流入量--流出量

    (5)本期期末存量=上期期末存量+本期内增量

    正题

    一般公司只是简单分成 全量表,增量表,和拉链表。所以重点关注如下三个表就OK了。

    全量表:每天的所有的最新状态的数据。

    (1)全量表,有无变化,都要报
    (2)每次上报的数据都是所有的数据(变化的 + 没有变化的)

    增量表:新增数据,增量数据是上次导出之后的新数据。
    (1)记录每次增加的量,而不是总量;
    (2)流量是指在一定时间内的增量;
    (3)流量一般设计成增量表(日报-常用、月报);
    (4)流量和存量的区别:流量是增量;存量是总量;
    (5)增量表,只报变化量,无变化不用报

    拉链表

    (1)记录一个事物从开始,一直到当前状态的所有变化的信息;

    (2)拉链表每次上报的都是历史记录的最终状态,是记录在当前时刻的历史总量;

    (3)当前记录存的是当前时间之前的所有历史记录的最后变化量(总量);

    (4)存量是在某一时刻的总量;

    (5)存量一般设计成拉链表(月报-常用、日报);

    (6)流量和存量的区别:流量是增量;存量是总量;

    (7)封链时间可以是2999,3000,9999等等比较大的年份;拉链表到期数据要报0;

    (8)拉链表和增量表的共同点:表结构基本一样。

    在有些情况下,为了保持历史的一些状态,需要用拉链表来做,这样做目的在可以保留所有状态的情况下可以节省空间。  

    拉链表适用于以下几种情况吧   数据量有点大,表中某些字段有变化,但是呢变化的频率也不是很高,业务需求呢又需要统计这种变化状态,每天全量一份呢,有点不太现实,   不仅浪费了存储空间,有时可能业务统计也有点麻烦,

    这时,拉链表的作用就提现出来了,既节省空间,又满足了需求。 

    关于拉链表设计的案例:可以看看下面的博客

    http://www.cnblogs.com/wujin/p/6121754.html  

    https://blog.csdn.net/mtj66/article/details/78019370

    http://www.jianshu.com/p/799252156379  

    http://lxw1234.com/archives/2015/04/20.htm

    前段时间,我同事还问我拉链表好处。这个也是面试的时候,我常问求职者的。

    流水表:对于表的每一个修改都会记录,可以用于反映实际记录的变更

     区别于拉链表: 

    1. 拉链表通常是对账户信息的历史变动进行处理保留的结果,流水表是每天的交易形成的历史;
    2.  流水表用于统计业务相关情况,拉链表用于统计账户及客户的情况

     其实有的公司是这样定义的:

     按照每天存放的数据以及是否按天分区可以分为增量表,全量表和快照表

     

  • 相关阅读:
    【欧拉质数筛选法 模版】
    【归并排序 逆序对 模版】
    【 lca倍增模板】
    【LSGDOJ 1333】任务安排 dp
    【NOIP2013】火柴排队
    【USACO Feb 2014】Cow Decathlon
    【USACO08NOV】奶牛混合起来Mixed Up Cows
    【LSGDOJ 1351】关灯
    【USACO】干草金字塔
    【USACO】电子游戏 有条件的背包
  • 原文地址:https://www.cnblogs.com/wqbin/p/10223988.html
Copyright © 2020-2023  润新知