目前hadoop上面每天都会有新的acitivity数据进来,一开始公司要求界面能提供最近
一个月,两个月的数据给用户查询。 现在是这样做的,用hive在后台每天计算之前30
天和60天的数据,主要是group by, 过程大概是几个小时,然后把计算结果导入到
cassandra,然后用户查询的时候只需要传入查的是30天的还是60天的数据就很快可以
查到了。
现在公司有个新的要求,就是要求用户还可以选择多个category(最终显示结果是按照
category分类的)查询,以前group by的话就直接把所有category都算好了,然后直接
显示在界面。如果允许用户在界面上面check多个category再查询,如果还是按照之前
的方法,那么就得提前计算好所有的combination of category的数据,显然是不现实
的。如果不提前做计算,直接把raw data扔到cassandra,一个是数据量太大,不知道
用API计算的时候,内存是否能够用,再一个时间上面也无法保证几秒之内就能算出来。
请问这种情况应该怎么办? 用spark或者storm, Flink取代hive在raw data上面做带
group by的查询会很快吗? raw data大概是有几个billion rows,大小大概是几个T,
spark/storm/flink能做到十几秒之内得出查询结果吗?