(35)用户维度表(拉链表)

用户表中的数据每日既有可能新增,也有可能修改,但修改频率并不高,属于缓慢变化
维度,此处采用拉链表存储用户维度数据。
1 )什么是拉链表

 2)为什么要做拉链表

 

 3)拉链表形成过程

 4)拉链表制作过程图

 

5 )拉链表制作过程
步骤 0 :初始化拉链表(首次独立执行)
1 )建立拉链表

 2)初始化拉链表

 

 

步骤 1 :制作当日变动数据(包括新增,修改)每日执行
1 )如何获得每日变动表
a. 最好表内有创建时间和变动时间( Lucky!
b. 如果没有,可以利用第三方工具监控比如 canal ,监控 MySQL 的实时变化进行记录
(麻烦)。
c. 逐行对比前后两天的数据,检查 md5(concat( 全部有可能变化的字段 )) 是否相同 (low)
d. 要求业务数据库提供变动流水(人品,颜值)
2 )因为 ods_user_info 本身导入过来就是新增变动明细的表,所以不用处理
a )数据库中新增 2020-06-15 一天的数据
b )通过 Sqoop 2020-06-15 日所有数据导入
mysql_to_hdfs.sh all 2020-06-15
c ods 层数据导入
hdfs_to_ods_db.sh all 2020-06-15
步骤 2 :先合并变动信息,再追加新增信息,插入到临时表中
1 )建立临时表

 2)导入脚本

 

 步骤 3:把临时表覆盖给拉链表

1 )导入数据
hive (gmall)>
insert overwrite table dwd_dim_user_info_his
select * from dwd_dim_user_info_his_tmp;
2 )查询导入数据
hive (gmall)>
select id, start_date, end_date from dwd_dim_user_info_his limit 2;
(注:拉链表数据,两表合并,解决数据增量问题,解决hive数据不能更新的问题,不停合并,覆盖,实现数据更新)
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大数据开发工程师-宋权

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值