一种基于增量归集的大数据量的数据查询方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一种基于增量归集的大数据量的数据查询方法
【摘要】针对目前煤矿业务系统中,由于各种安全生产的相关数据过于庞大,导致在数据前端展示时导致系统的响应时间和性能以及用户的体验度较差的问题,本文设计了一种基于增量归集的大数据量的数据查询方法。该方法通过定期把数据增量归集到中间结果表中的方式,提高了大数据量查询的性能。应用结果表明,该系统的设计方式可提高数据处理速度,降低数据存储空间,为查询结果的展示提供了坚实的数据基础支撑。
【关键词】增量归集;数据查询;大数据;定期;中间结果
引言
目前,在煤矿业务系统中,业务数据量非常庞大[1];每次进行业务数据查询或统计时,持续时间比较长,消耗资源比较大。传统的查询和统计方式,是直接从业务数据表中进行处理,不仅影响应用系统的业务处理性能,而且查询和统计性能非常差。
为了提升查询或统计性能,采用定期将查询结果定期的增量归集到中间数据表的方式,在归集查询结果时,由于数据量比较大,为提升归集效率,不能采用全量归集的方式,而采用增量归集的方式来处理。这种方式,每次进行查询或统计时,只需要从中间数据表中进行展现即可,而不需要在查询过程中进行即时计算和归集,大大减少了查询的时间,降低了资源消耗,提高了查询效率。
1.系统设计
本文提出一种基于增量归集的大数据量的数据查询方法,通过定期把数据增量归集到中间结果表中的方式,提高大数据量查询的性能[2]。本文把基于单个数据表的增量结构称为增量单元(Increment Unit);把增量数据的捕获规则称为增量包(Increment Package)。一个增量包由一个或者多个增量单元组成[3]。
一种基于增量归集的大数据量的数据查询方法,其特征在于包括以下四个步骤:A:增量规则设计;B:设置增量捕获调度执行计划;C:执行增量数据定期归集;D:执行数据统计结果查询。
在步骤A中,为实现定义增量数据捕获规则,它包括以下内容:
(1)定义增量单元
进一步说明,增量单元的结构包括增量单元对应的数据表、增量的内容字段、数据表的主键字段、数据表的时间戳字段,其中数据表的时间戳字段只用于时间戳模式的增量数据捕获模式[4]。
(2)定义增量包
进一步说明,增量包中需要指定增量数据的捕获模式,本发明中提供的捕获模式包括快照表模式、时间戳模式、触发器模式、数据库日志模式。
(3)启用增量包并做增量初始准备
进一步说明,在做增量初始过程中,要根据增量单元的结构,创建增量数据表,增量数据表的结构除了包括增量单元对应的内容字段和主键字段,还包括时时间戳字段。
(4)增量订阅
进一步说明,在订阅处理中要指定订阅的用途,订阅的增量包,订阅同步过程中需要生成的存储过程的名称及参数。
进一步说明,一个增量包可以由一个或多个增量单元组成,一个增量包可被多次订阅;增量单元、增量包、增量包的实体结构关系所示。
在步骤B中,定义调度计划,设置调度自动增量归集的任务,并设置任务执行的频率和时间周期以及相关的执行策略[5]。
在步骤C中,定期执行增量数据归集,它包括以下的步骤:
根据步骤A中定义的增量捕获规则捕获增量数据;
把增量数据加载到步骤A(3)中定义的增量数据表中;
根据步骤A中增量订阅的信息,生成增量数据同步到查询中间结果表中的存储过程;
执行步骤(3)中创建的存储过程,创建查询中间结果表,并把步骤(1)中捕获的增量数据同步到查询中间结果表中。
在步骤D中,输入查询统计的条件,从步骤C(4)中创建中查询中间结果表中分页取出数据进行展现。
2.系统优点
与现有技术相比,本文的优点是:
A.可以把复杂的数据统计查询过程包分解成两个过程,统计计算归集和实时查询;
B.把费时的统计计算归集过程放在后台运行,并且归集过程只归集增量数据;
C.大大提高了大数据量统计查询的执行效率。
本系统的设计中心思路是把复杂数据的统计查询过程分解为统计计算归集和实时查询;统计计算归集过程通过计划任务调度在后台执行,并且中间数据结果的归集进行增量归集,实时查询只实现从中间结果表中分页取出数据进行展现。
3.实际应用
应用系统A中对业务BizA的数据进行统计查询。实例特征:BizA的结构比较复杂,包括A_MainTable、A_SubTable、A_DetailTable三个表,A_MainTable 是主表,A_SubTable是1级从表,A_DetailTable是2级从表;统计查询的数据量比较大。
BizA的数据结构如下:
BizA的主表:A_MainTable
字段:A_MainColID、A_MainCol1、A_MainCol2、A_MainCol3、A_MainCol4
数据类型:String、String、String、String、String
说明:A_MainColID为主键
BizA的1级从表:A_SubTable
字段:A_SubColID、A_SubCol1、A_SubCol2、A_SubCol3、A_SubCol4
数据类型:String、String、String、String、String
说明:A_SubColID为主键
BizA的2级从表:A_DetailTable
字段:A_DetailCol1、A_DetailCol2、A_DetailCol2、A_DetailCol3、A_DetailCol4