近期运营出报表,查询的数据量为15年的数据量,涉及的表及表中记录数如下图所示:


wKioL1bYGsSyhlvLAABoCHfTJSA382.png

    

    刚开始的时候在MySQL中进行查询汇总,选择第一个数据量最小的表,发现MySQL 出现内存溢出,数据库使用的是腾讯云上的一台CDB,内存大小为24GB。后来将数据上传到hdfs上使用impala(数据格式为PARQUET)来查询,发现效果要好于MySQL,我们的impala是一个3节点集群,内存8GB,存储500GB  SSD。查询耗时如下:

wKioL1bYHCfQqnaZAABwrzDnciY433.png


wKiom1bYG76gHTliAAA1UTZP38c578.png

    

wKioL1bYHFGx_igyAABtakpCsk8636.png



wKiom1bYG-7Q5wz-AAA83kXfxs8833.png



wKiom1bYG_qgFDwMAAA-8zijufk736.png


从查询的过程可以看出,impala在处理较大的数据集时有着MySQL所不具备的高性能。如果在MySQL中对5亿条记录做汇总,可能需要很高的配置了,而且运行时间不见得比impala短。