论坛首页 综合技术论坛

大规模监控数据等time-series类型数据,本地NOSQl处理方法

浏览 4909 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (10)
作者 正文
   发表时间:2010-06-23   最后修改:2010-06-23
   我们在不断尝试、优化后,完成了处理大规模time-series类型数据如监控数据的NOSQL数据持久化组件,下面我们详细介绍一下这个组件:
  开发语言: JAVA
  适用的场景
      1、每秒能处理的数据项数量庞大,如2万个
      2、对查询响应时间要求苛刻,如在1亿条记录中查询任意一个数据项符合要求的1000条记录耗时不超过5秒
      3、断电等意外情况下,最多允许丢失最近一小时内的数据
      4、有限的内存要能容下尽量多的数据项,如1G内存能容下40-50万个数据项
      5、数据项的值插入频率快,如每秒一次
      6、数据项的值只有新增,没有更新操作(time-series类型数据的特点)
      7、无法部署数据库
   一个典型应用案例
      XX项目是要把某企业一个很重要的业务支撑平台的内部结构可视化出来,该软件平台每天处理的交易笔数超过1000万,导致该软件平台内部设计复杂,成千上万个重要数据指标在不断变化中,把这些数据指标可视化出来面临的第一个难题就是数据的保存,这上万个指标不但要能显示当前值,还要能保存最近一周的所有历史数据,更麻烦的是数据采集的频率要越快越好,最好小于3秒,项目在开始时候采用的是mysql、oracle等数据库,但效果不好,系统也不稳定。想用内存数据库,当时可能它还不那么流行,并且是否能满足这样的项目还未知。后面在采用我们的SFD组件后,数据持久化这一块基本上满足了,并且还带来一个意外的改变,就是该项目组尽量追求功能的组件化开发。
     示意图

     如果大家有碰到类似的场景,也许可以和我们联系,我们的联系方式email: yunweitec@yahoo.cn;
QQ: 1054618780

{
名称解释
数据项:它由一个唯一key和多个值组成,如成功交易笔数就是一个数据项:
              key: 12432211411
              值:   {10:00:00 1001} {10:20:00 2021} {11:00:00 6020} …
}
   发表时间:2010-06-24  
东西是不错,不过是广告贴?
0 请登录后投票
   发表时间:2010-06-25  
怎么感觉是自己实现了个数据库?
0 请登录后投票
   发表时间:2010-06-26  
只是一个解决方案,还是广告贴。。。。
0 请登录后投票
   发表时间:2010-06-28  
1. 改进你的IO性能。
2. 改进的数据库设计 可以满足你的查询要求。
3. 优化你的数据传输过程
0 请登录后投票
   发表时间:2010-06-29   最后修改:2010-06-29
    感谢很多朋友的关注,其实我们要解决的问题领域和RRDtool一样,我们只是在现有轮子没法跑高速公路的前提下,做了点尝试,在这里感谢很多朋友在使用后提出的建议。
0 请登录后投票
   发表时间:2010-06-30  
感觉解决的不是数据的查询优化,而是数据采集的优化监控,但是如果是大量数据的查询比如上亿条数据怎么解决监控查询了?
0 请登录后投票
   发表时间:2010-07-02  
这个是实时数据库的长项,比如用PI
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics