本发明涉及面向大规模动态事务查询的动态自适应数据模型构建方法,特别涉及面向大规模动态事务查询的动态自适应数据模型构建系统。
背景技术:
在面向大数据的云计算环境下,伴随着海量数据的快速生成,用户与应用之间,应用与应用之间的交互越来越频繁。用户需求呈现出个性化、实时化的特点。因此,大型olap(on-lineanalyticalprocessing)和oltp(on-linetransactionprocessing)应用需要对工作负载进行即时处理。
技术实现要素:
本发明所要解决的技术问题是面向大规模动态事务查询的动态自适应数据模型方法及基于storm流式框架的系统实现。
本发明解决上述技术问题的技术方案如下:面向大规模动态事务查询的动态自适应数据模型构建方法,包括以下步骤:
步骤1:从console、rpc、text、tail、日志系统、exec等数据源上实时地收集数据;
步骤2:对于高吞吐量的情况,调节实时性场景中数据采集与数据处理的速度,降低系统处理大规模动态工作负载的延时,保证系统的稳定性;
步骤3:对工作负载中的每一条数据库查询请求进行处理,提取出有效的分区信息,得到实时的数据模型;
步骤4:持续处理工作负载中的数据,处理单元的数量可以根据工作负载的规模动态调整,多个处理单元,可实现并行处理;
步骤5:将结果写入分布式文件系统,存储在mysql数据库。
本发明的有益效果是:提出了与流式框架相结合的面向大规模动态事务查询的动态自适应数据模型构建方法,通过构建关联矩阵映射分区信息,并采用流式框架的水平扩展机制实现了高扩展性和高吞吐量适应性。实验结果表明该算法是大数据环境下针对大规模、动态工作负载进行实时数据分区的有效手段.。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,所述步骤3进一步包括:利用流式框架的并行计算机制降,在计算关联矩阵m的各属性对之间的关联度时,将每一行的计算分配到流式框架的不同计算单元中同时执行,再将所有中间结果一起加和,得到最终结果。
采用上述进一步方案的有益效果是时间复杂度降为了o(1),从而提高了数据分区算法的执行效率。
进一步,面向大规模动态事务查询时的动态自适应数据模型构建系统,包括数据接入模块,吞吐量调节模块,数据处理模块,水平扩展模块和数据存储模块;
所述数据接入模块,采集流式数据和适应高吞吐量。从console、rpc、text、tail、日志系统、exec等数据源上实时地收集数据,为流式框架的进一步处理提供实时数据;
所述吞吐量调节模块,在大数据流式计算环境中,数据采集速度和数据处理速度不一定同步,对于高吞吐量的情况,吞吐量调节模块可以调节实时性场景中数据采集与数据处理的速度,降低系统处理大规模动态工作负载的延时,保证系统的稳定性;
所述数据处理模块,对工作负载中的每一条数据库查询请求进行处理,并得到实时的数据模型,对输入的工作负载进行预处理,提取出有效的分区信息;有多个处理单元,可实现并行处理,降低时间复杂度;
所述水平扩展模块,大数据情况下,数据规模超过了单机的处理能力,面对大规模负载,水平扩展模块可以通过增加处理单元,灵活地进行水平扩展,增加算法并行度,降低算法复杂度;
所述数据存储模块,将分区结果持久化,将分区结果写入分布式文件系统,存储在mysql数据库,根据这些实时结果,用于进一步的研究计算。
采用上述进一步方案的有益效果是解决了大数据环境下,面向大规模、动态、未知工作负载进行数据建模的时效性问题,需要将数据模型构建技术与流式计算框架相结合,提出一套基于流式框架的数据模型构建方案及相关系统。
进一步,面向大规模动态事务查询时的动态自适应数据模型构建系统,其特征在于:
1)动态自适应数据模型构建:分区策略生成与动态更新模块,在每次数据处理之后对分区策略进行动态更新;
2)容错管理:利用流式框架的容错校验机制,实现容错管理.例如,使用kafka实现数据重放,当数据处理过程出现错误时,将这些流数据在系统中保存一段时间,以便于从某个点开始重新进行传输;
3)可靠性:数据接入模块动态抓取数据,并通过吞吐量调节,保证高吞吐量情况下系统处理的稳定性。吞吐量调节模块通过调度适配和负载均衡实现了对未知数据的处理,可以随着工作负载的变化对数据模型进行动态调整;
4)水平扩展:水平扩展模块在面对大规模、动态负载时扩展数据处理单元,实现系统的高扩展性和高可用性。
附图说明
图1为本发明方法步骤流程图;
图2为本发明装置结构图。
附图标记说明:1—数据接入模块;2—吞吐量调节模块;3—数据处理模块;4—水平扩展模块;5—数据存储模块。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
如图1所示,为本发明方法步骤流程图;图2为本发明装置结构图。
实施例1
面向大规模动态事务查询时的动态自适应数据模型构建方法,包括以下步骤:
步骤1:用flume实现数据的采集。flume是cloudera提供的一个分布式、可靠和高可用的海量日志采集、聚合和传输的数据收集系统,它可以从不同的数据源上持续采集数据。构建一个数据生成器,实时生成日志文件,以日志文件作为数据源进行数据采集;
步骤2:kafka针对于实时性场景中高吞吐量的情况,作为中间件进行高吞吐量的调节,可以适应负载的动态变化;
步骤3:进行负载预处理,运行分区算法,获取实时分区方案。在数据处理实现时,storm提供了应用编程接口,只需定制spout和bolt的功能,并规定数据流在各个bolt间的流向,便可通过数据流作业的执行实现对流式大数据的实时计算;
所述步骤3进一步包括:利用流式框架的并行计算机制降,在计算关联矩阵m的各属性对之间的关联度时,将每一行的计算分配到流式框架的不同计算单元中同时执行,再将所有中间结果一起加和,得到最终结果。
此阶段将工作负载中的分区信息提取出来,进行统计计算。此阶段的输入是步骤1中大规模、动态、未知的工作负载,流式框架实时处理的特性保证了未知流数据能被及时处理,经负载映射可以得到一个包含分区信息的关联矩阵。
步骤4:storm中的计算任务可以在多个线程、进程和服务器之间并行进行。此外,zookeeper提供了分布式协调服务,可以通过添加物理节点灵活地进行水平扩展。
在大量数据访问到来时,可以在一台机器上开启多个进程,也可以添加多个物理节点来增加处理单元的数量,增大系统处理的并行度,实现水平扩展,降低处理时间;
步骤5:使用mysql数据库实现数据存储模块,在storm实现了mysql的接口,将分区结果保存到mysql数据库,实现数据存储。
面向大规模动态事务查询时的动态自适应数据模型构建系统,包括数据接入模块1,吞吐量调节模块2,数据处理模块3,水平扩展模块4和数据存储模块5;
所述数据接入模块(1),采集流式数据和适应高吞吐量。从console、rpc、text、tail、日志系统、exec等数据源上实时地收集数据,为流式框架的进一步处理提供实时数据;
所述吞吐量调节模块(2),在大数据流式计算环境中,数据采集速度和数据处理速度不一定同步,对于高吞吐量的情况,吞吐量调节模块可以调节实时性场景中数据采集与数据处理的速度,降低系统处理大规模动态工作负载的延时,保证系统的稳定性;
所述数据处理模块(3),对工作负载中的每一条数据库查询请求进行处理,并得到实时的数据模型,对输入的工作负载进行预处理,提取出有效的分区信息;有多个处理单元,可实现并行处理,降低时间复杂度;
所述水平扩展模块(4),大数据情况下,数据规模超过了单机的处理能力,面对大规模负载,水平扩展模块可以通过增加处理单元,灵活地进行水平扩展,增加算法并行度,降低算法复杂度;
所述数据存储模块(5),将分区结果持久化,将分区结果写入分布式文件系统,存储在mysql数据库,根据这些实时结果,用于进一步的研究计算。
所述步骤3进一步包括:利用流式框架的并行计算机制降,在计算关联矩阵m的各属性对之间的关联度时,将每一行的计算分配到流式框架的不同计算单元中同时执行,再将所有中间结果一起加和,得到最终结果。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。