首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > 高性能WEB开发 >

大(海)量数据采集以及处理方式?该如何解决

2013-07-16 
大(海)量数据采集以及处理方式?目前做一监控系统,底层数据上传多尔快,据粗略统计,在100个设备同时工作时,

大(海)量数据采集以及处理方式?
    目前做一监控系统,底层数据上传多尔快,据粗略统计,在100个设备同时工作时,两分钟内有160万条数据上传,目前采用的数据采集程序数据延迟时间太长(包括数据从底层读出并将其解析保存到数据库),目前系统上线在即,相当担心数据采集这一块,而且web页面需要显示监控对象的实时状态,对页面的压力也是相当大。大家有做过类似项目的?或遇到过此类难题的?望能提供些解决思路,万分感谢,望版主给定下哈。
[解决办法]

引用:
另外不知道为啥底层设备上传的服务器IP和端口内置了,只能用一台服务器进行接收


即便这样,其实用硬件负载均衡也可以实现后端实际上多台服务器进行处理。

另外,可以考虑用内存数据库或MemCache来处理标签对应问题,只要某标签有3个以上探测器检测到,应该就可以大致模糊定位了吧。
[解决办法]
可以用一個A表保存 采集数据, 写个A表触发器, 更新到插入B表中
[解决办法]
N个mangoDB+N个mysql,mangoDB接收实时数据,再通过ETL后进入关系型数据持久,mysql中到一定时间清掉,或转到一个历史库做归档。
[解决办法]
我的建议采用两级处理,第一级建立队列,所有数据扔到队列里,等待执行,第二季为数据存储,放弃使用关系数据库,用无事务控制的nosql数据库,比如mongodb,hbase等,插入效率极高。利用消息队列做缓冲,是程序的处理线程时间变短。数据是不是可以分优先级,优先级高的可优先执行存储,优先级低的排队。当然这个可以扩展到几级。
页面上可以采用flex的数据自动推送技术,也可以用node.js这样的技术来搞定

热点排行