CN110019152A - 一种大数据清洗方法 - Google Patents
一种大数据清洗方法 Download PDFInfo
- Publication number
- CN110019152A CN110019152A CN201710622180.0A CN201710622180A CN110019152A CN 110019152 A CN110019152 A CN 110019152A CN 201710622180 A CN201710622180 A CN 201710622180A CN 110019152 A CN110019152 A CN 110019152A
- Authority
- CN
- China
- Prior art keywords
- data
- cleaning
- spark
- server
- big data
- 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/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
Abstract
本发明公开了一种大数据清洗方法,先对清洗流程进行配置定义,再对清洗流程进行解析并转换为Spark的原子操作。将清洗任务提交至大数据分析框架Spark集群后,由Spark集群进行数据清洗,因为每个清洗流程中的每个步骤都已转换为Spark的原子操作,所以在Spark集群中进行的各个清洗步骤均可以分布式并行执行,从而能够显著提高数据清洗的清洗速度,实现高速度和高效率的数据清洗,更加适用于当前的大数据环境。
Description
技术领域
本发明属于数据技术领域,特别涉及一种大数据清洗方法。
背景技术
近年来,大数据如浪潮般席卷全球,深刻改变了人们的生活、工作和思维方式。业界通常用4个V来概括大数据的特征。一是数据体量巨大(Volume)。从TB级别,跃升到PB级别。二是数据类型繁多(Variety)。这种类型的多样性也让数据被分为结构化数据和非结构化数据。相对于以往便于存储的以文本为主的结构化数据,非结构化数据越来越多,包括网络日志、音频、视频、图片、地理位置信息等,这些多类型的数据对数据的处理能力提出了更高要求。三是价值密度低(Value)。价值密度的高低与数据总量的大小成反比。以视频为例,一部1小时的视频,在连续不间断的监控中,有用数据可能仅有一二秒。如何通过强大的机器算法更迅速地完成数据的价值“提纯”成为目前大数据背景下亟待解决的难题。四是处理速度快(Velocity)。这是大数据区分于传统数据挖掘的最显著特征。根据IDC的“数字宇宙”的报告,预计到2020年,全球数据使用量将达到35.2ZB。在如此海量的数据面前,处理数据的效率就是企业的生命。
随着互联网技术的不断发展,企业应用应用系统所产生的数据呈爆炸性增长。动辄达到数百TB甚至数十至数百PB规模的行业/企业大数据已远远超出了现有传统的计算技术和信息系统的处理能力,因此,寻求有效的大数据处理技术、方法和手段已经成为现实世界的迫切需求。百度目前的总数据量已超过1000PB,每天需要处理的网页数据达到10PB~100PB;淘宝累计的交易数据量高达100PB;Twitter每天发布超过2亿条消息;新浪微博每天发帖量达到8000万条;中国移动一个省的电话通联记录数据每月可达0.5PB~1PB;一个省会城市公安局道路车辆监控数据三年可达200亿条、总量120TB。据世界权威IT信息咨询分析公司IDC研究报告预测:全世界数据量未来10年将从2009年的0.8ZB增长到2020年的35ZB(1ZB=1000EB=1000000PB),10年将增长44倍,年均增长40%。而传统的交互式数据库,对如此庞大的数据处理显得力不从心。
在数据产生和挖掘的过程中,数据量呈大幅度增长。在增长的过程中,数据量的叠加造成了大量数据重复,存在许多垃圾数据或无用数据。另外,数据中存在不完整信息需要补全。为了提高效率和响应速度,需要根据不同业务方向和类型,从现有的大数据量中清洗出对应的数据。对于企业而言,在大数据量的业务需求中,客户的满意度取决于数据的完整度以及查看所需信息的响应速度。为了满足需求,需要进行数据规则分析,从而制定不同业务类型的清洗规则。对于不同的数据挖掘系统,都是针对特定的应用领域进行数据清洗,具体包括:检测并消除数据异常、检测并消除近似重复记录、对数据进行集成以及对特定领域数据进行清洗。然而,对于数据中存在大量缺失值的属性,通常采用的措施是直接删除,但是在有些系统进行抽取-转换-加载(ETL)处理时,不能直接处理大量的缺失值;而对于比较重要的属性,同样会存在少量的缺失值,需要将数据补充完整后进行一系列的数据挖掘。针对不完整的数据特征,在数据清洗过程中通常采取下面两种方式对数据进行填补:其一,将缺失的属性值用同一常数替换,例如“Unknown”。这种方式通常用于处理数据中存在大量缺失值属性的数据,先用一个替换值将空值进行约束替换,然后,如果处理后的数据对后期数据挖掘工作没有价值将会选择删除。其二,利用缺失值属性的最可能值填充缺失值。对于缺失比较重要属性的数据,事先对每个属性进行值统计,统计其值的分布状态和频率,对缺失值属性的所有遗漏的值均利用出现频率最高的值来填补。
总的来说,数据清洗的最终目的是对各种数据进行对应方式的处理,得到标准的、干净的、连续的、所需的数据以进行数据统计、数据挖掘等使用。在以往的数据清洗处理过程中,web方式和大部分数据清洗程序都是在没有经过清洗的大数据量中进行汇总和分析,这样做的后果不仅消耗大量的服务器资源,而且也会大大降低服务器的响应速度。
发明内容
本发明的目的在于提供一种大数据清洗方法,能够显著提高数据的清洗速度和清洗效率。
本发明的具体技术方案是:一种大数据清洗方法,包括以下步骤:
1)对清洗流程配置清洗规则;
2)对清洗流程进行解析,将清洗流程转换为Spark操作;
3)根据需要清洗的所述数据大小,配置Spark集群服务器资源;
4)部署清洗程序任务;
5)清洗后所述数据的存储。
其中,步骤1)中所述清洗规则为:配置单表中去除重复数据所依据的字段、配置所述单表中补全内容所依据的字段、配置单表中用于判断垃圾数据所依据的字段、配置多表中进行关联所依据的字段、配置多表中对关联后的数据进行筛选的条件和/或配置多表中关联后的所需数据的字段。
其中,步骤2)中所述Spark操作以分布式并行执行。
其中,步骤3)中所述Spark集群服务器资源包括所述服务器的内存大小、所述清洗程序对应的分片大小、所述服务器的最大CPU核数和/或所述清洗程序的日志目录。
其中,步骤3)中所述Spark集群服务器,其具体工作内容包括:从数据源加载数据;利用分布式并行的清洗算法,对数据进行清洗;对数据清洗的结果进行存储。
其中,所述数据源为数据库或分布式文件系统。
其中,所述清洗算法包括空值处理、去重处理和排序处理中的至少一种。
其中,步骤4)中所述部署清洗程序任务包括:上传待清洗数据包至任务调度服务器、配置任务调度并提交给所述Spark集群服务器以及监控清洗程序运行过程。
其中,步骤5)中所述存储的方式为HDFS、Hive或Hbase。
本发明的有益效果:
本发明利用大数据量在数据挖掘及网络爬虫的过程中存储的数据存在重复数据、垃圾数据以及需要根据所需字段进行内容补全的字段,并利用大数据集群的资源、spark集群的性能,综合评估大数据在清洗的过程完成的数据准确度及清洗速度,然后基于大数据平台的分布式处理能力,进行数据量清洗工作,处理后的数据量分别存储在HDFS和Hbase中,以便根据不同的业务类型和方向提取数据或者提供web页面进行数据展示。
采用本发明实施例提供的大数据清洗方法,先对清洗流程进行配置定义,再对清洗流程进行解析并转换为Spark的原子操作。将清洗任务提交至大数据分析框架Spark集群后,由Spark集群进行数据清洗,因为每个清洗流程中的每个步骤都已转换为Spark的原子操作,所以在Spark集群中进行的各个清洗步骤均可以分布式并行执行,从而能够显著提高数据清洗的清洗速度,实现高速度和高效率的数据清洗,更加适用于当前的大数据环境。
具体实施方式
以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用于解释本发明,并不用于限定本发明。
一种大数据清洗方法,包括以下步骤:
1)对清洗流程配置清洗规则;
2)对清洗流程进行解析,将清洗流程转换为Spark操作;
3)根据需要清洗的所述数据大小,配置Spark集群服务器资源;
4)部署清洗程序任务;
5)清洗后所述数据的存储。
实施例
提供了一种基于大数据量的清洗方法,该方法采用Scala语言来设计清洗程序,采用Hbase的key-value存储非关系型数据,在程序完全开发完毕和测试达标后,再根据Spark分布式计算的优点,通过任务调度来部署清洗程序,保证每天产生的数据量都能经过清洗。
S1,根据HDFS或者Hive或者Hbase中的数据,依据业务类型配置清洗的规则,包括:配置单表中将根据哪些字段的值去除重复的数据、配置单表中将根据哪些字段的值补全数据内容、配置单表中将根据哪些字段的值判断数据为垃圾数据、配置多表中将根据哪些字段进行关联(例如左关联、右关联及匹配)、配置多表中对关联后的数据进行筛选的条件、以及配置多表中关联后所需数据的字段。
S2,对清洗流程进行解析,将清洗流程转换为Spark的原子操作。大数据清洗引擎根据配置文件的定义信息对清洗流程进行解析,将清洗步骤转换为Spark的原子操作。Spark是云计算领域的继Hadoop之后的最热门的通用的并行计算框架,是一种可伸缩(scalable)的基于内存计算(In-Memory Computing)的集群数据分析平台,比Hadoop集群存储方法更有性能优势。Spark基于内存的分布式数据集,优化了迭代式的工作负载以及交互式查询,从而提高了大数据计算的速度和效率。
S3,根据所需清洗数据量的大小,配置用于清洗程序的Spark集群服务器资源,包括清洗程序所需的服务器的内存大小、清洗程序对应的分片大小、清洗程序所需服务器的最大CPU核数、以及清洗程序的日志目录以便及时捕捉错误,首先初始化Spark集群,加载Spark上下文环境,为清洗操作提交做准备。然后根据清洗流程定义的顺序,将具体的数据清洗操作提交至Spark集群。
S4,由Spark集群进行数据清洗。
S41:从数据源加载数据。数据源可以是不同类型的数据来源,本实施例中的数据源为数据库或分布式文件系统(Hadoop Distributed File System,简称HDFS)。也可以根据具体的业务进行扩展,扩展数据源类型只需要相应的增加数据加载原子处理即可,数据源的加载过程也是分布式并行处理。
S42:利用分布式并行的清洗算法,对数据进行清洗。本实施例中例举了三种清洗算法:空值处理、去重处理和排序处理。作为优选方案,多个清洗算法之间的数据流转通过弹性分布式数据集(Resilient Distributed Datasets,简称RDD)传递。因为Spark集群建立在统一抽象的RDD之上,所以使得Spark集群可以以基本一致的方式应对不同的大数据处理场景,包括MapReduce、Streaming、SQL、Machine Learning、Graph等。RDD是一个容错的、并行的数据结构,可以让用户显式地将数据存储到磁盘和内存中,并能控制数据的分区。
S5:对数据清洗的结果进行存储。启动数据存储引擎,也就是启动对清洗的结果数据进行存储的程序。数据存储引擎根据配置定义中的结果定义选择要存储的方式。由于每个清洗流程中的每个步骤都已转换为Spark的原子操作,所以在Spark集群中进行的各个清洗步骤均可以分布式并行执行,从而能够显著提高数据清洗的清洗速度,实现高速度和高效率的数据清洗,更加适用于当前的大数据环境。此外,Spark集群可以很好的支持扩展,基于配置的方式进行清洗流程定义可以降低程序的耦合性,增加或者删除相应的清洗算法都可以在最小的改动下实现。
所述存储功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上对本发明的目的、技术方案和有益效果进行了详细说明,应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种大数据清洗方法,其特征在于,包括以下步骤:
1)对清洗流程配置清洗规则;
2)对清洗流程进行解析,将清洗流程转换为Spark操作;
3)根据需要清洗的所述数据大小,配置Spark集群服务器资源;
4)部署清洗程序任务;
5)清洗后所述数据的存储。
2.根据权利要求1所述方法,其特征在于,步骤1)中所述清洗规则为:配置单表中去除重复数据所依据的字段、配置所述单表中补全内容所依据的字段、配置单表中用于判断垃圾数据所依据的字段、配置多表中进行关联所依据的字段、配置多表中对关联后的数据进行筛选的条件和/或配置多表中关联后的所需数据的字段。
3.根据权利要求1所述方法,其特征在于,步骤2)中所述Spark操作以分布式并行执行。
4.根据权利要求1所述方法,其特征在于,步骤3)中所述Spark集群服务器资源包括所述服务器的内存大小、所述清洗程序对应的分片大小、所述服务器的最大CPU核数和/或所述清洗程序的日志目录。
5.根据权利要求1所述方法,其特征在于,步骤3)中所述Spark集群服务器,其具体工作内容包括:从数据源加载数据;利用分布式并行的清洗算法,对数据进行清洗;对数据清洗的结果进行存储。
6.根据权利要求5所述方法,其特征在于,所述数据源为数据库或分布式文件系统。
7.根据权利要求5所述方法,其特征在于,所述清洗算法包括空值处理、去重处理和排序处理中的至少一种。
8.根据权利要求1所述方法,其特征在于,步骤4)中所述部署清洗程序任务包括:上传待清洗数据包至任务调度服务器、配置任务调度并提交给所述Spark集群服务器以及监控清洗程序运行过程。
9.根据权利要求1所述方法,其特征在于,步骤5)中所述存储的方式为HDFS、Hive或Hbase。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710622180.0A CN110019152A (zh) | 2017-07-27 | 2017-07-27 | 一种大数据清洗方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710622180.0A CN110019152A (zh) | 2017-07-27 | 2017-07-27 | 一种大数据清洗方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110019152A true CN110019152A (zh) | 2019-07-16 |
Family
ID=67185888
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710622180.0A Pending CN110019152A (zh) | 2017-07-27 | 2017-07-27 | 一种大数据清洗方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110019152A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112115127A (zh) * | 2020-09-09 | 2020-12-22 | 陕西云基华海信息技术有限公司 | 一种基于python脚本的分布式大数据清洗方法 |
CN114860349A (zh) * | 2022-07-06 | 2022-08-05 | 深圳华锐分布式技术股份有限公司 | 数据加载方法、装置、设备及介质 |
CN116166655A (zh) * | 2023-04-25 | 2023-05-26 | 尚特杰电力科技有限公司 | 大数据清洗系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106202569A (zh) * | 2016-08-09 | 2016-12-07 | 北京北信源软件股份有限公司 | 一种基于大数据量的清洗方法 |
CN106294745A (zh) * | 2016-08-10 | 2017-01-04 | 东方网力科技股份有限公司 | 大数据清洗方法及装置 |
-
2017
- 2017-07-27 CN CN201710622180.0A patent/CN110019152A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106202569A (zh) * | 2016-08-09 | 2016-12-07 | 北京北信源软件股份有限公司 | 一种基于大数据量的清洗方法 |
CN106294745A (zh) * | 2016-08-10 | 2017-01-04 | 东方网力科技股份有限公司 | 大数据清洗方法及装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112115127A (zh) * | 2020-09-09 | 2020-12-22 | 陕西云基华海信息技术有限公司 | 一种基于python脚本的分布式大数据清洗方法 |
CN112115127B (zh) * | 2020-09-09 | 2023-03-03 | 陕西云基华海信息技术有限公司 | 一种基于python脚本的分布式大数据清洗方法 |
CN114860349A (zh) * | 2022-07-06 | 2022-08-05 | 深圳华锐分布式技术股份有限公司 | 数据加载方法、装置、设备及介质 |
CN116166655A (zh) * | 2023-04-25 | 2023-05-26 | 尚特杰电力科技有限公司 | 大数据清洗系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230041672A1 (en) | Enterprise data processing | |
Zaharia et al. | Fast and interactive analytics over Hadoop data with Spark | |
CN104424229B (zh) | 一种多维度拆分的计算方法及系统 | |
TWI496015B (zh) | Text matching method and device | |
CN103620601B (zh) | 在映射缩减过程中汇合表 | |
US9280381B1 (en) | Execution framework for a distributed file system | |
CN106202569A (zh) | 一种基于大数据量的清洗方法 | |
CN110502509B (zh) | 一种基于Hadoop与Spark框架的交通大数据清洗方法及相关装置 | |
US10387415B2 (en) | Data arrangement management in a distributed data cluster environment of a shared pool of configurable computing resources | |
US11210271B1 (en) | Distributed data processing framework | |
CN106294745A (zh) | 大数据清洗方法及装置 | |
CN108073625A (zh) | 用于元数据信息管理的系统及方法 | |
WO2019120093A1 (en) | Cardinality estimation in databases | |
CN110019152A (zh) | 一种大数据清洗方法 | |
US20240095170A1 (en) | Multi-cache based digital output generation | |
CN107704620A (zh) | 一种档案管理的方法、装置、设备和存储介质 | |
Gaurav et al. | An outline on big data and big data analytics | |
CN106919566A (zh) | 一种基于海量数据的查询统计方法及系统 | |
Talib et al. | A multi-agent framework for data extraction, transformation and loading in data warehouse | |
KR20160050930A (ko) | 대용량 분산 파일 시스템에서 데이터의 수정을 포함하는 트랜잭션 처리 장치 및 컴퓨터로 읽을 수 있는 기록매체 | |
CN104063456A (zh) | 基于向量查询的自媒体传播图谱分析方法和装置 | |
CN106599244B (zh) | 通用的原始日志清洗装置及方法 | |
CN115174580A (zh) | 一种基于大数据的数据处理方法及系统 | |
JP6393193B2 (ja) | データ仮想化装置及び大規模データ処理プログラム | |
El Sibai et al. | Information technology infrastructure for data streams native filtering |
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 |