最近在做一个统计项目的改造,对两张日志表进行分析统计,最后形成报表。这两张日志表现在每天的数据量在1亿左右,大小在30G左右,对我有用的数据大概为20G。因为这量个日志是成上升趋势的,所以我设计出来的系统应该能应对每张表2亿的数据量。
之前的做法是用了3台节点机,1台主控机,来进行统计。节点机分id段分别统计(比如node1统计id为1-5千万,node2统计5千万-1亿,1亿到1.5亿,这些都是可以配置的,并且如果数据量超过1.5亿,增加一台机器再配置一下就ok了),最后由主控机完成汇总。改造原因无非是代码很乱,出错不断,统计很耗内存等。
仔细的分析了一下需求,其实逻辑不复杂,基本就是根据不同的字段来分段,去重,count等,这样的数据量显然不能直接用sql去group by,count什么的。我想起之前看过berkeley db的一些知识,berkeley db的本地文件数据库以及它的大吞吐量,很适合这个场景。
我的做法:两张日志表可以在spring中起两个job,分段读取(可以每次读50W的),每次读取到数据后把数据分给不同的handler去处理相应统计,统计的临时数据记入bdb,数据读取完毕后再分别汇总各自的数据,存入数据库。为了防止意外情况,对于月统计的临时数据入数据库。bdb的数据每天统计完了清理掉。
这样做的好处:
1.减少读写数据库的频率,我们的数据库是很多应用共用,频繁的读取数据库会对其他应用有影响。
2.充分利用本地硬盘,能够避免oom的情况。
3.还没有测试过,不过个人认为一台机器8G的内存应该就可以搞定,这样就节省了3台机器。
4.在想……
本人水平有限,欢迎有经验的同学提出宝贵意见。谢谢!
分享到:
相关推荐
【SaaS模式下大数据量统计框架的研究和实现】 在当今数字化时代,SaaS(Software as a Service)模式已经成为企业服务的重要组成部分,它提供了一种高效、经济的软件使用方式。然而,随着SaaS应用的广泛普及,大...
首先,我们需要理解数据量统计的基本概念。数据量通常指的是数据库中所有表占用的磁盘空间总和,包括索引、数据行、日志文件等。统计数据量可以帮助我们识别哪些表占用了大量空间,以便进行进一步的分析和优化。 **...
达梦数据库数据量统计.sql
这些方法可以用来解决大数据量的问题,例如数据字典、判重、集合求交集等问题。 Bloom Filter Bloom filter 是一种空间效率高、查询效率高的数据结构,可以用来实现数据字典、判重、集合求交集等操作。其原理是...
数据库统计表数据量和条数 在数据库管理中,了解数据库中的表数据量和条数非常重要。不同的数据库管理系统,如MySQL、Oracle和DM(达梦数据库),都提供了不同的方法来统计表数据量和条数。本文将对这些方法进行...
标题中的“网络测速和数据量统计”是指网络性能监测和流量分析的一种技术,它能够帮助用户了解他们的网络连接速度以及在一定时间内消耗的数据量。这样的工具对于优化网络使用、监控流量异常、评估网络服务提供商的...
MongoDB大数据处理权威指南 MongoDB大数据处理权威指南 MongoDB大数据处理权威指南
Oracle统计一天内每小时的数据量。在某小时内有数据,该时间段会被统计出来;该时间段内没有交易,该时间段不会被统计出来,默认为0即可
作品介绍:物流可视化平台/大屏看板/图表统计/运单跟踪/物流数据统计/物流看板/运单量统计/axure原型/大屏数据可视化/动效可视化数据大屏看板 axure原型演示地址:...
统计代码,实现数1.个人设置里进行手机绑定CSDN账户 奖励50分 (右上角设置-账户安全-手机绑定) 2.完成任务送若干分积分 http://task.csdn.net/ 3.上传有效资源获取积分(上传非法,广告资源用户,将被扣除一定积分,...
大数据量、海量数据处理 大数据量、海量数据处理是一种常见的数据处理问题,在近年来随着数据量的急剧增加,如何高效处理大数据量数据成为一个热门话题。以下是对大数据量处理的一些常见问题和解决方法的总结: 1....
1. 表空间的增长:当删除大量数据后,表空间可能会变得很大,从而导致查询变慢。解决方法是缩小表空间,使用 alter table XXXX move 语句可以释放表空间。 2. 索引的无效:当释放表空间后,表的行号 rowid 会发生...
在大数据分析领域,R语言因其强大的统计计算能力和丰富的可视化库,成为了数据科学家和分析师的首选工具之一。本主题“R语言:大数据分析中的统计方法及应用”深入探讨了如何利用R语言来处理、分析和解释大规模数据...
总的来说,"教师工作量统计系统"利用Spring、Spring MVC和Mybatis三大技术栈,实现了对教育机构教师工作量的系统化管理,通过自动化统计和报表展示,为教育管理层提供了有力的数据支持。这样的系统不仅减轻了人工...
7. **数据库操作**:如果数据量很大,可能需要将数据存储在数据库中,如MySQL或PostgreSQL。Java有JDBC(Java Database Connectivity)用于与数据库交互,可以使用预编译的SQL语句来高效地插入和查询数据。 8. **...
在IT行业中,工作量统计是一项至关重要的任务,它涉及到项目管理、资源规划、成本控制以及时间管理等多个方面。"工作量统计.zip"这个文件包显然包含了一份名为"工作量统计.xlsx"的Excel电子表格,这样的文件通常用于...
MATLAB 实验报告统计软件及应用实验 1 数据统计量及其分布检验 本实验报告的目的是熟练掌握利用 MATLAB 软件计算数据统计量、分布检验和统计作图方法。实验中需要完成以下四个任务: 1. 熟练掌握利用 MATLAB 软件...
综上所述,开发“职工工作量统计系统”涉及到C++中的类设计、数据结构、数据库操作、时间管理、GUI编程、统计计算、异常处理、测试和代码组织等多个方面,需要程序员具备全面的技能和扎实的编程基础。