[原]使用算法放大用户点击坐标数据的粒度

    最近在公司昨做了一个关于用户点击行为的各种统计,其中包括最直观的 点击热点图。   样貌如下: 

    

    我是做后端的,前端肯定直接用写好的库,其中用到的生成热点图的类库是 heatmap,详情参看 github。在此感谢作者。

    关于这个heatmap 还是有一些坑的,之后我在写一个关于heatmap的文章。下面介绍另外的一个问题,就是数据量的问题。一个网站的页面用户的点击量是很大的,即使只有一天。因为用户的每一次点击都会被记录下来。这些数据不论存储在关系数据库里面 还是 nosql里面 都是不小的。效率问题很严重。

    如果这个页面被点击了100W次,再除去坐标重复,因为存储的时候会有一个坐标计数,也就是同一个坐标被点击多次,只有一个记录,但是即使这样,数据量依旧很大,将近100W条记录。这在程序里面直接读出来然后交给JS再画到canvas画布上,服务器内存再大也是吃不消的,

    举个栗子:如果PHP被开的memory limit 内存限制是8G的话,也就能取出10-20W条记录,就爆掉了。而且没有大数据字段,字段数据量都不大。

    比如我们当时的记录是 url:xxxx , x_y:100,200 , count 10 , time:xxxxxx 。就是这样一些简单的字段。

    所以解决方案有两种:

Continue reading

Code | wwpeng | | (1) |