CN111858569A - 基于流式计算的海量数据清洗的方法 - Google Patents
基于流式计算的海量数据清洗的方法 Download PDFInfo
- Publication number
- CN111858569A CN111858569A CN202010616966.3A CN202010616966A CN111858569A CN 111858569 A CN111858569 A CN 111858569A CN 202010616966 A CN202010616966 A CN 202010616966A CN 111858569 A CN111858569 A CN 111858569A
- Authority
- CN
- China
- Prior art keywords
- data
- operator
- cleaning
- computing
- flow chart
- 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
- 238000004140 cleaning Methods 0.000 title claims abstract description 81
- 238000000034 method Methods 0.000 title claims abstract description 39
- 238000005406 washing Methods 0.000 claims 4
- 238000010276 construction Methods 0.000 description 3
- 238000013075 data extraction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000008092 positive effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
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/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- 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/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
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)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明基于流式计算的海量数据清洗的方法,包括如下步骤:异构数据源通过数据接入模块统一接入数据,并以统一的格式推送入消息队列Kafka中,等待数据清洗,并将接入情况反馈给调度中心;配置清洗算子和设计算子流程图;计算集群中的计算节点与调度中心通信,调用算子流程图,按照设计的算子流程图的流程进行清洗操作,并将清洗运行情况反馈给调度中心。本发明采用分布式消息队列Kafka统一接入数据,通过Kafka将数据源格式进行统一,方便数据清洗统一处理。多个计算节点采用分布式并列形式部署,能够根据需求动态横向扩展,面对大批量数据有很强的鲁棒性。通过拖拽式设计清洗流程可以满足大部分清洗流程工作,具有很强的通用性。
Description
技术领域
本发明属于大数据ETL领域,更具体地涉及一种基于流式计算的海量数据清洗的方法。
背景技术
近几年随着信息化水平的不断提高,数据呈现爆炸式增长,进入大数据时代。大数据具有大量(Volume)、多样(Variety)、高速(Velocity)、价值(Value)和真实性(Veracity)等的5V特征。大数据的来临改变了很多传统工作方式,其中就包括ETL,ETL即数据抽取(Extract)、转换(Transform)、清洗(Cleaning)、装载(Loading)等过程,是数据仓库建设的重要环节,负责整个数据仓库的调度。其效率和清洗数据质量的高低直接决定数据仓库建设和决策的正确性。因此,一个高性能可扩展的数据清洗框架对数据仓库的构建有着重要作用。
目前数据清洗主要面临以下几个问题:(1)数据清洗性能低。传统的数据清洗方式是针对于小批量的数据清洗。在大数据时代数据很可能每天成TB级别数据增加,加上有些清洗算法消耗很高的计算能力,导致传统的数据清洗时间异常缓慢,甚至很难正常运行。(2)数据源多样且复杂,清洗流程复杂。大数据的多样性的特性决定需要清洗数据源的复杂多样。数据仓库中的数据往往来源于许多不同的系统,每个系统又包含多个模块,每个模块又包含单独的数据源,不仅包括结构化数据还包括各种复杂的半结构化数据。数据清洗是一个复杂的流程,中间可能会有多个算子,比如合并,拆分,值替换,算法等。多种算子会按照一定的逻辑关系进行组合,形成清洗流程。传统方式只能针对每一个清洗流程进行开发程序,大大降低了清洗的通用性。
因此,提供一种效率高通用性好的数据清洗方法是本领域亟待解决的问题。
发明内容
本发明的目的在于克服上述现有背景技术的不足之处,而提供一种基于流式计算的海量数据清洗的方法。它具有效率高,通用性好的特点。
本发明的目的是通过如下措施来达到的:基于流式计算的海量数据清洗的方法,其特征在于包括如下步骤:
(1)异构数据源通过数据接入模块统一接入数据,并以统一的格式推送入消息队列Kafka中,等待数据清洗,并将接入情况反馈给调度中心;
(2)配置清洗算子和设计算子流程图包括
A:在调度中心的算子管理界面配置清洗算子;
B:根据不同的清洗需求,将各种算子按照一定的顺序连接成的流程为算子流程图;
(3)计算集群中的计算节点与调度中心通信,调用步骤(2)中设计的算子流程图,按照设计的算子流程图的流程进行清洗操作,并将清洗运行情况反馈给调度中心。
在上述技术方案中,所述异构数据源包括关系型数据库,文本数据和Excel数据。
在上述技术方案中,所述统一接入数据格式包括:
A:数据的唯一标识uuid;
B:数据源的唯一标识nameId;
C:数据生成时间戳timestamp;
D:字段名fields;
E:数据内容datas。
在上述技术方案中,所述清洗算子主要包括:
A1:替换中文字符算子;
A2:字典替换算子;
A3:提取字段算子;
A4:条件过滤算子;
A5:去重算子;
A6:输出算子。
在上述技术方案中,所述算子流程图的节点类型主要包括:
(1)开始节点,标志一个流程的开始;
(2)算子节点,配置不同的算子;
(3)判断节点,配置不同分支判断;
(4)结束节点,标志一个流程的结束。
在上述技术方案中,所述设计算子流程图主要步骤包括:
(1)拖拽一个开始节点到画布;
(2)拖拽算子节点到画布,并配置算子类型;
(3)如果有判断节点,拖拽判断节点到画布;
(4)拖拽结束节点到画布;
(5)将所有节点按照算子的流程用线连接起来;
(6)保存算子流程。
在上述技术方案中,所述计算集群为多个计算节点组成,每个计算节点都可以运行单独的算子流程,计算节点可以根据计算需要来配制计算节点数量(即分布式部署)。
在上述技术方案中,所述步骤(3)的数据清洗流程是:
a:从Kafka消费数据,读取Kafka中的数据叫消费数据;
b:判断是否需要清洗,是继续清洗,否结束;
c:从调度中心读取算子流程图;
d:利用JAVA的反射原理调用相关算子进行清洗操作;
e:清洗后的数据进入数据仓库;
f:数据清洗入库结果反馈给调度中心;
g:结束。
与现有技术相比,本发明具有下列优点和积极效果:
(1)采用分布式消息队列Kafka统一接入数据,通过Kafka将数据源格式进行统一,解决多数据源复杂多样的问题,方便数据清洗统一处理。
(2)多个计算节点采用分布式并列形式部署,能够根据需求动态横向扩展,面对大批量数据有很强的鲁棒性。
(3)通过拖拽式设计清洗流程可以满足大部分清洗流程工作,具有很强的通用性。
附图说明
图1为本发明的技术架构图。
图2为本发明的数据清洗流程图。
具体实施方式
下面结合附图详细说明本发明的实施情况,但它们并不构成对本发明的限定,仅作举例而已。同时通过说明本发明的优点将变得更加清楚和容易理解。
参阅附图可知:基于流式计算的海量数据清洗的方法,其特征在于包括如下步骤:
(1)异构数据源通过数据接入模块统一接入数据,并以统一的格式推送入消息队列Kafka中,等待数据清洗,并将接入情况反馈给调度中心;
(2)配置清洗算子和设计算子流程图包括
A:在调度中心的算子管理界面配置清洗算子;
B:根据不同的清洗需求,将各种算子按照一定的顺序连接成的流程为算子流程图;
(3)计算集群中的计算节点与调度中心通信,调用步骤(2)中设计的算子流程图,按照设计的算子流程图的流程进行清洗操作,并将清洗运行情况反馈给调度中心。
所述异构数据源包括关系型数据库,文本数据和Excel数据。
在上述技术方案中,所述统一接入数据格式包括:
A:数据的唯一标识uuid;
B:数据源的唯一标识nameId;
C:数据生成时间戳timestamp;
D:字段名fields;
E:数据内容datas。
所述清洗算子主要包括:
A1:替换中文字符算子;
A2:字典替换算子;
A3:提取字段算子;
A4:条件过滤算子;
A5:去重算子;
A6:输出算子。
所述算子流程图的节点类型主要包括:
(1)开始节点,标志一个流程的开始;
(2)算子节点,配置不同的算子;
(3)判断节点,配置不同分支判断;
(4)结束节点,标志一个流程的结束。
所述设计算子流程图主要步骤包括:
(1)拖拽一个开始节点到画布;
(2)拖拽算子节点到画布,并配置算子类型;
(3)如果有判断节点,拖拽判断节点到画布;
(4)拖拽结束节点到画布;
(5)将所有节点按照算子的流程用线连接起来;
(6)保存算子流程。
算子流程图可根据用户需求任意设计,本方法提供的是一种通用框架,无需关心具体的算子清洗流程,算子清洗流程为现有技术。
所述计算集群为多个计算节点组成,每个计算节点都可以运行单独的算子流程,计算节点可以根据计算需要来配制计算节点数量。
所述步骤(3)的数据清洗流程是:
a:从Kafka消费数据,读取Kafka中的数据叫消费数据;
b:判断是否需要清洗,是继续清洗,否结束;
c:从调度中心读取算子流程图;
d:利用JAVA的反射原理调用相关算子进行清洗操作;
e:清洗后的数据进入数据仓库;
f:数据清洗入库结果反馈给调度中心;
g:结束。
如图1,总体技术架构是:关系型数据库,文本数据和excel数据三种数据通过统一数据接入模块进行统一封装后推送入分布式消息队列Kafka中,其他类型数据无需推送Kafka。计算集群中每个计算节点作为消费者消费Kafka中的数据,并从调度中心获取算子流程图,按照流程图的相关算子进行清洗,最终将清洗后的结果输出到数据仓库中。
计算节点主动从kafka中拉取消息,从消息中读取的nameId字段,并和调度中心通信判断是否存在nameId,若不存在则跳过该条消息,若存在则进入清洗环节,计算节点根据nameId从调度中心获取算子流程图。利用JAVA(一种计算机语言)的反射原理调用相关算子进行清洗操作。
如图2,步骤(3)的数据清洗流程是:a:从Kafka消费数据,读取Kafka中的数据叫消费数据;
b:判断是否需要清洗,是继续清洗,否结束;
c:从调度中心读取算子流程图;
d:利用JAVA的反射原理调用相关算子进行清洗操作;
e:清洗后的数据进入数据仓库;
f:数据清洗入库结果反馈给调度中心;
g:结束。
本发明采用分布式消息队列Kafka统一接入数据,通过Kafka将数据源格式进行统一,解决多数据源复杂多样的问题,方便数据清洗统一处理;多个计算节点采用分布式并列形式部署,能够根据需求动态横向扩展,面对大批量数据有很强的鲁棒性;通过拖拽式设计清洗流程可以满足大部分清洗流程工作,具有很强的通用性。
其它未说明的部分均属于现有技术。
Claims (8)
1.基于流式计算的海量数据清洗的方法,其特征在于包括如下步骤:
(1)异构数据源通过数据接入模块统一接入数据,并以统一的格式推送入消息队列Kafka中,等待数据清洗,并将接入情况反馈给调度中心;
(2)配置清洗算子和设计算子流程图包括
A:在调度中心的算子管理界面配置清洗算子;
B:根据不同的清洗需求,将各种算子按照一定的顺序连接成的流程为算子流程图;
(3)计算集群中的计算节点与调度中心通信,调用步骤(2)中设计的算子流程图,按照设计的算子流程图的流程进行清洗操作,并将清洗运行情况反馈给调度中心。
2.根据权利要求1所述的所述的基于流式计算的海量数据清洗的方法,其特征在于所述异构数据源包括关系型数据库,文本数据和Excel数据。
3.根据权利要求1或2所述的基于流式计算的海量数据清洗的方法,其特征在于所述统一接入数据格式包括:
A:数据的唯一标识uuid;
B:数据源的唯一标识nameId;
C:数据生成时间戳timestamp;
D:字段名fields;
E:数据内容datas。
4.根据权利要求1或2所述的基于流式计算的海量数据清洗的方法,其特征在于所述清洗算子主要包括:
A1:替换中文字符算子;
A2:字典替换算子;
A3:提取字段算子;
A4:条件过滤算子;
A5:去重算子;
A6:输出算子。
5.根据权利要求1所述的基于流式计算的海量数据清洗的方法,其特征在于所述算子流程图的节点类型主要包括:
(1)开始节点,标志一个流程的开始;
(2)算子节点,配置不同的算子;
(3)判断节点,配置不同分支判断;
(4)结束节点,标志一个流程的结束。
6.根据权利要求1所述的基于流式计算的海量数据清洗的方法,其特征在于所述设计算子流程图主要步骤包括:
(1)拖拽一个开始节点到画布;
(2)拖拽算子节点到画布,并配置算子类型;
(3)如果有判断节点,拖拽判断节点到画布;
(4)拖拽结束节点到画布;
(5)将所有节点按照算子的流程用线连接起来;
(6)保存算子流程。
7.根据权利要求1所述的基于流式计算的海量数据清洗的方法,其特征在于所述计算集群为多个计算节点组成,每个计算节点都可以运行单独的算子流程,计算节点可以根据计算需要来配制计算节点数量。
8.根据权利要求1所述的基于流式计算的海量数据清洗的方法,其特征在于所述步骤(3)的数据清洗流程是:
a:从Kafka消费数据,读取Kafka中的数据叫消费数据;
b:判断是否需要清洗,是继续清洗,否结束;
c:从调度中心读取算子流程图;
d:利用JAVA的反射原理调用相关算子进行清洗操作;
e:清洗后的数据进入数据仓库;
f:数据清洗入库结果反馈给调度中心;
g:结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010616966.3A CN111858569A (zh) | 2020-07-01 | 2020-07-01 | 基于流式计算的海量数据清洗的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010616966.3A CN111858569A (zh) | 2020-07-01 | 2020-07-01 | 基于流式计算的海量数据清洗的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111858569A true CN111858569A (zh) | 2020-10-30 |
Family
ID=72989299
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010616966.3A Pending CN111858569A (zh) | 2020-07-01 | 2020-07-01 | 基于流式计算的海量数据清洗的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111858569A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112650726A (zh) * | 2020-12-07 | 2021-04-13 | 浙江合众新能源汽车有限公司 | 一种流式计算行驶行程和充电行程的系统 |
CN113505119A (zh) * | 2021-07-29 | 2021-10-15 | 青岛以萨数据技术有限公司 | 一种基于多数据源的etl方法及装置 |
CN114048108A (zh) * | 2022-01-12 | 2022-02-15 | 中科星图智慧科技有限公司 | 多源异构数据的自动化治理方法及装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150278258A1 (en) * | 2014-03-31 | 2015-10-01 | Matthias Kienzle | Data cleansing tool with new cleansing tree |
CN105930523A (zh) * | 2016-05-25 | 2016-09-07 | 中国科学院新疆理化技术研究所 | 大数据背景下基于动态可配置规则的数据清洗框架 |
CN107526600A (zh) * | 2017-09-05 | 2017-12-29 | 成都优易数据有限公司 | 一种基于hadoop和spark的可视化数据挖掘分析平台及其数据清洗方法 |
CN108121778A (zh) * | 2017-12-14 | 2018-06-05 | 浙江航天恒嘉数据科技有限公司 | 一种异构数据交换与清洗系统及方法 |
CN108363782A (zh) * | 2018-02-11 | 2018-08-03 | 中国联合网络通信集团有限公司 | 一种数据清洗方法和数据清洗系统 |
CN109145040A (zh) * | 2018-06-28 | 2019-01-04 | 中译语通科技股份有限公司 | 一种基于双消息队列的数据治理方法 |
CN109684082A (zh) * | 2018-12-11 | 2019-04-26 | 中科恒运股份有限公司 | 基于规则算法的数据清洗方法及系统 |
CN111125209A (zh) * | 2019-11-25 | 2020-05-08 | 集奥聚合(北京)人工智能科技有限公司 | 一种支持多元异构类型数据的接入配置系统 |
-
2020
- 2020-07-01 CN CN202010616966.3A patent/CN111858569A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150278258A1 (en) * | 2014-03-31 | 2015-10-01 | Matthias Kienzle | Data cleansing tool with new cleansing tree |
CN105930523A (zh) * | 2016-05-25 | 2016-09-07 | 中国科学院新疆理化技术研究所 | 大数据背景下基于动态可配置规则的数据清洗框架 |
CN107526600A (zh) * | 2017-09-05 | 2017-12-29 | 成都优易数据有限公司 | 一种基于hadoop和spark的可视化数据挖掘分析平台及其数据清洗方法 |
CN108121778A (zh) * | 2017-12-14 | 2018-06-05 | 浙江航天恒嘉数据科技有限公司 | 一种异构数据交换与清洗系统及方法 |
CN108363782A (zh) * | 2018-02-11 | 2018-08-03 | 中国联合网络通信集团有限公司 | 一种数据清洗方法和数据清洗系统 |
CN109145040A (zh) * | 2018-06-28 | 2019-01-04 | 中译语通科技股份有限公司 | 一种基于双消息队列的数据治理方法 |
CN109684082A (zh) * | 2018-12-11 | 2019-04-26 | 中科恒运股份有限公司 | 基于规则算法的数据清洗方法及系统 |
CN111125209A (zh) * | 2019-11-25 | 2020-05-08 | 集奥聚合(北京)人工智能科技有限公司 | 一种支持多元异构类型数据的接入配置系统 |
Non-Patent Citations (1)
Title |
---|
王梓;梁正和;吴莹莹;: "基于Kafka、Disruptor技术对传统ETL的改进", 计算机技术与发展, no. 11, 28 May 2018 (2018-05-28) * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112650726A (zh) * | 2020-12-07 | 2021-04-13 | 浙江合众新能源汽车有限公司 | 一种流式计算行驶行程和充电行程的系统 |
CN113505119A (zh) * | 2021-07-29 | 2021-10-15 | 青岛以萨数据技术有限公司 | 一种基于多数据源的etl方法及装置 |
CN113505119B (zh) * | 2021-07-29 | 2023-08-29 | 青岛以萨数据技术有限公司 | 一种基于多数据源的etl方法及装置 |
CN114048108A (zh) * | 2022-01-12 | 2022-02-15 | 中科星图智慧科技有限公司 | 多源异构数据的自动化治理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111858569A (zh) | 基于流式计算的海量数据清洗的方法 | |
CN111241078A (zh) | 数据分析系统、数据分析的方法及装置 | |
US20210279265A1 (en) | Optimization for Real-Time, Parallel Execution of Models for Extracting High-Value Information from Data Streams | |
CN110502583B (zh) | 分布式数据同步方法、装置、设备及可读存储介质 | |
CN110334070A (zh) | 数据处理方法、系统、设备及存储介质 | |
CN102467412B (zh) | 一种处理操作请求的方法、装置及业务系统 | |
CN109871502B (zh) | 一种基于Storm的流数据正则匹配方法 | |
CN112000350A (zh) | 一种动态规则更新方法、装置及存储介质 | |
CN115373835A (zh) | Flink集群的任务资源调整方法、装置及电子设备 | |
CN112379884A (zh) | 基于Spark和并行内存计算的流程引擎实现方法及系统 | |
CN112800058A (zh) | 一种HBase二级索引的实现方法 | |
CN102122302B (zh) | 文档集中处理系统及方法 | |
CN102073918A (zh) | 工作流执行中基于服务质量的异常处理方法 | |
CN116185298A (zh) | 一种日志分布式存储的方法 | |
CN115630122A (zh) | 一种数据同步方法、装置、存储介质和计算机设备 | |
CN201252571Y (zh) | 一种高安全性的自动数据交换装置 | |
CN113641654A (zh) | 一种基于实时事件的营销处置规则引擎方法 | |
Egner et al. | Uima grid: Distributed large-scale text analysis | |
EP3380906A1 (en) | Optimization for real-time, parallel execution of models for extracting high-value information from data streams | |
CN113032522A (zh) | 一种文本并行数据挖掘系统及方法 | |
CN112800091A (zh) | 一种流批一体式计算控制系统及方法 | |
CN111475471A (zh) | 一种用于工业设计资源共享的信息系统 | |
CN111104527A (zh) | 一种富媒体文件解析方法 | |
Deshmukh et al. | DESIGN AND DEVELOPMENT OF AN EFFICIENT XML PARSING ALGORITHM: A REVIEW | |
CN108763049B (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 |