十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这期内容当中小编将会给大家带来有关big data设计中的拉链表是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
成都创新互联是网站建设专家,致力于互联网品牌建设与网络营销,专业领域包括成都网站设计、成都网站制作、外贸网站建设、电商网站制作开发、微信平台小程序开发、微信营销、系统平台开发,与其他网站设计及系统开发公司不同,我们的整合解决方案结合了恒基网络品牌建设经验和互联网整合营销的理念,并将策略和执行紧密结合,且不断评估并优化我们的方案,为客户提供全方位的互联网品牌整合方案!
隔行如隔山,这句话在飞速的时代发展中向着两个极端发展 , 1 真的如隔山, 2 这个山如同一张纸, 越来越多的 DB 开始负责一些 BIG DATA的工作在很多单位也是存在的,而了解BIG DATA 和 DATA warehouse 的一些设计,对当前和未来的工作都是多多益善的。
今天来说说其中的一种big data设计的表类型,拉链表。
首先的说说拉链表到底是个什么东西,DB 一般听到一种表,可能会联想到某种物理方面的技术,如临时表, template table , 继承表,等等, 今天的拉链表本身不是一项物理技术,而是一种逻辑技术。通过某种设计,来达到某些目的的,人为的方法。
拉链表在什么地方用,显然严格的说拉链表是要用到在 BIG DATA ,data warehouse 这一类的地方是他的起源,当然可以在研究将其用到 DB 中的某些设计(今天就不说了)。
在BIG DATA中,有一种需求是要根据各种维度,对历史时期的数据进行处理,而达到一个历史数据统计分析的目的,而这就会出现一个问题,数据量的问题。我们举一个例子,我们有一个用户的加入购物车物品的数量记录表,(后面简称购物车表)客户可能今天将一些产品放到购物车,而过了些日子就将他们删除了,当然其中的原因只能是客户自己知道,而公司是不是要通过这样的变化来找点什么事情做,要不闲着闲着就下岗了。通过购物车的历史变化而可以得出很多维度的信息,让后就可以去促销,当然也可以和XX公司来个杀熟。
OK 废话了那么多,拉链表的有一个定义吧
一个通过记录历史数据,并将其变化的状态进行体现,压缩存储空间,方便进行历史同期分析,或阶段性分析的数据存储和处理的方式就可以叫拉链表。
而叫拉链表也是有原因的, 1 存储了开始和结束的时间(针对每行记录和业务逻辑绑定) 2 开始和结束的时间收尾相接,形成链式机构 3 避免存储每天的全量记录。
举例:我们要统计每个月客户在自己的购物车添加的东西的数量和删除的数量。(至少我们可以知道他们的购买的欲望和钱包之间的可能的关系)
以MPP架构为例
1 当月第一天的前一天的购物车表的全量数据
全量数据表中包含至少3非业务数据的字段,开始时间 和 结束时间,开始时间可以是记录导入到data warehouse 的时间,也可以是本身记录在业务表插入的时间,具体的和业务分析以及你拥有的资源挂钩, 以及记录最后一次的操作方式 I D U。
2 进行当月天数的拉链表分区表的设计,分区键一般是 可以是开始时间,或符号业务逻辑的字段
3 通过某些手段获取第二天变化过的购物车表的记录,并存储进临时表
将第二天业务表中,插入的,UPDATE ,delete 的操作(有可能是逻辑操作,这里假设是物理操作) I D U 三种操作
4 通过之前一天的数据变化历史表,与当天记录的历史的变化数据进行 left join 运算,然后得出当天 Delete 和 update 的操作记录以及没有变化的记录,然后在加上当天insert 操作的记录,就得到了第二天的整体的业务表。
5 通过这样的方式可以得到一整个月的数据变化,(也可以在DATA WAREHOUSE 的 业务历史表根据记录行的最后一次的操作状态(可以是物理,也可以是逻辑),来将已经删除的记录排除到下一次数据的历史分区表之外)
通过这样的方法,就可以将一个月所有客户的购物车的变化曲线图,或者删除的最多的产品,在或者某个地域删除购物车,或某类产品被添加的购物车的当天,当月最大量等等都统计和分析出来。
这样做的好处
1 我们是否可以将每天的数据都同步到 数据仓库一次,答案是当然,但问题
1.1 购物车是动态的,同步数据的时候虽然可以使用从库等进行数据的抓取,但数据量大的情况,处理起来还是比较笨拙的。同时数据量的问题不知道是否考虑过,每天一个全量的业务表.......
好处: 拉链表通过获取变动的数据来进行数据的生成,这明显降低了业务系统的压力,以及网络,存储等多系统的负担,大部分工作在数仓本身就完成了
1.2 数据量的问题,虽然根据上面的方法,已我们有10亿条记录,每天更改的记录在200万,则我们需要存储的记录的数字(以30天为例), 200万* 29天 + 1天 10亿,针对上面的每天一个切片的方式存储的数据量对比 30天* 10亿 + 要节省很多存储空间。
举例这是我们12月1 日的全量表
下面地记录就是拉链表,其中记录了每条记录地在每天地变化,通过初始表+拉链表,可以将这一个月地所有地数据变化进行相关维度地分析,或生成新的时间维度的数据表。
上述就是小编为大家分享的big data设计中的拉链表是什么了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注创新互联行业资讯频道。