批量数据处理方法、装置、终端设备及存储介质制造方法及图纸

技术编号:24409641 阅读:39 留言:0更新日期:2020-06-06 08:37
本发明专利技术公开了一种批量数据处理方法、装置、终端设备及存储介质,属于大数据处理技术领域。本发明专利技术通过在kafka消息队列中创建一个空的Topic,在spark主函数中创建directStream,通过所述directStream从内存数据库中批量读取数据,并将读取的数据写入所述Topic,在将所述内存数据库中的数据读取完成后,对所述Topic中的数据进行处理,并将处理结果写入到kafka消息队列中,由于spark从内存数据库中读取批量数据,并行转换成DataSet,解决了使用Spark结合kafka不能解决的业务需求,从而大批量数据同步转换成Spark DataSet。

Batch data processing method, device, terminal equipment and storage medium

【技术实现步骤摘要】
批量数据处理方法、装置、终端设备及存储介质
本专利技术涉及大数据处理
,尤其涉及一种批量数据处理方法、装置、终端设备及存储介质。
技术介绍
在过去十年中,人类所产生数据量的爆发带来了大数据处理技术的发展。其中Spark以其优秀的流式处理能力获得越来越多开发者的青睐。Spark-streaming和kafka的框架组合成为了一种稳定的实时处理方案,可以非常容易的构建一个可扩展、具有容错机制的流式应用。Spark一般的应用模式为:1.实时处理,由服务层将数据发送到kafka(或者使用flume采集HDFS或者Mysql数据到kafka),然后Spark-Streaming可以基于某一段时间间隔内的数据,采用RDD相关操作完成业务的计算需求,继而将结果输出到下一层。2.离线处理,由于Spark基于内存的计算方式,可以将离线数据存储到HDFS中,由Spark读取该文件,然后做相关计算。此方法可以达到比MapReduce更快的计算速度,继而降低离线计算的时间。现有的Spark计算方式,如处理kafka数据时,相同的topic必须保持数据格式的一致性,且一次只能处理小批量数据。当需要一次性读取不同字段格式的大批量数据,并同步转换成DataSet时比较困难。
技术实现思路
本专利技术的主要目的在于提供一种批量数据处理方法、装置、终端设备及存储介质,旨在解决现有技术中读取不同字段格式的大批量数据,并同步转换成DataSet时比较困难的技术问题。为实现上述目的,本专利技术提供一种批量数据处理方法,所述批量数据处理方法包括以下步骤:在kafka消息队列中创建一个空的Topic;在spark主函数中创建directStream;通过所述directStream从内存数据库中批量读取数据,并将读取的数据写入所述Topic;在将所述内存数据库中的数据读取完成后,对所述Topic中的数据进行处理,并将处理结果写入到kafka消息队列中。可选地,所述通过所述directStream从内存数据库中批量读取数据,并将读取的数据写入所述Topic,包括:通过所述directStream将内存数据库中的数据批量读取到预设清单中;将所述预设清单中的数据转换为JavaRDD;将所述JavaRDD中的每条数据进行protobuf转化;将转换后的每条数据转换成对应的Object,并将所述Object存储到所述JavaRDD中;通过sparkSession将所述JavaRDD转换为DataSet,并注册与所述DataSet对应的临时表;将所述DataSet和对应的临时表写入所述Topic。可选地,所述在将所述内存数据库中的数据读取完成后,对所述Topic中的数据进行处理,并将处理结果写入到kafka消息队列中,包括:在将所述内存数据库中的数据读取完成后,通过Spark算子或者TableAPI对所述Topic中的数据进行处理,并将处理结果写入到kafka消息队列中。可选地,所述在kafka消息队列中创建一个空的Topic之前,所述批量数据处理方法还包括:将业务数据批量加载至内存数据库中。可选地,所述将业务数据批量加载至内存数据库中之后,所述批量数据处理方法还包括:在业务数据有变更时,将变更后的业务数据覆盖所述内存数据库中变更前的业务数据。可选地,所述将业务数据批量加载至内存数据库中,包括:对业务数据进行压缩,并将压缩后的业务数据批量加载至内存数据库中。可选地,所述对业务数据进行压缩,并将压缩后的业务数据批量加载至内存数据库中,包括:通过protobuf方式对所述业务数据进行压缩,并将压缩后的业务数据批量加载至内存数据库中。此外,为实现上述目的,本专利技术还提供一种批量数据处理装置,所述批量数据处理装置包括:信息创建模块,用于在kafka消息队列中创建一个空的Topic;函数创建模块,用于在spark主函数中创建directStream;数据写入模块,用于通过所述directStream从内存数据库中批量读取数据,并将读取的数据写入所述Topic;结果写入模块,用于在将所述内存数据库中的数据读取完成后,对所述Topic中的数据进行处理,并将处理结果写入到kafka消息队列中。此外,为实现上述目的,本专利技术还提供一种终端设备,所述终端设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的批量数据处理程序,所述批量数据处理程序配置为实现如上所述的批量数据处理方法的步骤。此外,为实现上述目的,本专利技术还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有批量数据处理程序,所述批量数据处理程序被处理器执行时实现如上所述的批量数据处理方法的步骤。本专利技术通过在kafka消息队列中创建一个空的Topic,在spark主函数中创建directStream,通过所述directStream从内存数据库中批量读取数据,并将读取的数据写入所述Topic,在将所述内存数据库中的数据读取完成后,对所述Topic中的数据进行处理,并将处理结果写入到kafka消息队列中,由于spark从内存数据库中读取批量数据,并行转换成DataSet,解决了使用Spark结合kafka不能解决的业务需求,从而大批量数据同步转换成SparkDataSet。附图说明图1为本专利技术批量数据处理方法第一实施例的流程示意图;图2为本专利技术批量数据处理方法第二实施例的流程示意图;图3为本专利技术批量数据处理装置一实施例的结构框图;图4是本专利技术实施例方案涉及的硬件运行环境的终端设备结构示意图。本专利技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。参照图1,图1为本专利技术批量数据处理方法第一实施例的流程示意图。在第一实施例中,所述批量数据处理方法包括以下步骤:S10:在kafka消息队列中创建一个空的Topic。需要说明的是,在kafka消息队列中,Topic是一个存储消息的逻辑概念,可以认为是一个消息集合。每条消息发送到kafka集群的消息都有一个类别。物理上来说,不同的Topic的消息是分开存储的,每个Topic可以有多个生产者向它发送消息,也可以有多个消费者去消费其中的消息。应理解的是,kafka中最基本的数据单元就是消息,而一条消息其实是由Key+Value组成的(Key是可选项,可传空值,Value也可以传空值)键值对。S20:在spark主函数中创建directStream。可理解的是,在创建directStream时,设置N秒消费一次所述Topic中的数据,例如:将N设置为10秒、15秒或20秒,又或者设置为1分钟、2分钟或3分钟等,本实施例对此不本文档来自技高网...

