一、什么是拉链表
针对订单表、订单商品表,流水表,这些表中的数据是比较多的,如果使用全量的方式,会造成大量的数据冗余,浪费磁盘空间。
所以这种表,一般使用增量的方式,每日采集新增的数据。
在这注意一点:针对订单表,如果单纯的按照订单产生时间增量采集数据,是有问题的,因为用户可能今天下单,明天才支付,但是Hive是不支持数据更新的,这样虽然MySQL中订单的状态改变了,但是Hive中订单的状态还是之前的状态。
想要解决这个问题,一般有这么几种方案:
第一种:
每天全量导入订单表的数据,这种方案在项目启动初期是没有多大问题的,因为前期数据量不大,但是随着项目的运营,订单量暴增,假设每天新增1亿订单,之前已经累积了100亿订单,如果每天都是全量导入的话,那也就意味着每天都需要把数据库中的100多亿订单数据导入到HDFS中保存一份,这样会 极大的造成数据冗余,太浪费磁盘空间了。
第二种:
只保存当天的全量订单表数据,每次在导入之前, 删除前一天保存的全量订单数据,这种方式虽然不会造成数据冗余,但是 无法查询订单的历史状态,只有当前的最新状态,也不太好。
第三种:
&

拉链表是一种数据仓库设计中的存储方式,用于记录事物从开始到当前的所有历史变化。文章介绍了全量导入和简单增量导入的局限性,提出了拉链表作为解决方案,它既能避免数据冗余,又能保留历史状态。内容包括拉链表的制作过程,如数据导入、增量表创建、历史记录表建立和数据更新等步骤。
1万+

被折叠的 条评论
为什么被折叠?



