CN110704124A - 一种流数据结构化处理系统及方法 - Google Patents
一种流数据结构化处理系统及方法 Download PDFInfo
- Publication number
- CN110704124A CN110704124A CN201910884532.9A CN201910884532A CN110704124A CN 110704124 A CN110704124 A CN 110704124A CN 201910884532 A CN201910884532 A CN 201910884532A CN 110704124 A CN110704124 A CN 110704124A
- Authority
- CN
- China
- Prior art keywords
- plug
- data
- module
- ins
- analysis
- 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.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims abstract description 21
- 238000012545 processing Methods 0.000 title claims abstract description 16
- 238000007405 data analysis Methods 0.000 claims abstract description 28
- 238000004458 analytical method Methods 0.000 claims abstract description 16
- 238000004519 manufacturing process Methods 0.000 claims abstract description 4
- 238000003672 processing method Methods 0.000 claims abstract description 4
- 238000004806 packaging method and process Methods 0.000 claims description 2
- 238000004891 communication Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000007418 data mining Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及一种流数据结构化处理系统及方法。本发明系统包括插件模块、数据总线模块和插件编排模块;所述插件模块是具有特定流数据解析功能的插件;所述的数据总线模块用于插件的接入,实现解析前数据的消费、解析后数据的生产;所述插件编排模块编排系统的插件模块,构造一个完整的数据链,对流数据进行完整解析。本发明的方法通过使用剧本文件定义一条完整的流数据解析链路,解析剧本文件将流数据按序通过不同插件处理,并最终输出。本发明将插件之间、插件与系统间解耦,提高了解析功能的可扩展性;可用于流数据的结构化处理。
Description
技术领域
本发明涉及数据处理技术领域,特别涉及一种流数据结构化处理系统及方法。
背景技术
诸如应用程序生成的日志文件、设备日志、网购数据、游戏内玩家活动、社交网站信息、金融交易大厅或地理空间服务数据等流数据,具有来源丰富、数据格式差异巨大、实时性等特点。数据的结构化处理可理解为数据挖掘中的数据清洗阶段,该阶段为后面的数据关联、数据融合、数据分析提供操作的基础。因此将具有不同数据格式的流数据结构化处理,对于数据挖掘领域具有十分重要的意义。
传统的流数据解析平台中,数据结构化处理代码与系统其它功能代码耦合严重,因此导致整个系统的流数据解析功能单一、灵活性不足、可扩展性弱;产品的微小改变都将导致系统不断延伸出小版本,造成产品升级、迭代困难。此外,流数据来源丰富、数据格式差异巨大,数据解析代码与系统代码耦合严重将增加用户的维护成本。
发明内容
本发明解决的技术问题在于提供流数据结构化处理系统及方法;实现流数据的结构化处理功能插件化,并避免高度耦合、灵活性不足、扩展性弱等问题。
本发明解决上述技术问题的技术方案是:
所述的系统包括插件模块、数据总线模块和插件编排模块;所述插件模块是具有特定流数据解析功能的插件;所述的数据总线模块用于插件的接入,实现解析前数据的消费、解析后数据的生产;所述插件编排模块编排系统的插件模块,构造一个完整的数据链,对流数据进行完整解析。
所述的插件是完全独立、能够处理特定数据的软件实体,包括:jar包。
所述插件的输入、输出数据统一定义为json格式,存放到数据总线模块中。
所述插件编排模块通过自定义剧本文件plugin_playbook.yml,编排需要执行的插件,按序解析流数据,形成完整的数据链;
所述剧本文件plugin_playbook.yml根据不同的数据来源加载不同的文件格式。
所述的方法包括步骤如下:
步骤1:接入流数据;
步骤2:将遵循插件规范的插件统一放置在系统的plugins目录下;
步骤3:编辑剧本文件plugin_playbook.yml;
步骤4:启动后加载特定的plugin_playbook.yml文件;
步骤5:扫描plugins目录,并加载所有插件;
步骤6:解析剧本文件plugin_playbook.yml,编排文件中对应的插件,构成数据解析链路;
步骤7:每个插件从数据总线模块中获取json数据,插件内部业务逻辑完成特定字段的解析,并将解析后的json数据推送至数据总线模块;
步骤8:数据解析链路中下一个插件执行与步骤4相同的操作,直至所有的插件执行完毕;
步骤9:输出原始数据经过数据解析链路处理后的结果。
所述的plugin_playbook.yml文件从标签、前置插件名称、输入字段、输出字段四个角度,以数组形式定义一个插件处理的日志来源、该插件接到哪些插件后面作为后续处理、具体输入、输出字段。
所述的方法在系统初始化时统一通过反射形式动态加载插件,即通过配置文件将插件的配置项设为启用状态即可让系统加载插件;插件之间通过剧本文件构造成完整的数据解析链路,并最终输出解析后的数据。
本发明将数据解析的逻辑抽象成一个个独立的插件模块,通过使用剧本定义一条完整的流数据解析链路,通过解析剧本文件将流数据按序通过不同插件处理,并最终输出。本发明的方法以剧本文件提供了一种可控的方式控制流数据的流向;数据解析功能插件化,使插件与插件之间、插件与系统之间解耦,提高解析功能的可扩展性,更加有利于产品迭代。
附图说明
下面结合附图对本发明进一步说明:
图1是本发明系统框架图;
图2是本发明方法流程图。
具体实施方式
见图1所示,本发明流数据结构化处理系统和,主要专注于各种设备、应用日志、实时地理位置信息、传感器数据的结构化处理。本发明系统分为三个模块,1、具有特定功能流数据解析的插件模块;2、实现插件之间相互通信的数据总线模块;3、插件编排模块。
1、流数据解析的插件模块
如图1,流数据解析的插件模块是一个个独立的插件,在本系统中所有的原始数据解析功能将与流数据处理系统中完全解耦,都通过插件形式实现。
插件是完全独立、能够处理特定数据的软件实体,如jar包。
插件在系统初始化时统一加载,加载操作通过反射形式动态加载,如java的Class.forName;通过配置文件将插件的配置项设为启用状态即可让系统加载插件,插件之间通过剧本文件构造成完整的数据解析链路,并最终输出解析后的数据。
2、数据总线模块
如图1中的MQ,系统中所有的插件都将接入消息队列MQ(数据总线模块),通过MQ进行解析前数据的消费、解析后数据的生产。
插件的输入、输出数据,统一定义为json格式,存放到MQ中,便于插件之间数据的解耦、通信。
3、编排模块
编排模块即图1中所示的plugin A->plugin B->plugin C构造的链路,系统中所有的数据解析功能模块需要通过编排,实现一个完整的数据链,才能实现流数据的完整解析。本文中,plugin即为插件。
系统通过指定插件剧本文件plugin_playbook.yml进行定义,解析处于启用状态的plugin,按序解析流数据,形成完整的数据链。
剧本文件plugin_playbook.yml可以创建针对特定数据的plugin_playbook.yml文件,根据不同的数据来源加载不同的plugin_playbook.yml文件。
如图2所示,本发明流数据处理方法包括如下步骤:
步骤1:接入流数据;
步骤2:将遵循本系统插件规范的插件统一放置在系统的plugins目录下;
步骤3:编辑剧本文件plugin_playbook.yml;
步骤4:启动系统,加载特定的plugin_playbook.yml文件;
步骤5:扫描plugins目录,并加载所有插件;
步骤6:解析剧本文件plugin_playbook.yml,文件中定义启用状态的插件构造成一条数据解析链路;
步骤7:每个插件从数据总线模块MQ中获取json数据,plugin内部业务逻辑完成特定字段的解析,并将解析后的json数据推送至数据总线模块MQ;
步骤8:数据解析链路中下一个插件执行与步骤4相同的操作,直至所有的插件执行完毕;
步骤9:输出原始数据经过数据解析链路处理后的追踪结果。
本发明提供统一的插件开发规范,便于用户自定义开发插件,插件内部的业务逻辑基本独立,插件仅对外暴露输入、输出参数,参数均定义成json数据格式。
每个独立的插件都具有一个单独的根目录,包含所有依赖,及插件打包后的jar和相关依赖数据。如ip地理信息转换插件GeoIP,其需要一个开源的的离线数据GeoLite2-City.mmdb文件,geoip所有相关文件都包含在该geoip目录下,然后放置该目录到软件的plugins目录下,系统启动时,通过扫描该目录加载plugin。
引入MQ作为插件整个流数据解析的数据总线,所有插件之间通过接入MQ实现相互之间的通信。且由于当前插件与上一级插件是多对多的关系,因此每个plugin还具有单独的MQ,缓存需要处理的数据。
本发明提供统一的插件开发规范,该规范定义插件涉及的一些概念、术语并提供对外调用API;体现本系统面向扩展开放的特点。由于流数据格式多样,不可避免需要定制开发,因此提供一个统一规范,使软件具有极强的可扩展性,每个插件都有单独的根目录,便于插件的管理与更新;引入MQ保证作为缓存,确保数据不易丢失,同时也降低系统的负载。
本系统将日志解析抽象成各功能模块的组合使用,对于一条完整流数据解析处理,仅通过配置编辑剧本文件plugin_playbook.yml实现,基本不涉及代码级别修改。剧本文件就代表了一条完整的流数据解析链,系统在启动时可以启动参数指定加载不同的plugin_playbook.yml文件,不同剧本构造不同的专用流数据解析链路。
plugin_playbook.yml文件从标签(tag)、前置插件名称(具有唯一性)、输入字段、输出字段,四个维度以数组形式定义一个插件处理的日志来源、该插件接到哪些插件后面作为后续处理、具体输入、输出字段。
本系统将流数据结构化解析的功能从整个系统解耦,形成一个相对独立的模块,其有许许多多的插件构成,插件目录plugins相当于提供了一个仓库。用户仅通过定义一个plugin_playbook.yml文件即可构造一条完整的数据解析链路,使得本系统具有简单易用、产品升级迭代便利,具有极度灵活性、可扩展性。
Claims (8)
1.一种流数据结构化处理系统,其特征在于:所述的系统包括插件模块、数据总线模块和插件编排模块;所述插件模块是具有特定流数据解析功能的插件;所述的数据总线模块用于插件的接入,实现解析前数据的消费、解析后数据的生产;所述插件编排模块编排系统的插件模块,构造一个完整的数据链,对流数据进行完整解析。
2.根据权利要求1所述的系统,其特征在于:所述的插件是完全独立、能够处理特定数据的软件实体,包括:jar包。
3.根据权利要求1所述的系统,其特征在于:所述插件的输入、输出数据统一定义为json格式,存放到数据总线模块中。
4.根据权利要求2所述的系统,其特征在于:所述插件的输入、输出数据统一定义为json格式,存放到数据总线模块中。
5.根据权利要求1至4任一项所述的系统,其特征在于:所述插件编排模块通过自定义剧本文件plugin_playbook.yml,编排需要执行的插件,按序解析流数据,形成完整的数据链;
所述剧本文件plugin_playbook.yml根据不同的数据来源加载不同的文件格式。
6.一种流数据结构化处理方法,其特征在于:所述的方法包括步骤如下:
步骤1:接入流数据;
步骤2:将遵循插件规范的插件统一放置在系统的plugins目录下;
步骤3:编辑剧本文件plugin_playbook.yml;
步骤4:启动后加载特定的plugin_playbook.yml文件;
步骤5:扫描plugins目录,并加载所有插件;
步骤6:解析剧本文件plugin_playbook.yml,编排文件中对应的插件,构成数据解析链路;
步骤7:每个插件从数据总线模块中获取json数据,插件内部业务逻辑完成特定字段的解析,并将解析后的json数据推送至数据总线模块;
步骤8:数据解析链路中下一个插件执行与步骤4相同的操作,直至所有的插件执行完毕;
步骤9:输出原始数据经过数据解析链路处理后的结果。
7.根据权利要求6所述的方法,其特征在于:所述的plugin_playbook.yml文件从标签、前置插件名称、输入字段、输出字段四个角度,以数组形式定义一个插件处理的日志来源、该插件接到哪些插件后面作为后续处理、具体输入、输出字段。
8.根据权利要求6或7所述的方法,其特征在于:所述的方法在系统初始化时统一通过反射形式动态加载插件,即通过配置文件将插件的配置项设为启用状态即可让系统加载插件;插件之间通过剧本文件构造成完整的数据解析链路,并最终输出解析后的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910884532.9A CN110704124A (zh) | 2019-09-19 | 2019-09-19 | 一种流数据结构化处理系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910884532.9A CN110704124A (zh) | 2019-09-19 | 2019-09-19 | 一种流数据结构化处理系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110704124A true CN110704124A (zh) | 2020-01-17 |
Family
ID=69195053
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910884532.9A Withdrawn CN110704124A (zh) | 2019-09-19 | 2019-09-19 | 一种流数据结构化处理系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110704124A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114337920A (zh) * | 2021-12-23 | 2022-04-12 | 中国农业银行股份有限公司 | 编码解析方法、装置及电子设备 |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002097610A1 (en) * | 2001-05-30 | 2002-12-05 | Bea Systems, Inc. | System and method for software component plug-in framework |
CN103164239A (zh) * | 2012-12-11 | 2013-06-19 | 广东电网公司电力科学研究院 | 基于微网可视化平台的插件实现方法 |
CN103197950A (zh) * | 2013-04-19 | 2013-07-10 | 中国海洋大学 | 插件虚拟机实现方法 |
CN103617508A (zh) * | 2013-12-12 | 2014-03-05 | 用友软件股份有限公司 | 可配置的业务规则插件扩展装置和业务规则插件扩展方法 |
EP2752795A1 (en) * | 2013-01-08 | 2014-07-09 | Agfa Healthcare | Diagnostic workflow management with pluggable report sections |
CN104331289A (zh) * | 2014-10-31 | 2015-02-04 | 北京思特奇信息技术股份有限公司 | 一种将插件式设计应用到流程处理的方法及装置 |
US20150058868A1 (en) * | 2013-08-23 | 2015-02-26 | Ramanathan Padinjarel | Techniques for a common object model |
CN105573760A (zh) * | 2015-12-16 | 2016-05-11 | 南京邮电大学 | 基于storm的物联网数据处理系统及方法 |
CN105760991A (zh) * | 2016-02-04 | 2016-07-13 | 北京慧友云商科技有限公司 | 一种可变服务流程的工作流引擎搭建方法 |
CN106648559A (zh) * | 2015-10-28 | 2017-05-10 | 广东电网有限责任公司佛山供电局 | Android应用插件化开发系统和方法 |
CN107423952A (zh) * | 2017-07-25 | 2017-12-01 | 苏州博纳讯动软件有限公司 | 一种可扩展的DevOps持续交付系统及其方法 |
CN107832098A (zh) * | 2017-10-26 | 2018-03-23 | 北京四维新世纪信息技术有限公司 | 一种可扩展的多源遥感数据展示处理方法 |
CN107958052A (zh) * | 2017-11-28 | 2018-04-24 | 广州启生信息技术有限公司 | 一种大规模网络爬虫程序的访问方法及装置 |
CN108228629A (zh) * | 2016-12-15 | 2018-06-29 | 北大方正集团有限公司 | 数据抽取方法及装置 |
JP2018156591A (ja) * | 2017-03-21 | 2018-10-04 | 株式会社リコー | 情報処理装置、情報処理プログラム、情報処理システムおよび情報処理方法 |
CN108768683A (zh) * | 2018-03-15 | 2018-11-06 | 北京奇艺世纪科技有限公司 | 一种自动化运维方法、装置和系统 |
-
2019
- 2019-09-19 CN CN201910884532.9A patent/CN110704124A/zh not_active Withdrawn
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002097610A1 (en) * | 2001-05-30 | 2002-12-05 | Bea Systems, Inc. | System and method for software component plug-in framework |
CN103164239A (zh) * | 2012-12-11 | 2013-06-19 | 广东电网公司电力科学研究院 | 基于微网可视化平台的插件实现方法 |
EP2752795A1 (en) * | 2013-01-08 | 2014-07-09 | Agfa Healthcare | Diagnostic workflow management with pluggable report sections |
CN103197950A (zh) * | 2013-04-19 | 2013-07-10 | 中国海洋大学 | 插件虚拟机实现方法 |
US20150058868A1 (en) * | 2013-08-23 | 2015-02-26 | Ramanathan Padinjarel | Techniques for a common object model |
CN103617508A (zh) * | 2013-12-12 | 2014-03-05 | 用友软件股份有限公司 | 可配置的业务规则插件扩展装置和业务规则插件扩展方法 |
CN104331289A (zh) * | 2014-10-31 | 2015-02-04 | 北京思特奇信息技术股份有限公司 | 一种将插件式设计应用到流程处理的方法及装置 |
CN106648559A (zh) * | 2015-10-28 | 2017-05-10 | 广东电网有限责任公司佛山供电局 | Android应用插件化开发系统和方法 |
CN105573760A (zh) * | 2015-12-16 | 2016-05-11 | 南京邮电大学 | 基于storm的物联网数据处理系统及方法 |
CN105760991A (zh) * | 2016-02-04 | 2016-07-13 | 北京慧友云商科技有限公司 | 一种可变服务流程的工作流引擎搭建方法 |
CN108228629A (zh) * | 2016-12-15 | 2018-06-29 | 北大方正集团有限公司 | 数据抽取方法及装置 |
JP2018156591A (ja) * | 2017-03-21 | 2018-10-04 | 株式会社リコー | 情報処理装置、情報処理プログラム、情報処理システムおよび情報処理方法 |
CN107423952A (zh) * | 2017-07-25 | 2017-12-01 | 苏州博纳讯动软件有限公司 | 一种可扩展的DevOps持续交付系统及其方法 |
CN107832098A (zh) * | 2017-10-26 | 2018-03-23 | 北京四维新世纪信息技术有限公司 | 一种可扩展的多源遥感数据展示处理方法 |
CN107958052A (zh) * | 2017-11-28 | 2018-04-24 | 广州启生信息技术有限公司 | 一种大规模网络爬虫程序的访问方法及装置 |
CN108768683A (zh) * | 2018-03-15 | 2018-11-06 | 北京奇艺世纪科技有限公司 | 一种自动化运维方法、装置和系统 |
Non-Patent Citations (1)
Title |
---|
赵艳杰: "通用管控平台的设计与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》, no. 7, pages 138 - 175 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114337920A (zh) * | 2021-12-23 | 2022-04-12 | 中国农业银行股份有限公司 | 编码解析方法、装置及电子设备 |
CN114337920B (zh) * | 2021-12-23 | 2024-03-26 | 中国农业银行股份有限公司 | 编码解析方法、装置及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10984012B2 (en) | System and method of consuming and integrating with rest-based cloud and enterprise services | |
US9990383B2 (en) | Constructing a data adaptor in an enterprise server data ingestion environment | |
US10275278B2 (en) | Stream processing task deployment using precompiled libraries | |
US11755461B2 (en) | Asynchronous consumer-driven contract testing in micro service architecture | |
CN111198863A (zh) | 一种规则引擎及其实现方法 | |
CN111026634A (zh) | 一种接口自动化测试系统、方法、装置及存储介质 | |
US20210389976A1 (en) | Techniques to facilitate a migration process to cloud storage | |
CN112631649A (zh) | 智能合约管理方法、装置、终端设备及介质 | |
CN113268245A (zh) | 代码分析方法、装置及存储介质 | |
US9996344B2 (en) | Customized runtime environment | |
CN110704124A (zh) | 一种流数据结构化处理系统及方法 | |
CN113535220B (zh) | 一种代码包管理方法和装置 | |
CN110955415A (zh) | 一种投影多平台服务适配的方法 | |
US11789712B2 (en) | Data configuration deployment framework | |
US20160070564A1 (en) | Dynamically schematized log messages for software applications | |
CN112783903B (zh) | 生成更新日志的方法和装置 | |
CN112256326B (zh) | 信息的处理方法、装置、设备及存储介质 | |
US20240143592A1 (en) | System and method for executing compiled user defined functions in vectorized databases | |
CN113495747B (zh) | 一种灰度发布方法和装置 | |
CN114860225A (zh) | 基于git子模块的类型安全系统、实现方法和电子设备 | |
US20230280922A1 (en) | Methods and apparatus to deduplicate duplicate memory in a cloud computing environment | |
CN110069514A (zh) | 消息处理方法和装置 | |
CN118151920A (zh) | 数据模型构建方法、装置、设备和介质 | |
WO2022115706A2 (en) | Data preparation for use with machine learning | |
CN116088932A (zh) | 基于微服务的应用系统的生成方法及装置、设备及介质 |
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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20200117 |
|
WW01 | Invention patent application withdrawn after publication |