如何利用spark、hadoop等技术实现关系型数据库的数据快速汇总?

0
现状:一个全国性的业务系统,每月底定时从各省数据中心抽取数据,集中存储到中央数据中心。中央数据中心采用oracle存储数据,有多张表的记录条数超过10亿条。每月初采用oracle sql来汇总上月数据,需要几个小时甚至更多的时间。
需求:利用各种大数据技术和工具,将汇总的时间控制在2小时内甚至几分钟。
条件:假设服务器充足,硬盘和内存也充足。
问题:请各位大神给出一个大致的解决思路
已邀请:
1

Bob - 同程旅游大数据+BI 架构师 2016-12-29 回答

1.使用sqoop进行定时的数据抽取工作,并存放到hive数据仓库中,使用hive的hql进行数据汇总。这个方案中可以使用hive on tez 或者hive on spark进行计算性能提速
2.使用sqoop+kylin。用sqoop进行数据同步,然后直接载入到hive数据仓库中,配置kylin的cube自动处理机制。
0

chusheng - 长城 2016-12-30 回答

感谢,目前也用 hive这块。
0

MarsJ - 大数据玩家~DS 2016-12-30 回答

Bob大神已经回答得很清楚了。补充一下:
1,Sqoop+Hive+Spark的方式会比MR的方式更快,根据实际需求的计算分析时间决定;
2,Hive部分要有明确的数据层次结构;例如抽取过来的原始数据为一层,经过预处理的为第二层,可以形成宽表用于后续的挖掘分析用;
3,Zepplin目前也是一个不错的可视化项目,可以在其上使用Shell/Spark/Hive/Pig/Kylin等各种工具进行数据分析结果的可视化,现在用得最多的是和Kylin配合使用。
0

seng - 从事BI、大数据、数据分析工作 2016-12-30 回答

10亿条的记录,Oracle还是能支持的住的, 分区加并行 理论上就能解决问题。
具体还要看瓶颈在那里,分析系统的Oracle的瓶颈一般在IO, 可以多考虑, 其他的话CPU够的话可以考虑使用压缩。
 

要回复问题请先登录注册