02
17
14
09
请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

老师可以讲一下存储hive数仓的详细步骤吗?

按照代码里面的逻辑,每次存进dw.dws_user_action_tags_map_all执行的是全量覆盖,怎么样实现标签流水表和标签主题表的增量存储呢?如果是多个job协同的话,应该怎样调度呢?

正在回答 回答被采纳积分+3

插入代码

1回答

小简同学 2022-07-28 15:38:23

同学你好,执行存储到hive的函数是在 Utils/HiveUtils 里面 hiveSave() , 这个方法。只要将 SaveMode.OverWrite,改为 SaveMode.Append 就可以进行增量存储了。

https://img1.sycdn.imooc.com//szimg/62e23cc609bac86c19250856.jpg

0 回复 有任何疑惑可以回复我~
  • 提问者 Crazy酱汁 #1
    那如果是Append的话,这个表不是存在大量的重复数据吗?工作中不会影响这个表的性能吗?如果才能拉链表的设计可以吗?
    回复 有任何疑惑可以回复我~ 2022-07-28 18:05:40
  • 小简同学 回复 提问者 Crazy酱汁 #2
    这很正常,行为表每天都有大量的数据进来,同一个用户会有大量的行为,用户标签表同样也是同一个用户每天计算出得标签可以相同,可以不同,但查询的时候,肯定不会从这两张表直接查询的,还要通过离线的聚合计算,这些计算会很费时,通常在深夜计算前一天的数据,然后写入到业务主题表里以及缓存里,前端查询的时候就是直接读取这些业务主题表的,不会去读取流水表的,所以性能不会有什么问题
    回复 有任何疑惑可以回复我~ 2022-07-28 22:32:20
  • 提问者 Crazy酱汁 回复 小简同学 #3
    那老师这个表后期如何维护呢? 随着数据量增加会应该会出现同一个人同一个标签存在多条记录,以及冗余数据怎么删除呢?
    回复 有任何疑惑可以回复我~ 2022-08-13 16:19:51
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号