新手问题 统计平台思路分析

easonlovewan · 2016年03月30日 · 最后由 xwf286 回复于 2016年06月14日 · 3601 次阅读

现在要做一个统计app端的不同维度的数(赞,评论,点击,浏览等。。。),设计了三张表hour_table, day_table, sum_table,对每篇文章- 每小时,每天 -,以及总量都进行了统计,安卓在调用我这边的api的时候,吐给我一大串儿json格式的数据,我该去怎么处理执行?比如:先存hour_table,再存day_table,最后存sum_table,以上操作该怎么去定义个异步任务执行呢(没用过异步任务)? 或者先存库后计算比较好,还是先计算后存库比较好? 这里边儿还会涉及到一个问题是,- 今天吐的数据可能是之前的数据? -这种情况该怎么处理(吐给我的数据有个文章Id和维度数) 第一次做统计平台,望大神指点思路和方法?

共收到 11 条回复

@luikore 的资料很赞,没想到还有专门针对统计的详细的设计资料。

楼主自己造统计平台工作量大。

不如使用 Google Analytic 等统计工具,然后对相应的动作(赞、评论、点击、浏览)埋点,更加节省时间。

4楼 已删除
5楼 已删除

#1楼 @luikore 资料看的不太懂,不过感觉绝对是干货,谢谢😁

#8楼 @hooopo 炮哥的输出太赞了, 当初就是看这三篇帖子入得门

#8楼 @hooopo

Hive、Elasticsearch什么的就要排除了

真没打错吗?

#10楼 @_samqiu 没有。。

可能对Real Time的理解不一样吧,比如GA就不算是Real Time类型的应用,因为虽然查询结果是实时出来的,但结果和插入的event之间有延迟,并不能马上看到真实的数据结果。而GA的real-time report那部分算是真的Real Time,因为你访问就可以在real time report里看到在线人数的增减。

Hive,没有行级的插入删除更新操作,只能batch insert。理论上,基于hadoop的都不适合做real-time分析,hadoop其实是做offline, batch processing的……

Elasticsearch查询速度确实很快,但插入速度是硬伤。

这有一篇Metabase写的Data Warehouse选型的文章,优缺点分析的非常详细:「Which data warehouse should you use?

按题主描述,默认都是数据 Append-Only

第1个要考虑的问题是需要不需要原始数据,如果只存结果的话,一个表处理下就好啦,如果需要保存原始数据再看下一个。 第2个要考虑的问题是数据量,数据量千万级以内直接 Mysql 就行,查询要求比较高的时候离线处理可以再战一段时间,如果数据超过千万级时候,再看下一个。 第3个要考虑的就是大数据的方案了,一种是时序数据库(InfluxDB,OpentsDB),第二种是 OLAP(Kylin,Mondrian,Druid)。 时序数据库解决这种问题更优雅一些,一般大家的运维经验普遍有限,不太敢用于生产,一般都只用于数据不太重要的监控系统。 OLAP 是比较主流的方案,你提到的场景是维度转换中的一种,查询维度可以自由转换(时间的年月日时分秒,省份的省市县等等)。

#11楼 @hooopo 推荐的这篇文章真心不错

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册