CN107229747A - 一种基于流式处理框架的大规模数据处理装置及方法 - Google Patents
一种基于流式处理框架的大规模数据处理装置及方法 Download PDFInfo
- Publication number
- CN107229747A CN107229747A CN201710491187.3A CN201710491187A CN107229747A CN 107229747 A CN107229747 A CN 107229747A CN 201710491187 A CN201710491187 A CN 201710491187A CN 107229747 A CN107229747 A CN 107229747A
- Authority
- CN
- China
- Prior art keywords
- data
- logic
- data processing
- processing
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于流程处理框架的大规模数据处理装置及方法,该装置包括:拓扑构建模块,用于根据XML配置文件构建数据处理拓扑;数据读取模块,用于从数据源读取带有标记的原始数据,并根据标记加载逻辑配置文件,得到附加逻辑配置的数据;数据处理模块,用于接收附加逻辑配置的数据,动态调用处理方法,生成处理结果并进行分流;聚合模块,用于接收分流的处理结果并进行聚合;存储模块,用于接收聚合结果,并将其存储到指定存储介质中。本发明基于流式处理框架,数据处理速度快,能够及时处理新增数据;新增的处理规则在Redis中配置即可动态调用,数据的插入方式多样;在不同场景下只需简单的配置修改即可使用,具有一定的应用前景。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种基于流式处理框架的大规模数据处理装置及方法。
背景技术
目前,大规模数据一般采用多线程单实例的处理方式,此方式通常运行在一台服务器上,对业务的针对性高,但相应的配置较少。随着数据爆发式的增长,传统的数据处理方式已经不能够满足大规模数据处理对于速度、性能的要求,主要缺陷如下:
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流式处理框架,可以在多台服务器上部署集群,能够加快处理速度,充分利用服务器性能,如需要增加处理速度只需要横向增加服务器资源。
(2)确保数据不会丢失。从kafka读取数据,确保数据至少被处理一次。
(3)可拓展性。数据源可以是消息中间件,或是持久化存储数据库等,都可以横向拓展,如存储介质,现有的为Mysql和solr存储,还可以横向增加Mongodb等数据库的插入。
(4)可动态加载处理逻辑。新增的处理逻辑只需要在Redis中配置即可被动态调用到。
(5)可动态加载拓扑结构。处理数据的bolt通过xml的方式加载,在不同数据处理中可以选择性加载,减小服务器压力。
(6)采用数据聚合机制,使数据能够批量插入,减小网络开销。
(7)数据的整个处理流程都由配置文件决定,在不同的业务中,只需要修改配置文件就能满足处理需求。
实施例2
参照图2,本实施例基于流式处理框架的大规模数据处理方法,包括以下过程:
步骤1:拓扑构建模块根据XML配置文件在流式处理框架上构建数据处理拓扑,同时建立数据处理拓扑与数据源、存储介质的连接;
步骤2:数据读取模块从数据源读取带有标记的原始数据,并根据标记加载对应的逻辑配置文件,得到附加逻辑配置的数据并发送给数据处理模块;所述逻辑配置文件包含处理逻辑、处理方法和存储逻辑内容;
步骤3:数据处理模块接收附加逻辑配置的数据,并根据逻辑配置中的处理逻辑动态调用对应的处理方法,生成处理结果并根据存储逻辑进行分流;
步骤4:聚合模块接收分流的处理结果并对其进行聚合,得到聚合结果并发送给存储模块;
步骤5:存储模块接收聚合结果,并根据存储逻辑将聚合结果存储到指定的存储介质中。
优选的,所述数据源为消息中间件或持久化存储介质。
优选的,所述消息中间件包括:用于缓存原始数据的Kafka和用于缓存逻辑配置文件的Redis,所述持久化存储介质包括:关系数据库Mysql、分布式文档存储数据库Mongodb和索引Solr。
优选的,所述存储逻辑包括:数据库实例、表名、插入方式和插入字段。
注意,上述内容仅为本发明的较佳实施例。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其它等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种基于流式处理框架的大规模数据处理装置,其特征在于,包括:
拓扑构建模块,用于根据XML配置文件构建数据处理拓扑,同时建立数据处理拓扑与数据源、存储介质的连接;
数据读取模块,用于从数据源读取带有标记的原始数据,并根据标记加载对应的逻辑配置文件,得到附加逻辑配置的数据;所述逻辑配置文件包含处理逻辑、处理方法和存储逻辑内容;
数据处理模块,用于接收附加逻辑配置的数据,并根据逻辑配置中的处理逻辑动态调用对应的处理方法,生成处理结果并根据存储逻辑进行分流;
聚合模块,用于接收分流的处理结果并对其进行聚合,得到聚合结果;
存储模块,用于接收聚合结果,并根据存储逻辑将聚合结果存储到指定的存储介质中。
2.根据权利要求1所述的基于流式处理框架的大规模数据处理装置,其特征在于,所述数据源为消息中间件或持久化存储介质。
3.根据权利要求2所述的基于流式处理框架的大规模数据处理装置,其特征在于,所述消息中间件包括:用于缓存原始数据的Kafka和用于缓存逻辑配置文件的Redis,所述持久化存储介质包括:关系数据库Mysql和索引Solr。
4.根据权利要求1所述的基于流式处理框架的大规模数据处理装置,其特征在于,所述存储介质还包括:Mongodb。
5.根据权利要求1所述的基于流式处理框架的大规模数据处理装置,其特征在于,所述存储逻辑包括:数据库实例、表名、插入方式和插入字段。
6.一种基于流式处理框架的大规模数据处理方法,其特征在于,包括以下过程:
步骤1:拓扑构建模块根据XML配置文件构建数据处理拓扑,同时建立数据处理拓扑与数据源、存储介质的连接;
步骤2:数据读取模块从数据源读取带有标记的原始数据,并根据标记加载对应的逻辑配置文件,得到附加逻辑配置的数据并发送给数据处理模块;所述逻辑配置文件包含处理逻辑、处理方法和存储逻辑内容;
步骤3:数据处理模块接收附加逻辑配置的数据,并根据逻辑配置中的处理逻辑动态调用对应的处理方法,生成处理结果并根据存储逻辑进行分流;
步骤4:聚合模块接收分流的处理结果并对其进行聚合,得到聚合结果并发送给存储模块;
步骤5:存储模块接收聚合结果,并根据存储逻辑将聚合结果存储到指定的存储介质中。
7.根据权利要求6所述的基于流式处理框架的大规模数据处理方法,其特征在于,所述数据源为消息中间件或持久化存储介质。
8.根据权利要求6所述的基于流式处理框架的大规模数据处理方法,其特征在于,所述消息中间件包括:用于缓存原始数据的Kafka和用于缓存逻辑配置文件的Redis,所述持久化存储介质包括:关系数据库Mysql和索引Solr。
9.根据权利要求8所述的基于流式处理框架的大规模数据处理方法,其特征在于,所述存储介质还包括:Mongodb。
10.根据权利要求6所述的基于流式处理框架的大规模数据处理装置,其特征在于,所述存储逻辑包括:数据库实例、表名、插入方式和插入字段。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710491187.3A CN107229747A (zh) | 2017-06-26 | 2017-06-26 | 一种基于流式处理框架的大规模数据处理装置及方法 |
CN201710835168.8A CN107506482A (zh) | 2017-06-26 | 2017-09-15 | 一种基于流式处理框架的大规模数据处理装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710491187.3A CN107229747A (zh) | 2017-06-26 | 2017-06-26 | 一种基于流式处理框架的大规模数据处理装置及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107229747A true CN107229747A (zh) | 2017-10-03 |
Family
ID=59935281
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710491187.3A Pending CN107229747A (zh) | 2017-06-26 | 2017-06-26 | 一种基于流式处理框架的大规模数据处理装置及方法 |
CN201710835168.8A Pending CN107506482A (zh) | 2017-06-26 | 2017-09-15 | 一种基于流式处理框架的大规模数据处理装置及方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710835168.8A Pending CN107506482A (zh) | 2017-06-26 | 2017-09-15 | 一种基于流式处理框架的大规模数据处理装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN107229747A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107678852A (zh) * | 2017-10-26 | 2018-02-09 | 携程旅游网络技术(上海)有限公司 | 基于流数据实时计算的方法、系统、设备及存储介质 |
CN108334380A (zh) * | 2018-01-19 | 2018-07-27 | 新智云数据服务有限公司 | 一种配置项管理方法、装置、终端和计算机可读存储介质 |
CN108958789A (zh) * | 2018-05-20 | 2018-12-07 | 湖北九州云仓科技发展有限公司 | 一种并行流式计算方法、电子设备、存储介质及系统 |
CN109145023A (zh) * | 2018-08-30 | 2019-01-04 | 北京百度网讯科技有限公司 | 用于处理数据的方法和装置 |
CN110007967A (zh) * | 2017-12-29 | 2019-07-12 | 杭州海康威视数字技术股份有限公司 | 一种基于流式框架的数据处理方法、装置及设备 |
CN112181522A (zh) * | 2020-09-28 | 2021-01-05 | 亚信科技(中国)有限公司 | 数据处理的方法、装置以及电子设备 |
CN113438124A (zh) * | 2021-06-07 | 2021-09-24 | 清华大学 | 基于意图驱动的网络测量方法和装置 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109857524B (zh) * | 2019-01-25 | 2024-02-27 | 深圳前海微众银行股份有限公司 | 流式计算方法、装置、设备及计算机可读存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104050261B (zh) * | 2014-06-16 | 2018-01-05 | 深圳先进技术研究院 | 基于Storm的可变逻辑的通用数据处理系统及方法 |
CN105512162B (zh) * | 2015-09-28 | 2019-04-16 | 杭州圆橙科技有限公司 | 一种基于Storm的流数据实时智能化处理框架 |
CN105574082A (zh) * | 2015-12-08 | 2016-05-11 | 曙光信息产业(北京)有限公司 | 基于Storm的流处理方法及系统 |
CN105959151B (zh) * | 2016-06-22 | 2019-05-07 | 中国工商银行股份有限公司 | 一种高可用的流式处理系统及方法 |
CN106599120A (zh) * | 2016-12-01 | 2017-04-26 | 中国联合网络通信集团有限公司 | 基于流处理框架的数据处理方法及装置 |
CN106789377B (zh) * | 2017-03-24 | 2020-09-29 | 聚好看科技股份有限公司 | 网元集群的服务参数更新方法 |
-
2017
- 2017-06-26 CN CN201710491187.3A patent/CN107229747A/zh active Pending
- 2017-09-15 CN CN201710835168.8A patent/CN107506482A/zh active Pending
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107678852A (zh) * | 2017-10-26 | 2018-02-09 | 携程旅游网络技术(上海)有限公司 | 基于流数据实时计算的方法、系统、设备及存储介质 |
CN107678852B (zh) * | 2017-10-26 | 2021-06-22 | 携程旅游网络技术(上海)有限公司 | 基于流数据实时计算的方法、系统、设备及存储介质 |
CN110007967A (zh) * | 2017-12-29 | 2019-07-12 | 杭州海康威视数字技术股份有限公司 | 一种基于流式框架的数据处理方法、装置及设备 |
CN110007967B (zh) * | 2017-12-29 | 2022-05-06 | 杭州海康威视数字技术股份有限公司 | 一种基于流式框架的数据处理方法、装置及设备 |
CN108334380A (zh) * | 2018-01-19 | 2018-07-27 | 新智云数据服务有限公司 | 一种配置项管理方法、装置、终端和计算机可读存储介质 |
CN108958789A (zh) * | 2018-05-20 | 2018-12-07 | 湖北九州云仓科技发展有限公司 | 一种并行流式计算方法、电子设备、存储介质及系统 |
CN108958789B (zh) * | 2018-05-20 | 2021-07-09 | 湖北九州云仓科技发展有限公司 | 一种并行流式计算方法、电子设备、存储介质及系统 |
CN109145023A (zh) * | 2018-08-30 | 2019-01-04 | 北京百度网讯科技有限公司 | 用于处理数据的方法和装置 |
CN112181522A (zh) * | 2020-09-28 | 2021-01-05 | 亚信科技(中国)有限公司 | 数据处理的方法、装置以及电子设备 |
CN113438124A (zh) * | 2021-06-07 | 2021-09-24 | 清华大学 | 基于意图驱动的网络测量方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107506482A (zh) | 2017-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107229747A (zh) | 一种基于流式处理框架的大规模数据处理装置及方法 | |
US9721116B2 (en) | Test sandbox in production systems during productive use | |
US10360199B2 (en) | Partitioning and rebalancing data storage | |
US9195599B2 (en) | Multi-level aggregation techniques for memory hierarchies | |
US10831747B2 (en) | Multi stage aggregation using digest order after a first stage of aggregation | |
CN104881466B (zh) | 数据分片的处理以及垃圾文件的删除方法和装置 | |
US9996597B2 (en) | Unified mapreduce framework for large-scale data processing | |
CN112860695B (zh) | 监控数据查询方法、装置、设备、存储介质及程序产品 | |
CN106250226B (zh) | 基于一致性哈希算法的任务调度方法及系统 | |
TW201530328A (zh) | 爲半結構化資料構建NoSQL資料庫索引的方法及裝置 | |
US20140156586A1 (en) | Big-fast data connector between in-memory database system and data warehouse system | |
US9128967B2 (en) | Storing graph data in a column-oriented data store | |
WO2017028394A1 (zh) | 一种基于实例的分布式数据恢复方法和装置 | |
JP7313382B2 (ja) | 分散システムの頻繁パターン分析 | |
CN106599091B (zh) | 基于键值存储的rdf图结构存储和索引方法 | |
US9734178B2 (en) | Searching entity-key associations using in-memory objects | |
CN107562804A (zh) | 数据缓存服务系统及方法、终端 | |
US11048756B2 (en) | Inserting datasets into database systems utilizing hierarchical value lists | |
CN106897450A (zh) | 一种基于HDFS海量数据快速导入HBase的方法 | |
US10114864B1 (en) | List element query support and processing | |
US9256634B2 (en) | Resuming big data transformations | |
US20240086225A1 (en) | Container group scheduling methods and apparatuses | |
CN113032402B (zh) | 存储数据和获取数据的方法、装置、设备和存储介质 | |
JP5266420B2 (ja) | データウェアハウスのための効率的なデータ逆流処理 | |
Chen et al. | A balanced partitioning mechanism using collapsed-condensed trie in mapreduce |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20171003 |