栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Hive生产最jia实践

Hive生产最jia实践

原始数据 + 增量数据 如何做增量 探讨的是原始数据会变化

描述:原始数据有update_time的情况(此时你可以存最大的update_time到zk,或者更简单操作每次都跑 近1小时 的数据)

情况1:update_time存入zk:好处是每次增量的数据都能保证是: 新增和更新 两种状态,不会是未变化的数据

full join (不支持map join)
改写为
1.原始数据(left join 增量数据 where 增量数据为空) union all 增量数据 (新增 更新) 【推荐】
2.原始数据 直接 union all 增量数据 ,再使用 row_number() 取第1条

情况2:update_time不存入zk:你的增量数据就会有三类,新增 更新 未变化(有点类似滑动窗口,比如每5分钟跑的是每30分钟内的数据,那么同一份数据是会被处理6次的)

原始数据(left join 增量数据 where 增量数据为空) // 这里其实也是会把 增量数据 中未变化的数据给过滤掉的 ,只是说最终 这部分数据会从后面的 增量数据 中补过来
union all
增量数据(新增 更新 未变化)

综上,对于Hive的增量同步: 1.原始数据会发生变化,感觉把 update_time 存入zk的意义不是很大,比较推荐的做法是: 原始数据(left join 增量数据 where 增量数据为空) union all 增量数据 (新增 更新) 2.原始数据不会发生变化: 可以把 update_time 存入zk,当然了原始数据不发生变化用上面这种方式也是OK的,可以看自己在维护zk会不会比较麻烦
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/747229.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号