一种基于流式处理框架的大规模数据处理装置及方法制造方法及图纸

技术编号:16346214 阅读:50 留言:0更新日期:2017-10-03 22:25
本发明专利技术公开了一种基于流程处理框架的大规模数据处理装置及方法,该装置包括:拓扑构建模块,用于根据XML配置文件构建数据处理拓扑;数据读取模块,用于从数据源读取带有标记的原始数据,并根据标记加载逻辑配置文件,得到附加逻辑配置的数据;数据处理模块,用于接收附加逻辑配置的数据,动态调用处理方法,生成处理结果并进行分流;聚合模块,用于接收分流的处理结果并进行聚合;存储模块,用于接收聚合结果,并将其存储到指定存储介质中。本发明专利技术基于流式处理框架,数据处理速度快,能够及时处理新增数据;新增的处理规则在Redis中配置即可动态调用,数据的插入方式多样;在不同场景下只需简单的配置修改即可使用,具有一定的应用前景。

【技术实现步骤摘要】
一种基于流式处理框架的大规模数据处理装置及方法
本专利技术涉及计算机
,特别涉及一种基于流式处理框架的大规模数据处理装置及方法。
技术介绍
目前,大规模数据一般采用多线程单实例的处理方式,此方式通常运行在一台服务器上,对业务的针对性高,但相应的配置较少。随着数据爆发式的增长,传统的数据处理方式已经不能够满足大规模数据处理对于速度、性能的要求,主要缺陷如下:1、由于单台服务器存在如网络稳定性差、CPU用量过高等性能瓶颈,因此,数据处理速度不够快,并且不能及时处理新增数据。2、进行数据处理时,没有配置文件来干预处理过程,处理规则不能动态配置,一旦处理规则发生变化,需要重新启动程序。3、一次运行中插入的语句(如SQL)是固定的,不能动态修改,数据插入方式单一,不支持多种插入方式。4、一次数据处理只能使用于一个业务场景,与具体业务的耦合性很高,独立性差,不方便迁移。因此,亟需一种基于流式处理框架的大规模数据处理装置及方法。
技术实现思路
专利技术的目的:为了解决
技术介绍
中存在的技术问题,提供一种基于流式处理框架的大规模数据处理装置及方法。为达到上述目的,本专利技术采用的技术方案是:提供了一种基于流式处理框架的大规模数据处理装置,包括:拓扑构建模块,用于根据XML配置文件构建数据处理拓扑,同时建立数据处理拓扑与数据源、存储介质的连接;数据读取模块,用于从数据源读取带有标记的原始数据,并根据标记加载对应的逻辑配置文件,得到附加逻辑配置的数据;所述逻辑配置文件包含处理逻辑、处理方法和存储逻辑内容;数据处理模块,用于接收附加逻辑配置的数据,并根据逻辑配置中的处理逻辑动态调用对应的处理方法,生成处理结果并根据存储逻辑进行分流;聚合模块,用于接收分流的处理结果并对其进行聚合,得到聚合结果;存储模块,用于接收聚合结果,并根据存储逻辑将聚合结果存储到指定的存储介质中。进一步地,所述数据源为消息中间件或持久化存储介质。进一步地,所述消息中间件包括:用于缓存原始数据的Kafka和用于缓存逻辑配置文件的Redis,所述持久化存储介质包括:关系数据库Mysql和索引Solr。进一步地,所述存储介质还包括:Mongodb。进一步地,所述存储逻辑包括:数据库实例、表名、插入方式和插入字段。本专利技术还提供了一种基于流式处理框架的大规模数据处理方法,包括以下过程:步骤1:拓扑构建模块根据XML配置文件构建数据处理拓扑,同时建立数据处理拓扑与数据源、存储介质的连接;步骤2:数据读取模块从数据源读取带有标记的原始数据,并根据标记加载对应的逻辑配置文件,得到附加逻辑配置的数据并发送给数据处理模块;所述逻辑配置文件包含处理逻辑、处理方法和存储逻辑内容;步骤3:数据处理模块接收附加逻辑配置的数据,并根据逻辑配置中的处理逻辑动态调用对应的处理方法,生成处理结果并根据存储逻辑进行分流;步骤4:聚合模块接收分流的处理结果并对其进行聚合,得到聚合结果并发送给存储模块;步骤5:存储模块接收聚合结果,并根据存储逻辑将聚合结果存储到指定的存储介质中。进一步地,所述数据源为消息中间件或持久化存储介质。进一步地,所述消息中间件包括:用于缓存原始数据的Kafka和用于缓存逻辑配置文件的Redis,所述持久化存储介质包括:关系数据库Mysql和索引Solr。进一步地,所述存储介质还包括:Mongodb。进一步地,所述存储逻辑包括:数据库实例、表名、插入方式和插入字段。本专利技术的有益效果是:本专利技术基于storm、spark等流式处理框架,可以在多台服务器上部署集群,数据处理速度快,且能够及时处理新增数据;新增的处理规则在Redis中配置即可动态调用,无须重启程序;采用的数据源能横向拓展,数据的插入方式多样;在不同场景下使用本专利技术只需要进行简单的配置修改即可使用,具有一定的应用前景。附图说明图1是本专利技术实施例1基于流式处理框架的大规模数据处理装置的结构框图。图2是本专利技术实施例2基于流式处理框架的大规模数据处理方法的主要流程图。具体实施方式为使本专利技术解决的技术问题、采用的技术方案和达到的技术效果更加清楚,下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。实施例1环境准备:本实施例基于流式处理框架的大规模数据通用处理装置,依赖于流式处理框架,Kafka和Redis消息中间件,还有用于数据存储的介质,本次采用Storm作为底层处理框架。在部署该装置前,需确保这些环境已经准备好。配置准备:在构建拓扑时,加载XML配置文件以及Redis中的Storm相关配置,确定加载的模块和Storm的运行参数(如:Storm的work数和task数);在建立拓扑与数据源、存储介质的连接时,加载Properties配置文件;在进行数据处理时,动态加载Redis中的配置文件,实时修改运行的阈值(如:批量提交数据量大小、等待超时时间、数据处理规则等)。参照图1,本实施例基于流式处理框架的大规模数据处理装置,包括:拓扑构建模块,用于根据XML文件在storm上构建数据处理拓扑,并建立数据处理拓扑与数据源、所有存储介质的连接;该模块是后续几个模块运行的基础;数据读取模块,用于从数据源读取带有标记的原始数据,并根据标记加载对应的逻辑配置文件,得到附加逻辑配置的数据;所述数据源为消息中间件或持久化存储介质;所述消息中间件包括:用于缓存原始数据的Kafka和用于缓存逻辑配置文件的Redis,所述持久化存储介质包括:关系数据库Mysql和索引Solr;所述标记为自定义的用于区分处理方法的字段,可以是来源数据库的表名、来源网址等;所述逻辑配置文件包含处理逻辑、处理方法和存储逻辑内容;数据处理模块,用于接收附加逻辑配置的数据,并根据逻辑配置中的处理逻辑动态调用对应的处理方法(如:在配置文件中配置了MongoDB中Student表中的数据对应的处理方法是parseStudent(),则该模块会动态调用该方法处理该条数据),生成处理结果并根据存储逻辑进行分流(如:需要插入同一个Mysql表,且插入的字段相同的数据会被发送到同一个流);由于原始数据类型和解析要求的不确定,具体的处理逻辑需要自行编写,同时在逻辑配置文件中指定不同类型数据对应的不同的处理逻辑;所述存储逻辑内容包括:数据库实例、表名、插入方式和插入字段,前三者需要指定。聚合模块,用于接收分流的处理结果,并将相同存储逻辑的处理结果聚合到同一个线程,对于有优先标记的数据,直接发送给存储模块,否则将数据缓存,直到满足配置的超时时间或数量再发送;存储模块,用于按批次接收聚合结果,并根据存储逻辑将聚合结果存储(即插入)到指定的存储介质中;所述存储介质为关系数据库Mysql、分布式文档存储数据库Mongodb和索引Solr。本实施例基于流式处理框架的大规模数据处理装置,主要分为五大模块,通过Storm的流机制将这些模块串联,形成一个完整的处理流程,在启动时加载一个全局的配置,该配置指定加载的模块、各个模块的线程数以及原始数据的来源。本装置具有以下优点:(1)数据处理速度快。本装置基于Storm、Spark、Samza或Jstorm流式处理框架,可以在多台服务器上部署集群,能够加快处理速度,充分利用服务器性本文档来自技高网...
一种基于流式处理框架的大规模数据处理装置及方法

