CN108255628A - 一种数据处理方法及装置 - Google Patents

一种数据处理方法及装置 Download PDF

Info

Publication number
CN108255628A
CN108255628A CN201611247794.7A CN201611247794A CN108255628A CN 108255628 A CN108255628 A CN 108255628A CN 201611247794 A CN201611247794 A CN 201611247794A CN 108255628 A CN108255628 A CN 108255628A
Authority
CN
China
Prior art keywords
location information
consumption data
message system
pending
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
Application number
CN201611247794.7A
Other languages
English (en)
Inventor
涓ユ尝
严波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Gridsum Technology Co Ltd
Original Assignee
Beijing Gridsum Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Gridsum Technology Co Ltd filed Critical Beijing Gridsum Technology Co Ltd
Priority to CN201611247794.7A priority Critical patent/CN108255628A/zh
Publication of CN108255628A publication Critical patent/CN108255628A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种数据处理方法及装置,涉及计算机技术领域,主要目的是保证数据处理过程中消费数据的完整性。所述方法包括:将待处理消费数据在消息***中的位置信息持久化至预置存储空间;当重启处理程序时,根据所述位置信息从消息***中重新加载所述待处理消费数据;对所述待处理消费数据进行处理。本发明主要用于消费数据的处理。

Description

一种数据处理方法及装置
技术领域
本发明涉及计算机技术领域,尤其是一种数据处理方法及装置。
背景技术
Kafka是一种高吞吐量的分布式发布订阅消息***,它可以处理消费者规模的网站中的所有动作流数据,如用户的网页浏览、搜索或者其他的用户行为。
通常在Kafka消息***中,数据的发送者为生产者,数据的接收者为消费者,数据的传递者为中转服务器,当消费者从Kafka消息***中获取到消费数据后,需要对消费数据的读取情况进行记录,以方便根据读取记录对消费数据进行实时处理。
目前通常采用spark分布平台中的spark streaming组件对获取到的消费数据进行批量处理,首先当每次从Kafka消息***中获取到消费数据后,spark streaming组件会对处理完的消费数据的位置进行记录,然而,当在对消费数据进行处理的过程中出现异常情况时,如处理的过程中处理进程被意外关掉或者spark streaming程序运行停止的情况下,即便spark streaming组件已经记录了消费数据的位置,但在重新启用处理进程或者spark streaming程序时,也会导致消费数据的丢失,无法保证消费数据的完整性。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种数据处理方法及装置,能够保证数据处理过程中消费数据的完整性。
一方面,本发明提供了一种数据处理方法,包括:
将待处理消费数据在消息***中的位置信息持久化至预置存储空间;
当重启处理程序时,根据所述位置信息从消息***中重新加载所述待处理消费数据;
对所述待处理消费数据进行处理。
进一步地,所述将待处理消费数据在消息***中的位置信息持久化至预置存储空间包括:
获取待处理消费数据在消息***中的位置信息;
获取所述位置信息的持久化存储类型;
根据所述持久化存储类型将所述位置信息持久化至预置存储空间。
进一步地,所述根据所述位置信息从消息***中重新加载所述待处理消费数据包括:
根据所述位置信息的持久化存储类型从预置存储空间中读取所述位置信息;
根据所述位置信息从消息***中重新加载所述待处理消费数据。
进一步地,在所述将待处理消费数据在消息***中的位置信息持久化至预置存储空间之前,所述方法还包括:
按照预设时间间隔对从消息***中获取的待处理消费数据进行处理。
进一步地,在所述对所述待处理消费数据进行处理之后,所述方法还包括:
处理完成从消息***中获取的所述待处理消费数据后,更新所述预置存储区域中的位置信息,以便于根据所述更新后的位置信息从所述消息***中加载下一批次的待处理消费数据。
进一步地,当所述持久化存储类型为文件***存储时,所述将待处理消费数据在消息***中的位置信息持久化至预置存储空间包括:
获取所述待处理消费数据在所述消息***中的位置信息,所述位置信息中包括不同类型消费数据的分区字段以及分区位置字段;
在所述文件***中创建预设文件;
将所述位置信息持久化至所述预设文件中;
进一步地,当所述持久化存储类型为数据库存储时,所述将待处理消费数据在消息***中的位置信息持久化至预置存储空间包括:
获取所述待处理消费数据在所述消息***中的位置信息,所述位置信息中包括不同类型消费数据的分区字段以及分区位置字段;
在所述数据库中创建预设表格;
将所述位置信息持久化至所述预设表格中。
另一方面,本发明提供一种数据处理装置,包括:
存储单元,用于将待处理消费数据在消息***中的位置信息持久化至预置存储空间;
加载单元,用于当重启处理程序时,根据所述位置信息从消息***中重新加载所述待处理消费数据;
第一处理单元,用于对所述待处理消费数据进行处理。
进一步地,所述存储单元包括:
获取模块,用于获取待处理消费数据在消息***中的位置信息;
解析模块,用于获取所述位置信息的持久化存储类型;
存储模块,用于根据所述持久化存储类型将所述位置信息持久化至预置存储空间。
进一步地,所述加载单元包括:
读取模块,用于根据所述位置信息的持久化存储类型从预置存储空间中读取所述位置信息;
加载模块,用于根据所述位置信息从消息***中重新加载所述待处理消费数据。
进一步地,所述装置还包括:
第二处理单元,用于按照预设时间间隔对从消息***中获取的待处理消费数据进行处理。
进一步地,所述装置还包括:
更新单元,用于处理完成从消息***中获取的所述待处理消费数据后,更新所述预置存储区域中的位置信息,以便于根据所述更新后的位置信息从所述消息***中加载下一批次的待处理消费数据。
进一步地,当所述持久化存储类型为文件***存储时,
所述存储单元,还用于获取所述待处理消费数据在所述消息***中的位置信息,所述位置信息中包括不同类型消费数据的分区字段以及分区位置字段;
所述存储单元,还用于在所述文件***中创建预设文件;
所述存储单元,还用于将所述位置信息持久化至所述预设文件中;
进一步地,当所述持久化存储类型为数据库存储时,
所述存储单元,还用于获取所述待处理消费数据在所述消息***中的位置信息,所述位置信息中包括不同类型消费数据的分区字段以及分区位置字段;
所述存储单元,还用于在所述数据库中创建预设表格;
所述存储单元,还用于将所述位置信息持久化至所述预设表格中。
借由上述技术方案,本发明提供的一种数据处理方法及装置,通过将待处理消费数据在消息***中的位置信息持久化至预置存储空间,使得当对消费数据进行处理的过程中出现异常情况时,进而根据持久化至预置存储空间的位置信息能够从消息***中能够加载待处理消费数据,从而保证数据处理过程中消费数据的完整性。相对于现有的数据处理方法,本发明实施例通过在重新启动程序后,从持久化的预置存储空间中获取到待处理消费数据的位置信息,进而从新处理因为程序异常而未处理完成的消费数据,不会丢失消费数据,从而保证了消费数据的完整性。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提供的一种数据处理方法流程示意图;
图2示出了本发明实施例提供的另一种数据处理方法流程示意图;
图3示出了本发明实施例提供的将位置信息持久化至预置存储空间的流程示意图;
图4示出了本发明实施例提供的从预置存储空间中加载位置信息的流程示意图;
图5示出了本发明实施例提供的正常情况下数据处理的流程示意图;
图6示出了本发明实施例提供的异常情况下数据处理的流程示意图;
图7示出了本发明实施例提供的一种数据处理装置结构示意图;
图8示出了本发明实施例提供的另一种数据处理装置结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明实施例提供了一种数据处理方法,如图1所示,该方法可以应用于spark分布平台中消费数据的处理,通过对待处理消费数据在Kafka消息***中的位置信息进行持久化,进一步保证当处理程序发生异常时,消费数据不会丢失,具体步骤包括:
101、将待处理消费数据在消息***中的位置信息持久化至预置存储空间。
消费数据是所有站点分析网站使用情况时要用到的数据中最常规的部分,如页面访问量、被查看内容方面的信息以及搜索情况等内容。消费数据通常的处理方式是先把各种活动以日志的形式写入某种文件,然后周期性的对文件进行统计分析,作为多种类型的数据管道,现在很多网站都有消息***,从而方便从客户网站采集消费数据。
Kafka是一种高吞吐量的分布式发布订阅消息***,它可以处理消费者规模的网站中的所有动作流数据。通常在Kafka消息***中,数据的发送者为生产者,数据的接收者成为消费者,数据的传递者为中转服务器。在Kafka提供的消息队列中,当采用spark分布平台中的spark streaming组件批量处理一批消费数据后,会记录处理消费数据的位置信息,以方便当出现突发状况时,能够根据记录的位置信息接着对消费数据进行处理。
对于本发明实施例,这里待处理消费数据在消息***中的位置信息为每次通过spark streaming处理程序将消费数据输出后的下一批需要处理的消费数据在Kafka消息***中的位置信息,由于Kafka消息***里消息的量非常之大,实际消息量是网站页面浏览总数的数倍之多,因此有必要为***中的数据流划分一组相互独立的分区,由生产者来指定每条消息属于哪个分区,进而根据记录的分区位置能够准确有序地从Kafka消息***中获取消费数据。
这里的持久化过程为将Kafka消息队列中待处理的消费数据的位置信息持久化至预置存储空间,当然这里也可以通过记录的当前消费数据的位置信息来获取下次消费数据的位置信息,从而将下次消费数据的位置信息持久化至预置存储空间,该预置存储空间可以用于监控消费者对于消费数据的消费情况,本发明实施例对预置存储空间不做限定,例如:可以采用分布式文件***(Hadoop Distributed File System,HDFS)。
102、当重启处理程序时,根据所述位置信息从消息***中重新加载所述待处理消费数据。
需要说明的是,当采用spark分布平台中的spark streaming组件批量处理Kafka提供的消息队列时,可能会出现异常情况,比如:spark streaming组件在处理消费数据时,进程被意外关闭或者停止当前正在消费的spark streaming程序。
当重新启动spark streaming处理程序后,根据预置存储空间存储的持久化消费数据位置信息,可以确定spark streaming组件上次批量处理Kafka消息队列的结束时待处理消费数据(还未处理完的消费数据)的位置信息,进一步将待处理消费数据的位置信息传给Kafka消息***,从而方便spark streaming组件根据Kafka消息***中对应的位置信息重新加载上述待处理的消费数据。
103、对所述待处理消费数据进行处理。
根据预置存储空间中存储的持久化的消费数据位置信息,可以确定sparkstreaming组件上次批量处理Kafka消息队列的结束时的消费数据位置信息及下次消费数据的位置信息,确定当前需要消费Kafka消息队列的消费数据位置的起始点,采用spark分布平台中的spark streaming组件批量处理Kafka提供的消息队列。
对于本发明实施例,spark streaming是一个准实时处理框架,处理响应时间一般以分钟为单位,也就是说处理实时数据的延迟时间是秒级别的。spark streaming通过分布在各个节点上的接收机,缓存从Kafka接收到的数据流,并将数据流包装成spark能够处理的RDD格式,以便spark集群能够对数据流进行实时处理,从而将处理后的数据输出至有需求的业务端,以便业务端对处理后的数据进行分析。
结合上述的实现方式可以看出,本发明实施例提供的一种数据处理方法,通过将待处理消费数据在消息***中的位置信息持久化至预置存储空间,使得当对消费数据进行处理的过程中出现异常情况时,根据持久化至预置存储空间的位置信息能够从消息***中重新加载待处理消费数据,从而保证数据处理过程中消费数据的完整性。相对于现有的数据处理方法,本发明实施例通过在重新启动程序后,从持久化的预置存储空间中获取到待处理消费数据的位置信息,进而重新处理因为程序异常而未处理完成的消费数据,不会丢失消费数据,从而保证了消费数据的完整性。
以下为了更加详细地说明本发明提出的一种数据处理方法,特别是针对采用不同的持久化类型,本发明实施例还提供了另一种数据处理方法,如图2所示,该方法的具体步骤包括:
201、按照预设时间间隔对从消息***中获取的待处理消费数据进行处理。
通常情况下,在spark集群中运行spark streaming组件会按照预设时间间隔循环地从Kafka消息队列获取消费数据,也就是以预定的时间周期从Kafka消息队列获取消费数据。spark streaming组件作为构建在spark上的实时计算框架,对获取到的消费数据进行批量处理。
应说明的是,本发明实施例对这里的预设时间间隔不做限定,优选为为1s~5s的时间间隔,具体可以通过预先设置好的时间窗口,按照时间窗口循环的从Kafka消息***中获取待处理消费数据。
202、将待处理消费数据在消息***中的位置信息持久化至预置存储空间。
对于本发明实施例,将待处理消费数据在消息***中的位置信息持久化至预置存储空间的步骤可以包括但不限制于下述方式,首先通过spark平台对处理完的消费数据位置进行记录,获取待处理消费数据在消息***中的位置信息,通过解析数据的属性参数获取待处理消费数据在消息***中的位置信息的持久化类型,这里的属性参数为通过spark平台对待处理消费数据配置的参数,这里的属性参数可以设置为文件***或数据库,进而根据持久化存储类型将待处理消息数据在消息***中的位置信息持久化至预置存储空间,例如,当持久化类型为文件***时,spark streaming将***文件对应的文件名以及获取到的位置信息保存至预置存储位置。
当所述持久化存储类型为文件***时,将待处理消费数据在消息***中的位置信息持久化至预置存储空间可以采用如下方法,首先获取待处理消费数据在消息***中的位置信息,这里的位置信息中包括不同类型消费数据的分区字段以及分区位置字段,由于每条发布到Kafka的消息数据都有一个类别,这个类别被称为Topic,,物理上不同Topic的消息数据分开存储至不同的分区,例如,消息***中有5个分区,分区字段分别为A、B、C、D、E,逻辑上一个Topic的消息数据虽然保存于一个或多个Kafka的服务器上但用户只需指定消息数据的Topic即可生产或消费数据而不必关心消息数据存于何处,另外,每个类别的消费数据记录在分区中也有相应的分区位置字段,然后在文件***中创建预设文件,这里的预设文件名称可根据待处理消费数据在消息***中的分区字段进行命名,以便于不同类型消费数据的查找,也可以随意命名,本发明实施例不进行限定;最后将待处理消费数据在消息***中的位置信息持久化至预设文件中。
示例性的,上述预设文件的命名可以通过在文件***中新建一个文件,任意取名为kafka_offset.txt,然后通过传参的方式将消费数据在消息***中的位置信息传到spark streaming程序中,则文件输出内容为“2:1428808”、“0:1456813”以及“1:1431255”;其中输出文件内容中显示有消费数据在消息***中的位置信息,“2”、“0”以及“1”为Kafka消费Topic分区字段,依次相对应地“1428808”、“1456813”以及“1431255”为相应的分区位置字段。
当所述持久化存储类型为数据库存储时,将待处理消费数据在消息***中的位置信息持久化至预置存储空间可以采用如下方法,首先获取待处理消费数据在消息***中的位置信息,这里的位置信息同上所述,再此不做赘述;然后在数据库中创建预设表格,最后将待处理消费数据在消息***中的位置信息持久化至预设表格中,该预设表格中的行和列可以分别填写分区字段以及分区位置字段,以便于不同类型消费数据的查找。
示例性的,上述预设表格的命名可以通过在数据库中新建一个表格,任意取名kafka_offset,然后通过传参的方式将消费数据在消息***中的位置信息传到sparkstreaming程序中,那么预设表格中主要包含两个字段:字段1为分区字段和字段2为分区位置字段,所示如下表。其中输出数据库预设表格中有消费数据在消息***中的位置信息,如“2:1428808”、“0:1456813”以及“1:1431255”;其中输出表格内容显示中,“2”、“0”以及“1”为Kafka消费Topic分区字段,依次相对应地“1428808”、“1456813”以及“1431255”为相应的分区位置字段。
对于本发明实施例,当spark streaming处理程序在批量处理Kafka消息队列出现异常,无法正常运行时,预置存储空间中记录有待处理消费数据在消息***中的位置信息,以便当spark streaming恢复后,能够根据位置信息从Kafka消息***中加载上次未处理完成的消费数据,不会导致数据的丢失,具体将待处理消费数据在消息***中的位置信息持久化至预置存储空间的流程如图3所示。
203、当重启处理程序时,根据所述位置信息从消息***中重新加载所述待处理消费数据。
对于本发明实施例,根据位置信息从消息***中加载待处理消费数据可以包括但不限制于下述方式,首先通过解析消费数据的属性参数获取待处理消费数据在消息***中的位置信息的持久化存储类型,这里的属性参数如步骤202的描述,再此不做赘述;然后根据所述持久化存储类型从预置存储空间中读取消费数据在消息***中的位置信息,这里的预置存储空间中的文件或者表格中记录有每次批量处理完成消费数据的位置信息;最后根据对应的位置信息从消息***中加载下一批量需要处理的消费数据,以便当sparkstreaming恢复后,能够根据位置信息从Kafka消息***中加载上次未处理完成的消费数据,不会导致数据的丢失,具体根据位置信息从消息***中加载待处理消费数据的流程如图4所示。
204、对所述待处理消费数据进行处理。
根据预置存储空间中持久化的消费数据位置信息,可以确定spark streaming组件上次批量处理Kafka消息队列的结束时的消费数据的位置信息,并且根据结束时消费数据的位置信息能够确定下次消费数据的位置信息,即当前需要消费Kafka消息队列的消费数据位置的起始点,采用spark分布平台中的spark streaming组件批量处理Kafka提供的消息队列。
205、处理完成从消息***中获取的所述待处理消费数据后,更新所述预置存储区域中的位置信息,以便于根据所述更新后的位置信息从所述消息***中加载下一批次的待处理消费数据。
由于spark streaming组件处理数据的流程按照预定的时间周期从Kafka消息***中获取消费数据,并对消费数据进行处理,因此,每次当处理完消费数据后,有必要更新预置存储区域中的下一批次需要处理的消费数据的位置信息,方便当出现突发状况,重新启动程序后能够根据持久化的位置信息接着对消费数据进行处理。
对于本发明实施例,Spark streaming在每次处理完一批待处理消费数据之后,会对存储区域中持久化存储的位置信息进行更新,当spark streaming处理程序正常运行时,直接根据Spark streaming组件记录的消费数据的位置信息,从Kafka中获取下一批次的消费数据,当spark streaming处理程序出现异常时,可以根据预置存储区域中持久化的位置信息,从Kafka中获取下一批次的消费数据。
对于本发明实施例的具体应用场景可以包括但不限制于下述实现方式:当sparkstreaming处理程序正常运行时,spark streaming组件会按照时间窗口设置的时间循环处理从Kafka消息队列获取消费数据,并将处理完成的消费数据输出,在spark streaming组件每次处理完消费数据后会将Kafka消息队列中待处理的下一批次的消费数据的位置信息通过数据库表格的方式持久化至预置存储空间,如图5所示的步骤流程图,当sparkstreaming组件发生异常后重启处理程序时,通过数据库表格中记录的位置信息从消息***中继续加载待处理的下一批次的消费数据,按照业务逻辑继续对消费数据进行处理,并输出处理完成的消费数据,如图6所示的步骤流程图。
由于数据量过大或者外界的干扰等原因,在数据处理过程中可能出现sparkstreaming处理进程意外中断或者停止,而当进程被再次启动过程中可能会导致批量处理数据的失败与丢失,为了保证数据处理的有效性,本发明实施例另一种数据处理方法,当spark streaming处理程序出现异常状况时,通过持久化存储待处理消费数据在Kafka消息***中位置信息的方式,进而保证在spark streaming处理程序重新启用后,sparkstreaming处理的消费数据不会出现数据重复处理以及数据丢失的情况。
进一步地,作为图1所示方法的具体实现,本发明实施例提供一种数据处理装置,该装置实施例与前述方法实施例对应,为便于阅读,本装置不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的装置能够对应实现前述方法实施例中的全部内容,如图7所示,所述装置包括:
存储单元31,可以用于将待处理消费数据在消息***中的位置信息持久化至预置存储空间,该存储单元31为本装置中用于持久化待处理消费数据在消息***中的位置信息的主要功能模块,具体可以通过***文件或者数据库的方式来实现对消费数据的持久化;
加载单元32,可以用于当重启处理程序时,根据所述位置信息从消息***中加载所述待处理消费数据,该加载单元32为本装置中用于从预置存储空间中加载待处理消费数据的位置信息的主要功能模块,具体可以根据不同的持久化类型读取待处理消费数据的位置信息,进而从消息***中加载待处理数据;
第一处理单元33,可以用于对所述待处理消费数据进行处理,该处理单元33为本装置中用于处理消费数据的主要功能模块,具体可以根据业务逻辑对从Kafka中加载的待处理消费数据进行处理。
本发明实施例提供的一种数据处理装置,通过将待处理消费数据在消息***中的位置信息持久化至预置存储空间,使得当对消费数据进行处理的过程中出现异常情况时,进而根据持久化至预置存储空间的位置信息能够从消息***中能够加载待处理消费数据,从而保证数据处理过程中消费数据的完整性。相对于现有的数据处理方法相比,本发明实施例通过在重新启动程序后,从持久化的预置存储空间中获取到待处理消费数据的位置信息,进而从新处理因为程序异常而未处理完成的消费数据,不会丢失消费数据,从而保证了消费数据的完整性。
进一步地,如图8所示,所述装置还包括:
第二处理单元34,可以用于按照预设时间间隔对从消息***中获取的待处理消费数据进行处理,该获取单元34为本装置中用于在处理程序正常状态下通过设置时间窗口对从消息***中获取的消费数据进行处理的主要功能模块;
更新单元35,可以用于处理完成从消息***中获取的所述待处理消费数据后,更新所述预置存储区域中的位置信息,以便于根据所述更新后的位置信息从所述消息***中加载下一批次的待处理消费数据,该更新单元35为本装置中用于更新存储区域中持久化的位置信息,以便于根据所述更新后的位置信息从所述消息***中加载下一批次的待处理消费数据。
进一步地,所述存储单元31包括:
获取模块311,可以用于获取待处理消费数据在消息***中的位置信息;
解析模块312,可以用于获取位置信息的持久化存储类型;
存储模块313,可以用于根据所述持久化存储类型将位置信息持久化至预置存储空间。
进一步地,所述加载单元32包括:
读取模块321,可以用于根据所述位置信息的持久化存储类型从预置存储空间中读取所述位置信息;
加载模块322,可以用于根据所述位置信息从消息***中重新加载所述待处理消费数据。
进一步地,当所述持久化存储类型为文件***存储时,所述存储单元31,还可以用于获取所述待处理消费数据在所述消息***中的位置信息,所述位置信息中包括不同类型消费数据的分区字段以及分区位置字段;
所述存储单元31,还可以用于在所述文件***中创建预设文件;
所述存储单元31,还可以用于将所述位置信息持久化至所述预设文件中;
当所述持久化存储类型为数据库存储时,
所述存储单元31,还可以用于获取所述待处理消费数据在所述消息***中的位置信息,所述位置信息中包括不同类型消费数据的分区字段以及分区位置字段;
所述存储单元31,还可以用于在所述数据库中创建预设表格;
所述存储单元31,还可以用于所述位置信息持久化至所述预设表格中。
本发明提供的另一种数据处理装置,当spark streaming处理程序出现异常状况时,通过持久化存储待处理消费数据在Kafka消息***中位置信息的方式,进而在sparkstreaming处理程序重新启用后,spark streaming处理的消费数据不会出现数据重复处理以及数据丢失的情况。
所述数据传输装置包括处理器和存储器,上述存储单元31、加载单元32和第一处理单元33等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来节省人力,能够保证数据处理过程中消费数据的完整性。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序代码:将待处理消费数据在消息***中的位置信息持久化至预置存储空间;当重启处理程序时,根据所述位置信息从消息***中重新加载所述待处理消费数据;对所述待处理消费数据进行处理。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (10)

