java - mysql单表流水500W数据多维度统计的方案
问题描述
现在项目中有张流水表结构大概如下id sdkVersion jarVersion countryCode imei createTime
以前的需求是按sdkVersion,jarVersion,countryCode的分组求总数和imei排重后的总数,大致sql如下:
select sdkVersion,jarVersion,countryCode,count(*),count(distinct imei) from xxx where createTime = ’xxxx-xx-xx’group by sdkVersion,jarVersion,countryCode
查出前一天的所有数据然后汇总到一张表里,结构大概如下
id sdkVersion jarVersion countryCode count(*) count(distinct imei) createTime
然后现在的需求是要任意纬度的组合查询,就是可以group by sdkVersiongroup by jarVersiongroup by countryCodegroup by sdkVersion,countryCode等等各种组合,如果按以前的每日汇总方案的话就要为不同的纬度组合建立很多个表,有什么好的方案可以解决这种问题?或者是用专门的统计框架可以解决的?
问题解答
回答1:楼主可以去看看PipelineDB流式数据库
回答2:apache kylin, 亚秒级olap
回答3:每日汇总的话,实时性要求并不高,500W 记录也还在可以处理的范围内,视图 + 定时计划,可以满足要求,不需要建多表。题主最好能说明一下有什么瓶颈或者痛点,毕竟 mysql 是个成熟产品,换用新锐技术有一定风险。
回答4:写存储过程,每天定时跑就行了
相关文章:
1. dockerfile - 为什么docker容器启动不了?2. dockerfile - 我用docker build的时候出现下边问题 麻烦帮我看一下3. docker - 各位电脑上有多少个容器啊?容器一多,自己都搞混了,咋办呢?4. 在应用配置文件 app.php 中找不到’route_check_cache’配置项5. docker 下面创建的IMAGE 他们的 ID 一样?这个是怎么回事????6. javascript - 编程,算法的问题7. 我在centos容器里安装docker,也就是在容器里安装容器,报错了?8. java - 为什么第一个线程已经释放了锁,第二个线程却不行?9. angular.js使用$resource服务把数据存入mongodb的问题。10. docker - 如何修改运行中容器的配置

网公网安备