【技术保护点】
一种基于流式处理框架的大规模数据处理装置,其特征在于,包括:拓扑构建模块,用于根据XML配置文件构建数据处理拓扑,同时建立数据处理拓扑与数据源、存储介质的连接;数据读取模块,用于从数据源读取带有标记的原始数据,并根据标记加载对应的逻辑配置文件,得到附加逻辑配置的数据;所述逻辑配置文件包含处理逻辑、处理方法和存储逻辑内容;数据处理模块,用于接收附加逻辑配置的数据,并根据逻辑配置中的处理逻辑动态调用对应的处理方法,生成处理结果并根据存储逻辑进行分流;聚合模块,用于接收分流的处理结果并对其进行聚合,得到聚合结果;存储模块,用于接收聚合结果,并根据存储逻辑将聚合结果存储到指定的存储介质中。

【技术特征摘要】
1.一种基于流式处理框架的大规模数据处理装置,其特征在于,包括:拓扑构建模块,用于根据XML配置文件构建数据处理拓扑,同时建立数据处理拓扑与数据源、存储介质的连接;数据读取模块,用于从数据源读取带有标记的原始数据,并根据标记加载对应的逻辑配置文件,得到附加逻辑配置的数据;所述逻辑配置文件包含处理逻辑、处理方法和存储逻辑内容;数据处理模块,用于接收附加逻辑配置的数据,并根据逻辑配置中的处理逻辑动态调用对应的处理方法,生成处理结果并根据存储逻辑进行分流;聚合模块,用于接收分流的处理结果并对其进行聚合,得到聚合结果;存储模块,用于接收聚合结果,并根据存储逻辑将聚合结果存储到指定的存储介质中。2.根据权利要求1所述的基于流式处理框架的大规模数据处理装置,其特征在于,所述数据源为消息中间件或持久化存储介质。3.根据权利要求2所述的基于流式处理框架的大规模数据处理装置,其特征在于,所述消息中间件包括:用于缓存原始数据的Kafka和用于缓存逻辑配置文件的Redis,所述持久化存储介质包括:关系数据库Mysql和索引Solr。4.根据权利要求1所述的基于流式处理框架的大规模数据处理装置,其特征在于,所述存储介质还包括:Mongodb。5.根据权利要求1所述的基于流式处理框架的大规模数据处理装置,其特征在于,所述存储逻辑包括:数据库实例、表名、插入方式和插入字段。6.一种基于流式处理框架的大...

【专利技术属性】
技术研发人员:曾琰陈敏张圣栋
申请(专利权)人:湖南星汉数智科技有限公司
类型:发明
国别省市:湖南,43

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1