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

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

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

@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 推荐的这篇文章真心不错

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