CN108287854A - 一种流计算中数据持久化的方法和*** - Google Patents
一种流计算中数据持久化的方法和*** Download PDFInfo
- Publication number
- CN108287854A CN108287854A CN201710017458.1A CN201710017458A CN108287854A CN 108287854 A CN108287854 A CN 108287854A CN 201710017458 A CN201710017458 A CN 201710017458A CN 108287854 A CN108287854 A CN 108287854A
- Authority
- CN
- China
- Prior art keywords
- key
- signal
- task
- data
- list
- 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.)
- Granted
Links
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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24561—Intermediate data storage techniques for performance improvement
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24568—Data stream processing; Continuous queries
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Multimedia (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明公开了一种流计算中数据持久化的方法和***,本发明属于数据存储技术领域。所述方法包括:管理模块发起一个任务;根据任务向数据源提取任务对应的key;根据key向数据源提取key对应的value,并进行数据处理由此生成中间数据和第一信号,存储中间数据和第一信号;检测第一信号是否完成存储,并将检测信息发送给管理模块。采用本发明,可以有效地对中间数据持久化结果进行反馈,从而保证中间数据持久化的事务性。
Description
技术领域
本发明涉及数据存储技术领域,特别涉及一种流计算中数据持久化的方法和***。
背景技术
流计算可以很好的对大规模流动的数据进行实时的分析处理,因此,流计算可以广泛应用在社交网站、博客、电子邮件、视频、新闻、电话记录、传输数据、电子感应器之中。在利用流计算进行数据的分析处理时会产生大量的需要持久化的中间数据。目前,流计算中数据持久化的方法主要包括同步方式和异步方式,其中,同步方式在持久化中间数据时要等待操作的执行结果来保证数据持久化的事务性,该过程使得处理处于等待状态,因此影响数据分析处理的速度。
现有技术中,流计算中数据持久化的方法中的异步方式的步骤包括:管理模块发起一个任务;处理模块,向所述数据源提取该任务对应的数据,并进行数据处理,生成中间数据和结果数据,两个存储模块分别对中间数据和结果数据进行存储。之后,管理模块再次发起新任务,这样,异步方式可以使得数据处理的速度不受影响,数据分析处理很快。
在实施本发明实施例的过程中,发明人发现现有技术中至少存在以下问题:
现有技术中,无法对中间数据持久化结果进行反馈,从而难以保证中间数据持久化的事务性。
发明内容
为了解决现有技术中的问题,本发明实施例提供了一种流计算中数据持久化的方法和***。所述技术方案如下:
第一方面,本发明实施例提供的一种流计算中数据持久化的方法,包括:
管理模块发起一个任务;
根据任务向数据源提取任务对应的key;
根据key向数据源提取key对应的value,并进行数据处理由此生成中间数据和第一信号,存储中间数据和第一信号;
检测第一信号是否完成存储,并将检测信息发送给管理模块。
可选地,在生成中间数据和第一信号时,将第一信号***到中间数据的尾部。
可选地,检测第一信号是否完成存储,并将检测信息发送给管理模块,包括:
通过轮询方式检测第一信号是否完成存储,当检测到第一信号完成存储时,则向管理模块发送第一成功应答。
可选地,检测第一信号是否完成存储,并将检测信息发送给管理模块,还包括:
当无法检测到第一信号时,判断检测的次数是否达到预设阈值;
当检测的次数达到预设阈值时,则向管理模块发送失败应答,或者
当检测的次数未达到预设阈值时,则继续检测第一信号是否完成存储。
可选地,在根据任务向数据源提取任务对应的key之后,所述方法还包括:
将执行列表中与任务对应的key进行比较,当key不包含在执行列表中时,将key加入执行列表中,并且根据执行列表中key向数据源提取执行列表中key对应的value,并进行数据处理由此生成中间数据和第一信号。
可选地,所述方法还包括:
当管理模块接收到第一成功应答或者失败应答,生成删除信号;
根据删除信号移除第一信号以及执行列表中对应任务的key。
可选地,所述方法还包括:
将执行列表中与任务对应的key进行比较,当任务对应的key包含在执行列表中时,将key加入等待列表中;
将等待列表中key与执行列表进行比较,当等待列表中key不包含在执行列表中时,将等待列表中key加入执行列表中。
可选地,所述方法还包括:
对key对应的value进行数据处理时,还生成结果数据;
对结果数据进行存储,并向管理模块发送第二成功应答;
管理模块根据第二成功应答生成跟踪任务,并下发跟踪任务;
根据跟踪任务开始通过轮询方式检测第一信号是否完成存储。
可选地,所述方法还包括:
数据源根据业务类型将key存放在不同数据桶中;
在根据任务向数据源提取任务对应的key时,根据key的业务类型向对应的数据桶中提取key。
可选地,所述方法还包括:
管理模块根据数据源中各个业务类型的key的数量生成任务策略,并根据任务策略发起任务。
第二方面,本发明实施例提供的一种流计算中数据持久化的***,包括:
数据源,用于存储多个key以及每个key对应的value;
管理模块,用于发起一个任务;
协调模块,用于根据任务向数据源提取任务对应的key;
处理模块,用于根据key向数据源提取key对应的value,并进行数据处理由此生成中间数据和第一信号;
第一存储模块,用于存储中间数据和第一信号;
检测模块,用于检测第一信号是否完成存储,并将检测信息发送给管理模块。
可选地,所述处理模块,还用于:
在生成中间数据和第一信号时,将第一信号***到中间数据的尾部。
可选地,检测模块,用于:
通过轮询方式检测第一信号是否完成存储,当检测到第一信号完成存储时,则向管理模块发送第一成功应答。
可选地,检测模块,还用于:
当无法检测到第一信号时,判断检测的次数是否达到预设阈值;
当检测的次数达到预设阈值时,则向管理模块发送失败应答,或者
当检测的次数未达到预设阈值时,则继续检测第一信号是否完成存储。
可选地,协调模块,还用于将执行列表中与任务对应的key进行比较,当key不包含在执行列表中时,将key加入执行列表中;
处理模块,用于根据执行列表中key向数据源提取执行列表中key对应的value,并进行数据处理由此生成中间数据和第一信号。
可选地,管理模块,用于接收到第一成功应答或者失败应答,并生成删除信号;
第一存储模块,还用于根据删除信号移除第一信号;
协调模块,还用于根据删除信号移除执行列表中对应任务的key。
可选地,协调模块,还用于:
将执行列表中与任务对应的key进行比较,当任务对应的key包含在执行列表中时,将key加入等待列表中;
将等待列表中key与执行列表进行比较,当等待列表中key不包含在执行列表中时,将等待列表中key加入执行列表中。
可选地,所述***还包括第二存储模块;
处理模块,还用于对key对应的value进行数据处理时,生成结果数据;
第二存储模块,用于存储结果数据,并向管理模块发送第二成功应答;
管理模块,还用于根据第二成功应答生成跟踪任务,并下发跟踪任务;
检测模块,用于根据跟踪任务开始通过轮询方式检测第一信号是否完成存储。
可选地,数据源,用于根据业务类型将key存放在不同数据桶中;
协调模块,用于根据key的业务类型向对应的数据桶中提取key。
可选地,管理模块,用于:
根据数据源中各个业务类型的key的数量生成任务策略,并根据任务策略发起任务。
本发明实施例提供的技术方案带来的有益效果是:
本发明实施例提供的流计算中数据持久化的方法,通过管理模块发起一个任务;根据任务向数据源提取任务对应的key;根据key向数据源提取key对应的value,并进行数据处理由此生成中间数据和第一信号,存储中间数据和第一信号;检测第一信号是否完成存储,并将检测信息发送给管理模块。这样,可以有效地对中间数据持久化结果进行反馈,从而保证中间数据持久化的事务性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术用户来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种流计算中数据持久化的方法的流程图;
图2是本发明实施例提供的步骤400的流程图;
图3是本发明实施例提供的另一种流计算中数据持久化的方法流程图;
图4是本发明实施例提供的另一种流计算中数据持久化的方法流程图;
图5是本发明实施例提供的另一种流计算中数据持久化的方法流程图;
图6是本发明实施例提供的一种流计算中数据持久化的***结构示意图;
图7是本发明实施例提供的另一种流计算中数据持久化的***结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例提供了一种流计算中数据持久化的方法,该方法的执行主体为流式计算***,流式计算***主要包括实时计算***和批处理计算***。本流计算中数据持久化的方法可以广泛应用在搜索引擎、社交网站、博客、电子邮件、视频、新闻、电话记录、传输数据、电子感应器等业务类型中,实现对信息流的快速处理,并保证中间数据持久化的事务性。
下面将结合具体实施方式,对图1-图5所示的处理流程进行详细的说明,内容可以如下:
步骤100,管理模块2发起一个任务。
其中,管理模块2具体为流式计算***中的数据喷口,用于根据用户与流式计算***的交互下发任务以及管理其他功能模块。
具体地,管理模块2在下发任务之前,需要绑定一个数据源1。数据源1用于存放多个键key以及每个key对应的键值value数据,数据源1为与其绑定的管理模块2发起的任务提供key-value数据,供流式计算***对任务进行数据处理。
步骤200,根据任务向数据源1提取任务对应的key。
在本实施中,根据对执行该任务的需要,先从数据源1中提取key,再后续需要数据处理时,在从数据源1中将key对应的value提取出来进行数据处理。
可选地,本流计算中数据持久化的方法还包括:数据源1根据业务类型将key存放在不同数据桶中;这样,将key按业务类型存放在不同的数据桶中后,步骤200,根据任务向数据源1提取任务对应的key,具体为:根据该任务对应的key的业务类型向对应的数据桶中提取key。通过根据业务类型将key存放在不同数据桶中,可将任务与其对应的数据桶进行绑定,在后续执行过程中,提高了从数据源1中获取key的速度。
可选地,步骤100,管理模块2发起一个任务,具体为:
管理模块2根据数据源1中各个业务类型的key的数量生成任务策略,并根据任务策略发起任务。
在本实施例中,该任务策略即为管理模块2发起任务的规则,通过各个业务类型的key的数量确定任务策略,可以影响管理模块2对一批待发起任务的发起顺序,从而确定一批待发起任务的优先级。例如,一批待发起任务中,任务A对应业务类型的key数量最多,可以视为该任务影响因子较多,任务较为重要,应优先进行处理,管理模块2可优先发起任务A;又例如,为加快部分任务执行速度,也可以优先发起对应业务类型的key数量少的任务。需要说明的是,本发明保护范围不限对根据数据源1中各个业务类型的key的数量生成任务策略,可根据需求情况,设置对应的任务策略。
步骤300,根据key向数据源1提取key对应的value,并进行数据处理由此生成中间数据和第一信号,存储中间数据和第一信号。
本实施例中,第一信号即为标记信号,第一信号具有唯一性和可识别性,第一信号与中间数据一起存储,这样通过第一信号完成对中间数据的标记,通过对第一信号的检测,可以实现对中间数据的存储情况进行追踪反馈。
其中,第一信号可以是由该任务的ID(IDentity,身份标识号码)形成的信号。这样,保证了每一个任务产生的中间数据对应的第一信号唯一,且可检测识别。
可选地,在生成中间数据和第一信号时,将第一信号***到中间数据的尾部。这样,第一信号与中间数据结合为一体,第一信号完成对中间数据的标记,对第一信号的存储情况进行检测,即认定为中间数据的存储情况,例如,当检测到第一信号完成存储时,即确定了中间数据完成存储,当检测到第一信号未完成存储时,即确定中间数据未完成存储。
步骤400,检测第一信号是否完成存储,并将检测信息发送给管理模块2。
其中,对第一信号的检测,可以由用于存储第一信号的存储模块完成,也可以通过另一检测模块通过访问的方式完成。对第一信号检测的发起,可以由管理模块2下发任务,检测模块接收该下发任务并对用于存储第一信号的存储模块进行访问检测,也可以由用于存储第一信号的存储模块发起,当该存储模块接收第一信号之后,即开始对其进行检测;另外,也可以设置当第一信号完成存储时,对存储第一信号的存储模块自动向管理模块2反馈信息。
参见图2,可选地,步骤400,检测第一信号是否完成存储,并将检测信息发送给管理模块2,具体为:
步骤401,通过轮询方式检测第一信号是否完成存储;
步骤402,当检测到第一信号完成存储时,则向管理模块2发送第一成功应答;
步骤403,当无法检测到第一信号时,判断检测的次数是否达到预设阈值;
步骤404,当检测的次数达到预设阈值时,则向管理模块2发送失败应答;
其中,通过预设阈值可以限定检测第一信号的次数,当检测第一信号的次数达到预设阈值时,可以视为对中间数据持久化(存储)操作失败。该预设阈值可以根据每次检测第一信号的时间间隔以及经验时间确定,该经验时间可以表示为根据经验在一定时间为还未完成存储的信号通常存储失败的时间,预设阈值可以等于经验时间除于每次检测第一信号的时间间隔,计算结果向上取整。例如,预设阈值为10,当第1次至10次检测第一信号均为未检测到第一信号时,向管理模块2发出失败应答。
当检测的次数未达到预设阈值时,则继续检测第一信号是否完成存储,返回步骤401。
例如,当预设阈值为10,检测的次数为5时,则返回步骤401,继续对第一信号进行检测,直至检测到第一信号完成存储,或者,第10次未检测到第一信号完成存储。
在本实施例中,管理模块2当接收第一成功应答时,即可获知对中间数据持久化操作成功,当接收到失败应答时,即可获知对中间数据持久化操作失败,便于管理模块2根据持久化操作成功和持久化操作失败做出相应反应。
可选地,参见图3,本流计算中数据持久化的方法还包括:
步骤301,对key对应的value进行数据处理时,还生成结果数据;
步骤302,对结果数据进行存储,并向管理模块2发送第二成功应答;
其中,结果数据与中间数据存储在两个不同的存储模块中,用于存储结果数据的存储模块完成存储结果数据后,发送第二成功应答。
步骤303,管理模块2根据第二成功应答生成跟踪任务,并下发跟踪任务;根据跟踪任务开始通过轮询方式检测第一信号是否完成存储,进入步骤401。
本实施例中,管理模块2可以通过接收第二成功应答后,主动对第一信号进行检测,从而确定中间数据的存储情况。
可选地,参见图4,在步骤200之后以及步骤300之前,本流计算中数据持久化的方法还包括:
步骤201,将执行列表中与任务对应的key进行比较;
其中,执行列表用于为数据处理提供key。
步骤202,当key不包含在执行列表中时,将key加入执行列表中;
步骤300,具体为:根据执行列表中key向数据源1提取执行列表中key对应的value,并进行数据处理由此生成中间数据和第一信号。即key进入执行列表后,就开始进行步骤300。
在本实施例中,当key不包含在执行列表中时,即在执行列表中没有与该key相同的key,这样保证了同一时间在执行中的key的唯一性,进一步保证了任务以及其产生的中间数据的事务性。
可选地,参见图4,本流计算中数据持久化的方法还包括:
步骤203,当任务对应的key包含在执行列表中时,将key加入等待列表中;
步骤204,将等待列表中key与执行列表进行比较,当等待列表中key不包含在执行列表中时,将等待列表中key加入执行列表中。
具体地,等待列表中的key相对于新发起的任务对应的key优先进入执行列表中。
可选地,参见图5,本流计算中数据持久化的方法还包括:
步骤500,当管理模块2接收到第一成功应答或者失败应答,生成删除信号;
步骤600,根据删除信号移除第一信号以及执行列表中对应任务的key。
本实施例中,通过管理模块2接收到的第一成功应答或者失败应答,移除第一信号以及执行列表中对应任务的key,即实现了将用于存储中间数据的存储模块中无用数据进行删除,又将为未进入执行列表中key移出了空间,使本流计算中数据持久化的方法继续实施。
可选地,当执行列表中key的数量达到设置上限时,将未进入执行列表的key加入等待列表中,其中,等待列表中的key按时间顺序排序,先进入执行列表的key在保证在执行列表中无相同key的情况下,优先进入执行列表。
其中,本领域的技术人员可以人为设置执行列表的设置上限,也可以根据执行主体的数据处理能力设置。
本发明实施例提供的流计算中数据持久化的方法,通过管理模块2发起一个任务;根据任务向数据源1提取任务对应的key;根据key向数据源1提取key对应的value,并进行数据处理由此生成中间数据和第一信号,存储中间数据和第一信号;检测第一信号是否完成存储,并将检测信息发送给管理模块2。这样,可以有效地对中间数据持久化结果进行反馈,从而保证中间数据持久化的事务性。
基于相同的发明构思,本发明实施例还提供了一种流计算中数据持久化的***,参见图6,包括:
数据源1,用于存储多个key以及每个key对应的value;
管理模块2,用于发起一个任务;
协调模块3,用于根据任务向数据源1提取任务对应的key;
处理模块4,用于根据key向数据源1提取key对应的value,并进行数据处理由此生成中间数据和第一信号;
第一存储模块5,用于存储中间数据和第一信号;
检测模块6,用于检测第一信号是否完成存储,并将检测信息发送给管理模块2。
其中,第一存储模块5可以为redis(一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库)。
本实施例中,检测模块6可以设置在第一存储模块5内。
可选地,所述处理模块4,还用于:
在生成中间数据和第一信号时,将第一信号***到中间数据的尾部。
可选地,检测模块6,用于:
通过轮询方式检测第一信号是否完成存储,当检测到第一信号完成存储时,则向管理模块2发送第一成功应答。
可选地,检测模块6,还用于:
当无法检测到第一信号时,判断检测的次数是否达到预设阈值;
当检测的次数达到预设阈值时,则向管理模块2发送失败应答,或者
当检测的次数未达到预设阈值时,则继续检测第一信号是否完成存储。
可选地,协调模块3,还用于将执行列表中与任务对应的key进行比较,当key不包含在执行列表中时,将key加入执行列表中;
处理模块4,用于根据执行列表中key向数据源1提取执行列表中key对应的value,并进行数据处理由此生成中间数据和第一信号。
可选地,管理模块2,用于接收到第一成功应答或者失败应答,并生成删除信号;
第一存储模块5,还用于根据删除信号移除第一信号;
协调模块3,还用于根据删除信号移除执行列表中对应任务的key。
可选地,协调模块3,还用于:
将执行列表中与任务对应的key进行比较,当任务对应的key包含在执行列表中时,将key加入等待列表中;
将等待列表中key与执行列表进行比较,当等待列表中key不包含在执行列表中时,将等待列表中key加入执行列表中。
可选地,参见图7,本流计算中数据持久化的***还包括第二存储模块7;
处理模块4,还用于对key对应的value进行数据处理时,生成结果数据;
第二存储模块7,用于存储结果数据,并向管理模块2发送第二成功应答;
管理模块2,还用于根据第二成功应答生成跟踪任务,并下发跟踪任务;
检测模块6,用于根据跟踪任务开始通过轮询方式检测第一信号是否完成存储。
可选地,数据源1,用于根据业务类型将key存放在不同数据桶中;
协调模块3,用于根据key的业务类型向对应的数据桶中提取key。
可选地,管理模块2,用于:
根据数据源1中各个业务类型的key的数量生成任务策略,并根据任务策略发起任务。
本发明实施例提供的流计算中数据持久化的***,通过数据源1,用于存储多个key以及每个key对应的value;管理模块2,用于发起一个任务;协调模块3,用于根据任务向数据源1提取任务对应的key;处理模块4,用于根据key向数据源1提取key对应的value,并进行数据处理由此生成中间数据和第一信号;第一存储模块5,用于存储中间数据和第一信号;检测模块6,用于检测第一信号是否完成存储,并将检测信息发送给管理模块2。这样,可以有效地对中间数据持久化结果进行反馈,从而保证中间数据持久化的事务性。
以上所描述的***实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
还需要说明的是,术语“包括”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者***不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者***所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者***中还存在另外的相同要素。
上述说明示出并描述了本发明的若干优选实施例,但如前所述,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。
Claims (20)
1.一种流计算中数据持久化的方法,其特征在于,所述方法包括:
管理模块发起一个任务;
根据所述任务向数据源提取所述任务对应的key;
根据所述key向所述数据源提取所述key对应的value,并进行数据处理由此生成中间数据和第一信号,存储所述中间数据和所述第一信号;
检测所述第一信号是否完成存储,并将所述检测信息发送给所述管理模块。
2.根据权利要求1所述的方法,其特征在于,在生成中间数据和第一信号时,将所述第一信号***到所述中间数据的尾部。
3.根据权利要求1所述的方法,其特征在于,所述检测所述第一信号是否完成存储,并将所述检测信息发送给所述管理模块,包括:
通过轮询方式检测所述第一信号是否完成存储,当检测到所述第一信号完成存储时,则向所述管理模块发送第一成功应答。
4.根据权利要求3所述的方法,其特征在于,所述检测所述第一信号是否完成存储,并将所述检测信息发送给所述管理模块,还包括:
当无法检测到所述第一信号时,判断检测的次数是否达到预设阈值;
当检测的次数达到预设阈值时,则向所述管理模块发送失败应答,或者
当检测的次数未达到预设阈值时,则继续检测所述第一信号是否完成存储。
5.根据权利要求4所述的方法,其特征在于,在所述根据所述任务向数据源提取所述任务对应的key之后,所述方法还包括:
将执行列表中与所述任务对应的key进行比较,当所述key不包含在所述执行列表中时,将所述key加入所述执行列表中,并且根据所述执行列表中key向所述数据源提取所述执行列表中key对应的value,并进行数据处理由此生成中间数据和第一信号。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
当所述管理模块接收到所述第一成功应答或者所述失败应答,生成删除信号;
根据所述删除信号移除所述第一信号以及所述执行列表中对应所述任务的key。
7.根据权利要求5所述的方法,其特征在于,所述方法还包括:
将执行列表中与所述任务对应的key进行比较,当所述任务对应的key包含在所述执行列表中时,将所述key加入等待列表中;
将所述等待列表中key与执行列表进行比较,当所述等待列表中key不包含在所述执行列表中时,将所述等待列表中key加入所述执行列表中。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对所述key对应的value进行数据处理时,还生成结果数据;
对所述结果数据进行存储,并向所述管理模块发送第二成功应答;
所述管理模块根据所述第二成功应答生成跟踪任务,并下发跟踪任务;
根据所述跟踪任务开始通过轮询方式检测所述第一信号是否完成存储。
9.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述数据源根据业务类型将key存放在不同数据桶中;
在根据所述任务向所述数据源提取所述任务对应的key时,根据所述key的业务类型向对应的数据桶中提取所述key。
10.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述管理模块根据所述数据源中各个业务类型的key的数量生成任务策略,并根据所述任务策略发起所述任务。
11.一种流计算中数据持久化的***,其特征在于,所述***包括:
数据源,用于存储多个key以及每个所述key对应的value;
管理模块,用于发起一个任务;
协调模块,用于根据所述任务向所述数据源提取所述任务对应的key;
处理模块,用于根据所述key向所述数据源提取所述key对应的value,并进行数据处理由此生成中间数据和第一信号;
第一存储模块,用于存储所述中间数据和所述第一信号;
检测模块,用于检测所述第一信号是否完成存储,并将所述检测信息发送给所述管理模块。
12.根据权利要求11所述的***,其特征在于,所述处理模块,还用于:
在生成中间数据和第一信号时,将所述第一信号***到所述中间数据的尾部。
13.根据权利要求11所述的***,其特征在于,所述检测模块,用于:
通过轮询方式检测所述第一信号是否完成存储,当检测到所述第一信号完成存储时,则向所述管理模块发送第一成功应答。
14.根据权利要求13所述的***,其特征在于,所述检测模块,还用于:
当无法检测到所述第一信号时,判断检测的次数是否达到预设阈值;
当检测的次数达到预设阈值时,则向所述管理模块发送失败应答,或者
当检测的次数未达到预设阈值时,则继续检测所述第一信号是否完成存储。
15.根据权利要求14所述的***,其特征在于:
所述协调模块,还用于将执行列表中与所述任务对应的key进行比较,当所述key不包含在所述执行列表中时,将所述key加入所述执行列表中;
所述处理模块,用于根据所述执行列表中key向所述数据源提取所述执行列表中key对应的value,并进行数据处理由此生成中间数据和第一信号。
16.根据权利要求15所述的***,其特征在于:
所述管理模块,用于接收到所述第一成功应答或者所述失败应答,并生成删除信号;
所述第一存储模块,还用于根据所述删除信号移除所述第一信号;
所述协调模块,还用于根据所述删除信号移除所述执行列表中对应所述任务的key。
17.根据权利要求15所述的***,其特征在于,所述协调模块,还用于:
将执行列表中与所述任务对应的key进行比较,当所述任务对应的key包含在所述执行列表中时,将所述key加入等待列表中;
将所述等待列表中key与执行列表进行比较,当所述等待列表中key不包含在所述执行列表中时,将所述等待列表中key加入所述执行列表中。
18.根据权利要求11所述的***,其特征在于,所述***还包括第二存储模块;
所述处理模块,还用于对所述key对应的value进行数据处理时,生成结果数据;
所述第二存储模块,用于存储所述结果数据,并向所述管理模块发送第二成功应答;
所述管理模块,还用于根据所述第二成功应答生成跟踪任务,并下发跟踪任务;
所述检测模块,用于根据所述跟踪任务开始通过轮询方式检测所述第一信号是否完成存储。
19.根据权利要求11所述的***,其特征在于:
所述数据源,用于根据业务类型将key存放在不同数据桶中;
所述协调模块,用于根据所述key的业务类型向对应的数据桶中提取所述key。
20.根据权利要求11所述的***,其特征在于,所述管理模块,用于:
根据所述数据源中各个业务类型的key的数量生成任务策略,并根据所述任务策略发起所述任务。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710017458.1A CN108287854B (zh) | 2017-01-10 | 2017-01-10 | 一种流计算中数据持久化的方法和*** |
US15/571,455 US10417042B2 (en) | 2017-01-10 | 2017-02-21 | Data persistence method and system thereof in stream computing |
EP17832726.8A EP3373162B1 (en) | 2017-01-10 | 2017-02-21 | Data persistence method and system in stream computing |
PCT/CN2017/074216 WO2018129787A1 (zh) | 2017-01-10 | 2017-02-21 | 一种流计算中数据持久化的方法和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710017458.1A CN108287854B (zh) | 2017-01-10 | 2017-01-10 | 一种流计算中数据持久化的方法和*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108287854A true CN108287854A (zh) | 2018-07-17 |
CN108287854B CN108287854B (zh) | 2021-06-22 |
Family
ID=62091637
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710017458.1A Expired - Fee Related CN108287854B (zh) | 2017-01-10 | 2017-01-10 | 一种流计算中数据持久化的方法和*** |
Country Status (4)
Country | Link |
---|---|
US (1) | US10417042B2 (zh) |
EP (1) | EP3373162B1 (zh) |
CN (1) | CN108287854B (zh) |
WO (1) | WO2018129787A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111930748A (zh) * | 2020-08-07 | 2020-11-13 | 北京百度网讯科技有限公司 | 流式计算***数据追踪方法、装置、设备以及存储介质 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110162384B (zh) * | 2019-04-19 | 2023-04-28 | 深圳壹账通智能科技有限公司 | 基于Redis分布式锁的超时时间动态调整方法及*** |
CN113127557B (zh) * | 2019-12-31 | 2022-12-13 | ***通信集团四川有限公司 | 基于redis性能的数据持久化方法、装置及电子设备 |
CN112685498A (zh) * | 2020-12-28 | 2021-04-20 | 紫光云技术有限公司 | 一种云平台上Redis数据持久化的方法 |
CN113852664A (zh) * | 2021-08-19 | 2021-12-28 | 天津市普迅电力信息技术有限公司 | 一种基于分布式实时计算的能源商品及能源需求的精准推送方法 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040225710A1 (en) * | 2003-05-09 | 2004-11-11 | Fujitsu Limited | Write processing method for stream type commands and medium storage apparatus |
CN101826018A (zh) * | 2010-05-20 | 2010-09-08 | 瑞斯康达科技发展股份有限公司 | 一种网元管理***界面交互开发***及方法 |
US8381224B2 (en) * | 2011-06-16 | 2013-02-19 | uCIRRUS | Software virtual machine for data ingestion |
CN103425462A (zh) * | 2012-05-14 | 2013-12-04 | 阿里巴巴集团控股有限公司 | 一种工作流数据持久化的方法和装置 |
CN104252466A (zh) * | 2013-06-26 | 2014-12-31 | 阿里巴巴集团控股有限公司 | 流计算处理方法、设备和*** |
US20150134795A1 (en) * | 2013-11-11 | 2015-05-14 | Amazon Technologies, Inc. | Data stream ingestion and persistence techniques |
CN105574082A (zh) * | 2015-12-08 | 2016-05-11 | 曙光信息产业(北京)有限公司 | 基于Storm的流处理方法及*** |
CN105933217A (zh) * | 2016-07-14 | 2016-09-07 | 北京元心科技有限公司 | 消息同步方法及平台、网络服务器和适配服务器 |
CN106095600A (zh) * | 2008-10-10 | 2016-11-09 | 因特伟特公司 | 用于促进持久化应用编程接口的方法和装置 |
US20160337467A1 (en) * | 2007-04-13 | 2016-11-17 | International Business Machines Corporation | Method and system for information exchange utilizing an asynchronous persistent store protocol |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002005061A2 (en) * | 2000-07-06 | 2002-01-17 | David Paul Felsher | Information record infrastructure, system and method |
US7177878B2 (en) * | 2004-04-13 | 2007-02-13 | International Business Machines Corporation | Simple persistence mechanism for server based web applications |
JP5101128B2 (ja) * | 2007-02-21 | 2012-12-19 | 株式会社東芝 | メモリ管理システム |
US20090089772A1 (en) * | 2007-09-28 | 2009-04-02 | International Business Machines Corporation | Arrangement for scheduling jobs with rules and events |
US8200915B2 (en) * | 2008-08-22 | 2012-06-12 | Cadence Design Systems, Inc. | Management of very large streaming data sets for efficient writes and reads to and from persistent storage |
US8869150B2 (en) * | 2010-05-18 | 2014-10-21 | Lsi Corporation | Local messaging in a scheduling hierarchy in a traffic manager of a network processor |
US8996556B2 (en) * | 2009-06-05 | 2015-03-31 | Microsoft Technology Licensing, Llc | Parallel processing of an ordered data stream |
US8689231B2 (en) * | 2009-06-30 | 2014-04-01 | Sap Ag | System and method for ordering tasks with complex interrelationships |
US8799228B2 (en) * | 2011-06-29 | 2014-08-05 | Nokia Corporation | Method and apparatus for providing a list-based interface to key-value stores |
CN103034928B (zh) * | 2012-12-11 | 2015-11-18 | 清华大学 | 自律分散的即插即用数据平台及管理方法和应用 |
US9794135B2 (en) * | 2013-11-11 | 2017-10-17 | Amazon Technologies, Inc. | Managed service for acquisition, storage and consumption of large-scale data streams |
US10296621B2 (en) * | 2014-09-30 | 2019-05-21 | Hewlett Packard Enterprise Development Lp | Database and data stream query |
US9736243B2 (en) * | 2014-12-12 | 2017-08-15 | Microsoft Technology Licensing, Llc | Multiple transaction logs in a distributed storage system |
CN104794217B (zh) * | 2015-04-28 | 2018-01-19 | 武大吉奥信息技术有限公司 | 基于并行计算模式的瓦片地图数据及服务更新方法与*** |
US10664481B2 (en) * | 2015-09-29 | 2020-05-26 | Cisco Technology, Inc. | Computer system programmed to identify common subsequences in logs |
CN105243155A (zh) * | 2015-10-29 | 2016-01-13 | 贵州电网有限责任公司电力调度控制中心 | 一种大数据抽取和交换*** |
US10545832B2 (en) * | 2016-03-01 | 2020-01-28 | International Business Machines Corporation | Similarity based deduplication for secondary storage |
CN106021401A (zh) * | 2016-05-16 | 2016-10-12 | 陈敏刚 | 可扩展的基于倒排索引的实体解析算法 |
US20180129712A1 (en) * | 2016-11-09 | 2018-05-10 | Ca, Inc. | Data provenance and data pedigree tracking |
-
2017
- 2017-01-10 CN CN201710017458.1A patent/CN108287854B/zh not_active Expired - Fee Related
- 2017-02-21 WO PCT/CN2017/074216 patent/WO2018129787A1/zh active Application Filing
- 2017-02-21 US US15/571,455 patent/US10417042B2/en not_active Expired - Fee Related
- 2017-02-21 EP EP17832726.8A patent/EP3373162B1/en active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040225710A1 (en) * | 2003-05-09 | 2004-11-11 | Fujitsu Limited | Write processing method for stream type commands and medium storage apparatus |
US20160337467A1 (en) * | 2007-04-13 | 2016-11-17 | International Business Machines Corporation | Method and system for information exchange utilizing an asynchronous persistent store protocol |
CN106095600A (zh) * | 2008-10-10 | 2016-11-09 | 因特伟特公司 | 用于促进持久化应用编程接口的方法和装置 |
CN101826018A (zh) * | 2010-05-20 | 2010-09-08 | 瑞斯康达科技发展股份有限公司 | 一种网元管理***界面交互开发***及方法 |
US8381224B2 (en) * | 2011-06-16 | 2013-02-19 | uCIRRUS | Software virtual machine for data ingestion |
CN103425462A (zh) * | 2012-05-14 | 2013-12-04 | 阿里巴巴集团控股有限公司 | 一种工作流数据持久化的方法和装置 |
CN104252466A (zh) * | 2013-06-26 | 2014-12-31 | 阿里巴巴集团控股有限公司 | 流计算处理方法、设备和*** |
US20150134795A1 (en) * | 2013-11-11 | 2015-05-14 | Amazon Technologies, Inc. | Data stream ingestion and persistence techniques |
CN105574082A (zh) * | 2015-12-08 | 2016-05-11 | 曙光信息产业(北京)有限公司 | 基于Storm的流处理方法及*** |
CN105933217A (zh) * | 2016-07-14 | 2016-09-07 | 北京元心科技有限公司 | 消息同步方法及平台、网络服务器和适配服务器 |
Non-Patent Citations (1)
Title |
---|
肖友: "面向大规模上下文流处理框架的研究与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111930748A (zh) * | 2020-08-07 | 2020-11-13 | 北京百度网讯科技有限公司 | 流式计算***数据追踪方法、装置、设备以及存储介质 |
CN111930748B (zh) * | 2020-08-07 | 2023-08-08 | 北京百度网讯科技有限公司 | 流式计算***数据追踪方法、装置、设备以及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108287854B (zh) | 2021-06-22 |
EP3373162B1 (en) | 2020-03-04 |
US10417042B2 (en) | 2019-09-17 |
WO2018129787A1 (zh) | 2018-07-19 |
US20180307530A1 (en) | 2018-10-25 |
EP3373162A1 (en) | 2018-09-12 |
EP3373162A4 (en) | 2018-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108287854A (zh) | 一种流计算中数据持久化的方法和*** | |
CN110992167A (zh) | 银行客户业务意图识别方法及装置 | |
CN110490721A (zh) | 财务凭证生成方法及相关产品 | |
CN109299995B (zh) | 一种虚拟物品发送方法、装置、服务器以及存储介质 | |
CN110008984B (zh) | 一种基于多任务样本的目标欺诈交易模型训练方法和装置 | |
CN109983459A (zh) | 用于标识语料库中出现的n-gram的计数的方法和设备 | |
CN111126071B (zh) | 提问文本数据的确定方法、装置和客服群的数据处理方法 | |
CN110209577A (zh) | 一种测试方法及装置 | |
Lu et al. | A robust and accurate approach to detect process drifts from event streams | |
CN111062736A (zh) | 模型训练、线索排序方法、装置及设备 | |
CN113010791A (zh) | 搜索结果展示处理方法、装置及计算机可读存储介质 | |
CN109600361A (zh) | 基于哈希算法的验证码防攻击方法及装置 | |
CN111008373B (zh) | 智能问答的处理方法、装置、计算机可读介质及电子设备 | |
CN107066623A (zh) | 一种文章合并方法及装置 | |
CN113240401A (zh) | 基于区块链及5g消息的银行业务操作撤回方法及装置 | |
CN109685662A (zh) | 投资数据处理方法、装置、计算机设备及其存储介质 | |
CN113077288A (zh) | 消息推送方法、装置、计算机设备及计算机可读存储介质 | |
CN110046942A (zh) | 一种投放数据处理的方法及装置 | |
CN104281491B (zh) | 一种数据处理方法及装置 | |
CN111258821A (zh) | 一种基于云计算的备份数据快速提取方法 | |
CN109815123A (zh) | 接口测试用例脚本分类方法、装置、电子设备及介质 | |
CN108985555A (zh) | 用户输血的评价方法及相关产品 | |
CN115203057B (zh) | 低代码测试自动化方法、装置、设备及存储介质 | |
CN109977176B (zh) | 数据处理方法及装置 | |
CN110032843B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20210622 Termination date: 20220110 |
|
CF01 | Termination of patent right due to non-payment of annual fee |