[发明专利]大数据量批处理系统和大数据量批处理方法有效
申请号: | 201210480063.2 | 申请日: | 2012-11-22 |
公开(公告)号: | CN103020151A | 公开(公告)日: | 2013-04-03 |
发明(设计)人: | 张成 | 申请(专利权)人: | 用友软件股份有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京友联知识产权代理事务所(普通合伙) 11343 | 代理人: | 尚志峰;汪海屏 |
地址: | 100094 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据量 批处理 系统 方法 | ||
技术领域
本发明涉及计算机技术领域,具体而言,涉及一种大数据量批处理系统和一种大数据量批处理方法。
背景技术
目前大型的联机事务处理系统(OLTP)中,衡量其系统性能好坏的指标,往往是一些关键核心算法在大数据量应用场景下的处理速度,而处理速度的快慢直接影响整个系统的性能。
一个大型的信息化系统,往往都有一些自己比较复杂业务处理逻辑、业务处理算法,当这些复杂的业务处理在小数据量应用场景下效率问题往往都被忽视,因为这种场景下系统响应速度是比较快的,而在大数据量情况下可能就会出现系统处理性能的瓶颈,长时间无响应或者直接宕机等严重情况,那么其中比较共性和核心的问题就是:第一,如果数据量过大,程序一次性读到内存中可能造成系统内存溢出;第二,如果不是一次性读取数据到内存中,循环读取一条一条数据在进行处理,则算法由批处理变成了循环单个处理,也必定大大影响系统的性能。对此,现有技术使用后台分页技术来解决这样的问题。
现有的分页技术都是在数据库端实现分页技术,一种是直接利用SQL语句来进行分页,例如第一次取第1-50条记录,第二次取第51-100条记录等等依次类推,这种方式虽然达到了每次读取有限的记录加载到内存中,但是数据库端的压力依然很大,因为每次SQL语句的查询都是对结果集全纪录的扫描,处理速度并没有优化;另外一种是通过代码来实现分页,例如JAVA中利用ResultSet结果集进行循环遍历来实现,第一次遍历第1-50条记录并取出。第二次遍历第1-100条记录,但只取出第51-100条记录,这种方式依然存在每次预先查询所有记录的缺点;其次还有一种通过预先查出将满足条件结果集的主键PK,然后存入临时表并编上序号,之后通过序号一批批读出PK集合,在利用PK集合到数据库中查询出数据,这种方式虽然解决了前面的问题,但是由于要一批批从数据库临时表中读取数据,在高并发的情况下,数据库端的压力还是非常大,并且会有多次中间件单元到数据库的连接、查询、数据网络传输,在窄带环境中,效率依然存在一些瓶颈,另外没有合理的利用中间件单元资源。最后上述三种方案都没有提出加载数据到内存中后,如何用一种通用的方式进一步优化数据处理的速度,都只是考虑解决整个算法中数据加载的瓶颈,而往往大数据量批处理算法往往有查询加载和数据处理持久化两个过程,并且分页处理如何自动适配多数据库,这些都是问题。
所以,如何解决大数据量加载过程中中间件单元资源和数据库资源的合理使用,如何使分页底层自适应多种数据库,如何提出一整套解决方法和系统,防止中间件单元内存溢出、减轻数据库端处理压力、降低中间件单元和数据库之间网络传输数据量,这是亟待解决的技术问题。
发明内容
本发明正是基于上述问题,提出了一种大数据量批处理技术,能够防止中间件单元内存溢出、减轻数据库端的处理压力。
根据本发明的一个方面,本发明提供了一种大数据量批处理系统,包括:中间件单元、一级缓存装置和二级缓存装置,其中,所述中间件单元用于向所述一级缓存装置发送查询请求,以及接收来自所述二级缓存装置的二级分页主键集合,根据所述二级分页主键集合向数据库查询待处理数据并在对所述待处理数据进行计算处理后,向所述数据库发送持久化数据请求;所述一级缓存装置用于向所述数据库查询符合所述查询请求的主键集合,以及根据所述主键集合生成一级分页主键集合并将所述一级分页主键集合返回至所述二级缓存装置;所述二级缓存装置用于根据所述一级分页主键集合生成二级分页主键集合并将所述二级分页主键集合返回至所述中间件单元。
通过上述技术方案,在中间件读取数据的过程中加入两级缓存结构,大大优化数据读取,解决了中间件内存溢出的技术问题。
在上述技术方案中,优选的,还可以包括:第一设置单元,设置所述一级缓存装置的一级缓存阈值;所述一级缓存装置还用于在所述主键集合的数据量小于等于所述一级缓存阈值时,直接将所述一级分页主键集合返回至所述二级缓存装置,以及在所述主键集合的数据量大于所述一级缓存阈值时,建立并插入临时表,对所述临时表进行分页并将获取的主键返回至所述二级缓存装置。
如果只有一级缓存结构来解决中间件内存溢出的问题,则必须对每页主键数据量做更细粒度的控制,当采用了两级缓存结构之后,由于一级缓存返回的只是主键,每一个主键只是一个固定长度的字符串,占用内存较少,所以可大大提高一级缓存结构每页的主键数据总量。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于用友软件股份有限公司,未经用友软件股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210480063.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种变径套及对刀仪
- 下一篇:一种数控车床的多功能防护门