【技术保护点】
1.一种批量数据处理方法,其特征在于,所述批量数据处理方法包括以下步骤:/n在kafka消息队列中创建一个空的Topic;/n在spark主函数中创建directStream;/n通过所述directStream从内存数据库中批量读取数据,并将读取的数据写入所述Topic;/n在将所述内存数据库中的数据读取完成后,对所述Topic中的数据进行处理,并将处理结果写入到kafka消息队列中。/n

【技术特征摘要】
1.一种批量数据处理方法,其特征在于,所述批量数据处理方法包括以下步骤:
在kafka消息队列中创建一个空的Topic;
在spark主函数中创建directStream;
通过所述directStream从内存数据库中批量读取数据,并将读取的数据写入所述Topic;
在将所述内存数据库中的数据读取完成后,对所述Topic中的数据进行处理,并将处理结果写入到kafka消息队列中。


2.如权利要求1所述的批量数据处理方法,其特征在于,所述通过所述directStream从内存数据库中批量读取数据,并将读取的数据写入所述Topic,包括:
通过所述directStream将内存数据库中的数据批量读取到预设清单中;
将所述预设清单中的数据转换为JavaRDD;
将所述JavaRDD中的每条数据进行protobuf转化;
将转换后的每条数据转换成对应的Object,并将所述Object存储到所述JavaRDD中;
通过sparkSession将所述JavaRDD转换为DataSet,并注册与所述DataSet对应的临时表;
将所述DataSet和对应的临时表写入所述Topic。


3.如权利要求2所述的批量数据处理方法,其特征在于,所述在将所述内存数据库中的数据读取完成后,对所述Topic中的数据进行处理,并将处理结果写入到kafka消息队列中,包括:
在将所述内存数据库中的数据读取完成后,通过Spark算子或者TableAPI对所述Topic中的数据进行处理,并将处理结果写入到kafka消息队列中。


4.如权利要求1~3中任一项所述的批量数据处理方法,其特征在于,所述在kafka消息队列中创建一个空的Topic之前,所述批量数据处理方法还包括:
将业务数据批量加载...

【专利技术属性】
技术研发人员:杨阳贺璟璐陈旭
申请(专利权)人:深圳迅策科技有限公司
类型:发明
国别省市:广东;44

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

1