1.一种数据处理方法,其特征在于,包括:
将待处理消费数据在消息***中的位置信息持久化至预置存储空间;
当重启处理程序时,根据所述位置信息从消息***中重新加载所述待处理消费数据;
对所述待处理消费数据进行处理。
2.根据权利要求1所述的方法,其特征在于,所述将待处理消费数据在消息***中的位置信息持久化至预置存储空间包括:
获取待处理消费数据在消息***中的位置信息;
获取所述位置信息的持久化存储类型;
根据所述持久化存储类型将所述位置信息持久化至预置存储空间。
3.根据权利要求2所述的方法,其特征在于,所述根据所述位置信息从消息***中重新加载所述待处理消费数据包括:
根据所述位置信息的持久化存储类型从预置存储空间中读取所述位置信息;
根据所述位置信息从消息***中重新加载所述待处理消费数据。
4.根据权利要求1-3中任一项所述的方法,其特征在于,在所述将待处理消费数据在消息***中的位置信息持久化至预置存储空间之前,所述方法还包括:
按照预设时间间隔对从消息***中获取的待处理消费数据进行处理。
5.根据权利要求4所述的方法,其特征在于,在所述对所述待处理消费数据进行处理之后,所述方法还包括:
处理完成从消息***中获取的所述待处理消费数据后,更新所述预置存储区域中的位置信息,以便于根据所述更新后的位置信息从所述消息***中加载下一批次的待处理消费数据。
6.根据权利要求1所述的方法,其特征在于,当所述持久化存储类型为文件***存储时,所述将待处理消费数据在消息***中的位置信息持久化至预置存储空间包括:
获取所述待处理消费数据在所述消息***中的位置信息,所述位置信息中包括不同类型消费数据的分区字段以及分区位置字段;
在所述文件***中创建预设文件;
将所述位置信息持久化至所述预设文件中。
7.根据权利要求1所述的方法,其特征在于,当所述持久化存储类型为数据库存储时,所述将待处理消费数据在消息***中的位置信息持久化至预置存储空间包括:
获取所述待处理消费数据在所述消息***中的位置信息,所述位置信息中包括不同类型消费数据的分区字段以及分区位置字段;
在所述数据库中创建预设表格;
将所述位置信息持久化至所述预设表格中。
8.一种数据处理装置,其特征在于,包括:
存储单元,用于将待处理消费数据在消息***中的位置信息持久化至预置存储空间;
加载单元,用于重启处理程序时,根据所述位置信息从消息***中重新加载所述待处理消费数据;
第一处理单元,用于对所述待处理消费数据进行处理。
9.根据权利要求8所述的装置,其特征在于,所述存储单元包括:
第一获取模块,用于获取待处理消费数据在消息***中的位置信息;
解析模块,用于获取所述位置信息的持久化存储类型;
存储模块,用于根据所述持久化存储类型将所述位置信息持久化至预置存储空间。
10.根据权利要求9所述的装置,其特征在于,所述加载单元包括:
读取模块,用于根据所述位置信息的持久化存储类型从预置存储空间中读取所述位置信息;
加载模块,用于根据所述位置信息从消息***中重新加载所述待处理消费数据。
CN201611247794.7A 2016-12-29 2016-12-29 一种数据处理方法及装置 Pending CN108255628A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611247794.7A CN108255628A (zh) 2016-12-29 2016-12-29 一种数据处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611247794.7A CN108255628A (zh) 2016-12-29 2016-12-29 一种数据处理方法及装置

