首页 > 代码库 > Hive架构层面优化之一分表

Hive架构层面优化之一分表

场景:某个日志表数据量很大,而且访问该表的作业比较多,造成耗时比较长;

解决方案:将用的比较少/不常用的字段剥离出去;

 

案例:

日志表trackinfo,每天约有2亿数据量,有5000个作业按天访问,每天的日志数据量有可能会继续添加下去,那么很可能就满足不了要求(每添加10%的数据量作业大概要添加20分钟);如何解决数据的增长呢?

 

方案:

将邮件营销EDM,网盟Union从trackinfo表中剥离出来,trackinfo表大概能降到1.5亿左右,这样作业的执行时间大概可以减少40-50分钟时间,表edm_union_track只存放邮件营销EDM、网盟的数据Union,这个表的数据只有大概5个作业按天访问,抽取出来的好处之一是,这几种类型的数据统计时不再需要去整个大表中查询,提高性能,同时也降低了大表的数据量;不剥离出来的话,5000个作业每次都会到表中去过滤,而这0.5亿的数据对这些作业来说是没用的。