两者主要在是否会记录每一个修改、用途以及是否可以很快的还原客户记录等三方面存在区别。
一、是否会记录每一个修改
拉链表:拉链表根据拉链粒度的不同,实际上相当于快照,只不过做了优化,去除了一部分不变的记录而已。
流水表:流水表对于表的每一个修改都会记录,可以用于反映实际记录的变更。
二、用途
拉链表:拉链表常用于统计账户及客户的情况。
流水表:流水表常用于统计业务相关情况。
三、是否可以很快还原客户记录
拉链表:通过拉链表可以很方便的还原出拉链时点的客户记录。
流水表:流水表虽然也可能做得到,但是效率不行,或者需要人工参与。
扩展资料
拉链表是针对数据仓库设计中表存储数据的方式而定义的,顾名思义,所谓拉链,就是记录历史。记录一个事物从开始,一直到当前状态的所有变化的信息。
拉链表的作用:
1、数据量比较大。
2、表中的部分字段会被更新,比如用户的地址,银行利率,订单的状态等。
3、 需要查看某一个时间点或者时间段的历史快照信息,比如,查看利率在历史某一个时间点的状态。
4、变化的比例和频率不是很大,比如,总共有1000万的会员,每天新增和发生变化的有10万左右。
5、如果对这边表每天都保留一份全量,那么每次全量中会保存很多不变的信息,对存储是极大的浪费
拉链历史表,既能满足反应数据的历史状态,又可以最大程度的节省存储。
参考资料来源:百度百科-拉链表
拉链表,记录每条信息的生命周期,一旦一条记录的生命周期结束,就重新开始一条新的记录,并把当前日期放入生效开始日期。
如果当前信息至今有效,在生效结束日期中填入一个极大值( 如 9999-99-99 )。
拉链表适合于:数据会发生变化,但是大部分是不变的。(即:缓慢变化维)
比如:用户信息会发生变化,但是每天变化的比例不高。如果数据量有一定的规模,按照每日全量的方式保存效率很低。
通过,生效开始日期<=某个日期 且 生效结束日期>=某个日期,能够得到某个时间点的数据全量切片
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)