数仓项目:拉链表技术解决缓慢变化维问题

   日期:2024-12-26    作者:zzmahg 移动:http://oml01z.riyuangf.com/mobile/quote/41983.html

1、缓慢变化维简介

  • 缓慢变化维,简称SCD(Slowly Changing Dimensions)
  • 一些维度表的数据不是静态的,而是会随着时间而缓慢地变化(这里的缓慢是相对事实表而言,事实表数据变化的速度比维度表快)
  • 这种随着时间发生变化的维度称之为缓慢变化维
  • 把处理维度表数据历史变化的问题,称为缓慢变化维问题,简称SCD问题

以下为解决缓慢变化维问题的几种办法:

  • 保留原始值
  • 改写属性值
  • 增加维度新行
  • 增加维度新列
  • 添加历史表

SCD解决方案 - 保留原始值
某一个属性值绝不会变化。事实表始终按照该原始值进行分组。例如:

  • 出生日期的数据,始终按照用户第一次填写的数据为准
  • 用户的地址,产品的描述信息,品牌信息等等;

2.需要查看某一个时间点或者时间段的历史快照信息,例如:

  • 查看某一个产品在历史某一时间点的状态
  • 查看某一个用户在过去某一段时间内,更新过几次等等

3.变化的比例和频率不是很大,例如:

  • 总共有1000万的会员,每天新增和发生变化的有10万左右

方案一:快照每一天的数据到数仓

该方案为:

  • 每一天都保存一份全量,将所有数据同步到数仓中
  • 很多记录都是重复保存,没有任何变化

方案一:MySQL到Hive数仓代码实现

MySQL&Hive初始化

  • 1、在MySQL demo库中 创建表
 
  • 2、在Hive中 demo库创建表
 

增量导入12月20日数据

  • 1、MySQL数据库导入12月20日数据(4条数据)

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号