Publications (1)

Publication Number Publication Date
CN108255628A true CN108255628A (zh) 2018-07-06

Family

ID=62720805

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611247794.7A Pending CN108255628A (zh) 2016-12-29 2016-12-29 一种数据处理方法及装置

Country Status (1)

Country Link
CN (1) CN108255628A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109788026A (zh) * 2018-12-13 2019-05-21 新华三大数据技术有限公司 消息处理方法及装置
CN110825533A (zh) * 2018-08-10 2020-02-21 网宿科技股份有限公司 一种数据发射方法及装置
CN112328602A (zh) * 2020-11-17 2021-02-05 中盈优创资讯科技有限公司 一种数据写入Kafka的方法、装置及设备
CN112445626A (zh) * 2019-08-29 2021-03-05 北京京东振世信息技术有限公司 一种基于消息中间件的数据处理方法和装置
CN112486986A (zh) * 2020-11-26 2021-03-12 清创网御(合肥)科技有限公司 一种Kafka中新增topic的消费数据自动持久化方法
CN112559227A (zh) * 2021-01-13 2021-03-26 贵州省广播电视信息网络股份有限公司 一种基于Spark Streaming的动态更新共享数据方法
WO2023040399A1 (zh) * 2021-09-18 2023-03-23 深圳前海微众银行股份有限公司 一种业务持久化方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102486798A (zh) * 2010-12-03 2012-06-06 腾讯科技(深圳)有限公司 数据加载的方法及装置
CN105574082A (zh) * 2015-12-08 2016-05-11 曙光信息产业(北京)有限公司 基于Storm的流处理方法及***
CN105791431A (zh) * 2016-04-26 2016-07-20 北京邮电大学 一种在线分布式监控视频处理任务调度方法及装置
CN106202324A (zh) * 2016-06-30 2016-12-07 北京奇虎科技有限公司 一种实时计算平台的数据处理方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102486798A (zh) * 2010-12-03 2012-06-06 腾讯科技(深圳)有限公司 数据加载的方法及装置
CN105574082A (zh) * 2015-12-08 2016-05-11 曙光信息产业(北京)有限公司 基于Storm的流处理方法及***
CN105791431A (zh) * 2016-04-26 2016-07-20 北京邮电大学 一种在线分布式监控视频处理任务调度方法及装置
CN106202324A (zh) * 2016-06-30 2016-12-07 北京奇虎科技有限公司 一种实时计算平台的数据处理方法和装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
KK303: "Spark Streaming 中使用kafka低级api+zookeeper 保存 offset 并重用 以及 相关代码整合", 《HTTPS://BLOG.CSDN.NET/KK303/ARTICLE/DETAILS/52767260?SPM=1001.2014.3001.5501》 *
SUN_QIANGWEI: "将 Spark Streaming + Kafka direct 的 offset 保存进入Zookeeper", 《HTTPS://BLOG.CSDN.NET/SUN_QIANGWEI/ARTICLE/DETAILS/52089795》 *
大数据部: "Spark Streaming createDirectStream保存kafka offset(JAVA实现)", 《HTTPS://BLOG.CSDN.NET/BDCHOME/ARTICLE/DETAILS/52438377》 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110825533A (zh) * 2018-08-10 2020-02-21 网宿科技股份有限公司 一种数据发射方法及装置
CN110825533B (zh) * 2018-08-10 2022-12-20 网宿科技股份有限公司 一种数据发射方法及装置
CN109788026A (zh) * 2018-12-13 2019-05-21 新华三大数据技术有限公司 消息处理方法及装置
CN109788026B (zh) * 2018-12-13 2022-03-08 新华三大数据技术有限公司 消息处理方法及装置
CN112445626A (zh) * 2019-08-29 2021-03-05 北京京东振世信息技术有限公司 一种基于消息中间件的数据处理方法和装置
CN112445626B (zh) * 2019-08-29 2023-11-03 北京京东振世信息技术有限公司 一种基于消息中间件的数据处理方法和装置
CN112328602A (zh) * 2020-11-17 2021-02-05 中盈优创资讯科技有限公司 一种数据写入Kafka的方法、装置及设备
CN112328602B (zh) * 2020-11-17 2023-03-31 中盈优创资讯科技有限公司 一种数据写入Kafka的方法、装置及设备
CN112486986A (zh) * 2020-11-26 2021-03-12 清创网御(合肥)科技有限公司 一种Kafka中新增topic的消费数据自动持久化方法
CN112559227A (zh) * 2021-01-13 2021-03-26 贵州省广播电视信息网络股份有限公司 一种基于Spark Streaming的动态更新共享数据方法
WO2023040399A1 (zh) * 2021-09-18 2023-03-23 深圳前海微众银行股份有限公司 一种业务持久化方法及装置

