注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

zjcjack的博客

 
 
 

日志

 
 

亿级数据的统计系统架构  

2012-04-04 23:01:48|  分类: 数据挖掘 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
公司的统计系统经历了两次比较大的架构变动:

1.数据直接入库的实时分析->

2.数据写入日志文件再归并入库的非实时分析(及时性:天)->

3.数据写入日志文件归并入库,建立不同维度的缓存表, 结合数据仓库(及时性:小时)

当前的系统状况:

数据源:Goolge Analytics / WebServer Log

数据库记录:5亿+

单表最大记录:1.2亿+

服务器数量:三台

1.日志存储服务器

2.日志分析服务器

3.数据库存储服务器

架构示意图:



日志存储服务器:普通时段每秒钟记录2000+条访问

1.从CDN下载Web server日志

2.对点出的日志进行直接存储

日志分析服务器:

从GA/WebServer得到数据后,使用Python多进程并行分析,分析后的数据直接写入数据库中。

数据库存储服务器:

存储引擎:MySQL Myisam、InfoBright(Community)

为了提高查询效率,建立有不同维度的数据表,InfoBright引擎存储相对稳定、不会进行变更的数据,因为Community版进行数据变更成本很高,你们懂得

关于日志分析:

Python的gzip模块能够直接读取压缩过的日志进行分析,相当节省磁盘空间。

由于分析过程使用大量的CPU资源,使用Python的多进程充分利用多核CPU。由于GIL的缘故,多线程不要考虑了。

另外用到了psyco,仅仅多了两行代码,分析效率成数十倍的提高。

关于查询性能:

当前最慢的查询时间应该是跨年度的分组查询,小于20秒。这里其实可以通过再次归并,增大记录粒度的方式优化到更快,只是有这种查询需求的并不多,这个时间也能接受。

另外值得一提的是InfiniDB,实测效果相当惊人,比InfoBright还要快好多倍,只是数据压缩比并不高,并且一些SQL并不支持,此引擎可以列入下次的架构调整中
  评论这张
 
阅读(538)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017