首页 > 代码库 > Hive架构层面优化之一分表
Hive架构层面优化之一分表
场景:某个日志表数据量很大,而且访问该表的作业比较多,造成耗时比较长;
解决方案:将用的比较少/不常用的字段剥离出去;
案例:
日志表trackinfo,每天约有2亿数据量,有5000个作业按天访问,每天的日志数据量有可能会继续添加下去,那么很可能就满足不了要求(每添加10%的数据量作业大概要添加20分钟);如何解决数据的增长呢?
方案:
将邮件营销EDM,网盟Union从trackinfo表中剥离出来,trackinfo表大概能降到1.5亿左右,这样作业的执行时间大概可以减少40-50分钟时间,表edm_union_track只存放邮件营销EDM、网盟的数据Union,这个表的数据只有大概5个作业按天访问,抽取出来的好处之一是,这几种类型的数据统计时不再需要去整个大表中查询,提高性能,同时也降低了大表的数据量;不剥离出来的话,5000个作业每次都会到表中去过滤,而这0.5亿的数据对这些作业来说是没用的。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。