Similar Documents

Publication Publication Date Title
CN108255628A (zh) 一种数据处理方法及装置
AU2022200375B2 (en) Temporal optimization of data operations using distributed search and server management
US10275278B2 (en) Stream processing task deployment using precompiled libraries
US10198298B2 (en) Handling multiple task sequences in a stream processing framework
US9418085B1 (en) Automatic table schema generation
US8875120B2 (en) Methods and apparatus for providing software bug-fix notifications for networked computing systems
US20170075721A1 (en) Providing strong ordering in multi-stage streaming processing
US20180011739A1 (en) Data factory platform and operating system
US20210373914A1 (en) Batch to stream processing in a feature management platform
CN109460439A (zh) 一种数据处理方法、装置、介质和电子设备
CN103034540A (zh) 分布式消息***及其设备和协调方法
US11797527B2 (en) Real time fault tolerant stateful featurization
CN104461826A (zh) 对象流转监控的方法、装置及***
Akhtar Big Data Architect’s Handbook: A guide to building proficiency in tools and systems used by leading big data experts
CN108228193A (zh) 数据获取方法及装置
CN108985805B (zh) 一种选择性执行推送任务的方法和装置
CN110928941B (zh) 一种数据分片抽取方法及装置
CN111125087A (zh) 数据的存储方法及装置
CN109101514A (zh) 数据导入方法及装置
CN115373886A (zh) 服务群组容器停机方法、装置、计算机设备和存储介质
US11775864B2 (en) Feature management platform
CN111078975B (zh) 一种多节点增量式数据采集***及采集方法
CN111796993B (zh) 数据处理方法、装置、电子设备及计算机可读存储介质
CN106888244A (zh) 一种业务处理方法及装置
US9240968B1 (en) Autogenerated email summarization process

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
CB02 Change of applicant information

Address after: 100083 No. 401, 4th Floor, Haitai Building, 229 North Fourth Ring Road, Haidian District, Beijing

Applicant after: Beijing Guoshuang Technology Co.,Ltd.

Address before: 100086 Beijing city Haidian District Shuangyushu Area No. 76 Zhichun Road cuigongfandian 8 layer A

Applicant before: Beijing Guoshuang Technology Co.,Ltd.

CB02 Change of applicant information
RJ01 Rejection of invention patent application after publication

Application publication date: 20180706

RJ01 Rejection of invention patent application after publication