CN111368207A - 数据处理方法及系统、候选数据池、电子设备、计算机可读存储介质 - Google Patents
数据处理方法及系统、候选数据池、电子设备、计算机可读存储介质 Download PDFInfo
- Publication number
- CN111368207A CN111368207A CN202010188264.XA CN202010188264A CN111368207A CN 111368207 A CN111368207 A CN 111368207A CN 202010188264 A CN202010188264 A CN 202010188264A CN 111368207 A CN111368207 A CN 111368207A
- Authority
- CN
- China
- Prior art keywords
- data
- target
- updating
- candidate
- pool
- 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
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/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- 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/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
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)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种数据处理方法及系统、候选数据池、电子设备、计算机可读存储介质,该方法包括:获取所述数据使用方发送的第一数据请求;根据预先确定的数据有效窗口的时长以及数据有效规则,判断所述第一数据请求所请求的第一目标数据是否需要更新,并在所述第一目标数据需要更新的情况下,对所述第一目标数据进行更新;其中,所述第一目标数据是所述候选数据池中存储的数据,所述数据有效规则包括至少一种对数据的特征的要求。因而,本发明方案,按需进行强制更新,则在进行数据更新时,并不会占据过多的计算资源,从而在一定程度上减少了更新数据库时所消耗的计算资源。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种数据处理方法及系统、候选数据池、电子设备、计算机可读存储介质。
背景技术
在互联网行业中非常普遍和重要的推荐业务,都依赖一个候选数据池,其中,候选数据池提供可供推荐的数据,对接数据生产系统,对数据进行结构化,准入限制,清洗,退场等功能,并为机器学习,推荐引擎等下游模块提供数据服务。
推荐候选数据池服务一般有这几方面的特点:
第一方面,数据量大,一般会达到亿级,甚至百亿,千亿级;
第二方面,更新要求低延迟,一般要求亚秒级延迟;数据准确性要求高,容错性强,对于脏数据有自动修复功能;
第三方面,对业务变化适应性强,能够适应多种不同的业务形态。
目前业界主流的候选数据池服务数据拓扑,采用的是Lambda架构。所谓lambda架构,即将大数据处理分为批量层、实时层和服务层。其中,批量层负责定时批量处理数据,即全库更新候选数据池;实时层负责实时处理数据,用于新物料实时入库,无效数据实时下线,标签特征实时更新等;服务层负责融合批量层和实时层的数据,统一对外服务。
其中,实时层和批量层在进行数据处理的过程中,由于系统丢包可能会丢失某些数据,或者某些数据任务处理失败,导致某些数据并未成功处理,但是现有技术中并不关心哪些数据被丢失或者哪些数据未被成功处理,而是每隔一定时间(例如每天的零点)对候选数据池中的全部数据都进行更新。其中,更新之前若存在被丢失的数据或者未被成功处理的数据,通过现有技术中的前述更新方式,则可以补充这些被丢包的数据或者修正未成功处理的数据。
由上述可知,现有技术中,由批量层对候选数据池全数据库进行批量更新,而候选数据池的数据量极大,且并不关心哪些是真正需要被更新的数据,而是在每一次更新时都对候选数据池中全部的数据进行更新,即需要针对候选数据池全数据库中的每一项数据重新从生产方读取一次数据,再写入到候选数据池中,这样会消耗极大的计算资源。
发明内容
本发明实施例的目的在于提供一种数据处理方法及系统、候选数据池、电子设备、计算机可读存储介质,以在一定程度上减少更新候选数据池时消耗的计算资源。具体技术方案如下:
在本发明实施的第一方面,首先提供了一种数据处理方法,应用于包括候选数据池和数据使用方的系统,所述方法执行于所述候选数据池,所述方法包括:
获取所述数据使用方发送的第一数据请求;
根据预先确定的数据有效窗口的时长以及数据有效规则,判断所述第一数据请求所请求的第一目标数据是否需要更新,并在所述第一目标数据需要更新的情况下,对所述第一目标数据进行更新;
其中,所述第一目标数据是所述候选数据池中存储的数据,所述数据有效规则包括至少一种对数据的特征的要求。
在本发明实施的第二方面,还提供了一种候选数据池,所述候选数据池与数据使用方组成一系统,所述候选数据池包括:
服务模块,用于获取所述数据使用方发送的第一数据请求;
所述服务模块还用于根据预先确定的数据有效窗口的时长以及数据有效规则,判断所述第一数据请求所请求的第一目标数据是否需要更新;
补偿模块,用于在所述服务模块判定所述第一目标数据需要更新的情况下,对所述第一目标数据进行更新;
其中,所述第一目标数据是所述候选数据池中存储的数据,所述数据有效规则包括至少一种对数据的特征的要求。
在本发明实施的第三方面,还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述任一所述的数据处理方法。
在本发明实施的第四方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述任一所述的数据处理方法。
在本发明实施的第五方面,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的数据处理方法。
在本发明实施的第六方面,还提供了一种数据处理系统,包括用于进行与实体本身数据相关的逻辑处理的通用层,以及至少一个用于进行业务场景相关的逻辑处理的业务层,所述通用层包括上述所述的数据处理方法中的候选数据池,所述业务层包括上述所述的数据处理方法中的候选数据池,其中,所述业务层包括的候选数据池向所述通用层包括的候选数据池请求数据,所述通用层包括的候选数据池为所述业务层包括的候选数据池提供数据。
本发明实施例提供的数据处理方法,通过候选数据池在获取到数据使用方发送的第一数据请求时,根据预先确定的数据有效窗口的时长以及数据有效规则,判断该第一数据请求所请求的该候选数据池中保存的第一目标数据是否需要更新,并在需要更新时才进行更新。
其中,根据预先确定的数据有效窗口以及数据有效规则,判断第一目标数据是否需要被更新,即判断第一目标数据是否是有效的数据。如果第一目标数据被请求之前的处理过程中被丢失或者未被处理成功,则该第一目标数据属于无效数据,即第一目标数据无法通过数据有效窗口和数据有效规则的检验,因而,本发明的实施例中,通过数据有效窗口和数据有效规则的检验,可以判断出第一目标数据被请求之前的处理过程中是否出现过被丢失或者未被处理成功的情况。
由此可知,本发明的实施例,对更新的数据存在两方面要求:第一方面,被数据使用方请求;第二点,根据数据有效窗口和数据有效规则判断需要更新,即属于无效数据。即本发明的实施例中,只有被请求的数据需要被更新时才进行更新,即按需进行强制更新,而不是在每一次更新时都对数据库中全部的数据进行更新,因而,本发明的实施例,在进行数据更新时,并不会占据过多的计算资源,从而在一定程度上减少了更新候选数据池时所消耗的计算资源。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明实施例提供的一种数据处理方法的步骤流程图;
图2为本发明实施例提供的另一种数据处理方法的步骤流程图;
图3为本发明实施例提供的一种候选数据池的结构框图;
图4为本发明实施例提供的另一种候选数据池的结构框图;
图5为本发明实施例的候选数据池的具体实施方式的结构示意图;
图6为本发明实施例的数据处理系统的结构示意图;
图7为本发明实施例提供的电子设备的框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
图1是本发明实施例提供的一种数据处理方法,应用于包括候选数据池和数据使用方的系统,所述方法执行于所述候选数据池。其中,该系统还包括数据生产方。
具体的,由数据生产方、数据使用方和候选数据池可构成一个推荐系统。其中,数据生产方:是数据生产的源头,一般指内容生产后台,包括自制内容编辑平台,用户生产内容和专业用户生产内容上传平台,爬取平台等,以及配套的数据存储和访问服务等;数据使用方:是指推荐系统中,需要从候选数据池中获取数据的模块,包括特征工程模块,人工智能算法模块,在线服务模块,统计报表模块等;候选池:为推荐系统提供统一的物料实体数据服务,相当于数据生产方和数据使用方之间的适配层,屏蔽生产方的变化和差异性,隐藏大数据处理的工程细节,统一物料数据格式规范,提供可供推荐系统多个模块之间,以及多个推荐系统之间共享的、协作的公共数据。
如图1所示,该数据处理方法可以包括以下步骤:
步骤101:获取所述数据使用方发送的第一数据请求。
其中,第一数据请求用于请求候选数据池中保存的数据。
步骤102:根据预先确定的数据有效窗口的时长以及数据有效规则,判断所述第一数据请求所请求的第一目标数据是否需要更新,并在所述第一目标数据需要更新的情况下,对所述第一目标数据进行更新。
其中,所述第一目标数据是所述候选数据池中存储的数据。
数据有效窗口的起始时刻是某一部分数据某一次的更新时刻,结束时刻是距离开始时刻预设时长的时刻。例如数据A在t1时刻进行了一次更新,则t1~t1+T的时间段即为数据A的有效窗口。其中,T表示数据有效窗口的时长,T可以通过人工设置。
数据有效规则包括至少一种对数据的特征的要求,即数据有效规则表示符合预先设定的某一规则的数据才算有效数据,其中,数据有效规则也可以通过人工设置。例如人工设置t2时刻按照十个字段生产数据,但是t2时刻之前的数据是按照九个字段生产的,则具有十个字段的数据才属于有效数据,即可以人工设置具有十个字段的数据才属于有效数据的规则。
本发明的实施例,为数据设置有效窗口以及有效规则,从而能够在接收到数据使用方发送的第一数据请求时,判断该第一数据请求所请求的第一目标数据是否需要更新,并在需要更新时才进行更新。由此可知,本发明的实施例,只有被请求的数据需要被更新时才进行更新,即按需进行强制更新。
由上述可知,本发明实施例提供的数据处理方法,通过候选数据池在获取到数据使用方发送的第一数据请求时,根据预先确定的数据有效窗口的时长以及数据有效规则,判断该第一数据请求所请求的该候选数据池中保存的第一目标数据是否需要更新,并在需要更新时才进行更新,因此,本发明的实施例,只有被请求的数据需要被更新时才进行更新,即按需进行强制更新,而不是在每一次更新时都对数据库中全部的数据进行更新,因而,本发明的实施例,在进行数据更新时,并不会占据过多的计算资源,从而在一定程度上减少了更新候选数据池时所消耗的计算资源。
图2是本发明实施例提供的一种数据处理方法,应用于包括候选数据池和数据使用方的系统,所述方法执行于所述候选数据池。如图2所示,该数据处理方法可以包括以下步骤:
步骤201:获取所述数据使用方发送的第一数据请求。
步骤202:判断所述第一目标数据上一次更新的第一时刻,距离接收所述第一数据请求的第二时刻的第一时长,是否大于所述数据有效窗口的时长。
步骤203:在所述第一时长大于所述数据有效窗口的时长的情况下,对所述第一目标数据进行更新。
步骤204:在所述第一时长小于或等于所述数据有效窗口的时长的情况下,判断所述第一目标数据是否与所述数据有效规则相匹配。
其中,候选数据池接收到生产方的数据后,对接收到的数据进行处理,然后对处理后的数据打上处理时间戳,并进行保存。该处理时间戳即为其所属数据的有效窗口的起始时刻。
另外,第一目标数据上一次更新的第一时刻,距离接收第一数据请求的第二时刻的第一时长,大于数据有效窗口的时长,即数据使用方发送的对第一目标数据的第一数据请求位于该数据有效窗口之后,则表示接收第一数据请求的第二时刻距离第一目标数据上一次更新的时刻较长,而在此期间,第一目标数据存在很大可能被处理过,但处理失败了,但本发明的实施例中,无论第二时刻与第一目标数据上一次更新的时刻之间,第一目标数据是否被处理过且处理失败了,都对第一目标数据进行主动更新,从而避免由于第一目标数据此前被处理过但失败了,而导致后续数据使用方请求第一目标数据时却获取到错误数据。
此外,在第一目标数据上一次更新的第一时刻,距离接收第一数据请求的第二时刻的第一时长,小于或等于数据有效窗口的时长(即数据使用方发送的对第一目标数据的第一数据请求位于该数据有效窗口之内)时,进一步根据预先确定的数据有效规则,判断第一目标数据是否有效。
由上述可知,在所述第一时长大于所述数据有效窗口的时长的情况下,或者,在所述第一目标数据不符合所述数据有效规则(即第一目标数据与数据有效规则中对数据的特征的要求不匹配)的情况下,所述第一目标数据需要更新;在所述第一时长小于或等于所述数据有效窗口的时长,且所述第一目标数据符合所述数据有效规则的情况下,所述第一目标数据不需要更新。
其中,需要说明的是,对于“判断第一目标数据上一次更新的第一时刻,距离接收第一数据请求的第二时刻的第一时长是否大于数据有效窗口的时长”的过程,与“判断第一目标数据是否符合数据有效规则(即判断所述第一目标数据是否与所述数据有效规则相匹配)”的过程,二者执行的先后顺序并不限定。
例如,可以是先判断第一目标数据上一次更新的第一时刻,距离接收第一数据请求的第二时刻的第一时长是否大于数据有效窗口,在小于或等于时,才去判断第一目标数据是否符合数据有效规则;在大于时,则不去判断第一目标数据是否符合数据有效规则。
或者,也可以是先判断第一目标数据是否符合数据有效规则,并在符合数据有效规则时才去判断第一目标数据上一次更新的第一时刻,距离接收第一数据请求的第二时刻的第一时长是否大于数据有效窗口的时长,而在第一目标数据不符合数据有效规则时,则不再判断第一目标数据上一次更新的第一时刻,距离接收第一数据请求的第二时刻的第一时长是否大于数据有效窗口的时长。
步骤205:在第一目标数据的数据内容与所述数据有效规则中对数据内容的要求不匹配的情况下,对所述第一目标数据进行更新。
步骤206:在所述第一目标数据的数据结构与所述数据有效规则中对数据结构的要求不匹配的情况下,获取所述第二时刻之前第一预设时间内被请求的数据中数据结构发生变化的第二目标数据,并对所述第一目标数据和所述第二目标数据进行更新。
本发明的实施例中,数据有效规则包括对数据内容的要求和对数据结构的要求,例如规定具有十个字段的数据属于有效数据,即为对数据结构的要求;规定第八个字段的内容为“视频标题”,即为对数据内容的要求。
由上述可知,本发明的实施例,在判断出第一目标的数据内容与数据有效规则中对数据内容的要求不匹配时,仅对第一目标数据进行更新。其中,第一目标数据的数据内容与数据有效规则中对数据内容的要求不匹配,则表示被请求的数据的数据内容发生了变化,而对于发生数据内容变化的数据,本发明的实施例采用单次更新的方式,即只对当前被请求的第一目标数据进行更新。例如,第一目标数据的第八个字段的内容当前为视频类型,但数据有效规则中要求第八个字段为“视频标题”才为有效数据,则此时只需要更新第一目标数据的第八个字段的内容为“视频标题”即可。
另外,判断出第一目标数据的数据结构与数据有效规则中对数据结构的要求不匹配,则表示被请求的数据的数据结构发生了变化,而对于发生数据结构变化的数据,本发明的实施例采用批量更新的方式。例如,数据生产源决定对所有的数据新增加一个“是否是精品数据”的字段,其中,请求的一条数据,虽然在有效期窗口内,但缺失了该字段,则说明候选数据池中缓存的该条数据需要强制更新。
即在接收到数据使用方发送的第一数据请求后,若判断该条第一数据请求所请求的第一目标数据的数据结构与所述数据有效规则中对数据结构的要求不匹配,即被请求的第一目标数据发生了结构变化,此时以接收该条第一数据请求的第二时刻为终止时刻,以第二时刻之前且间隔第二时刻第一预设时长的时刻为开始时刻,获取该开始时刻和终止时刻之间,累计被请求的数据中发生数据结构变化的数据,并对这些数据以及第一目标数据进行批量更新。
例如第一目标数据为数据D,累计被请求的数据中数据A、B、C的数据结构分别发生了变化,则需要对数据A、B、C、D进行更新。具体的,分别从生成数据A、数据B、数据C、数据D的源数据的生产方获取对应的源数据,然后对源数据进行处理,从而获得更新后的数据A、数据B、数据C和数据D。
具体的,对第一目标数据进行更新的过程包括:重新从生产方获取生成第一目标数据的源数据,然后对源数据进行处理,从而获得更新后的数据。其中,此处对源数据的处理过程可以包括:数据格式化、数据清洗、聚合实体之间的信息、实体去重、内容理解、质量定标中的一个或多个处理过程。其中,数据格式化,即进行字段抽取,结构化封装等;数据清洗,即过滤不符合业务需求的推荐实体;聚合关联实体之间的信息,例如将店铺和商品之间的信息聚合,将专辑和视频之间的信息聚合。其中,内容理解指根据实体的内容,例如视频、图片、音频的内容,通过图像、声纹等的特征提取,结合机器学习的算法,识别出内容的分类,打上文本标签,判别色情或低俗风险度等。
在进行批量更新的过程中,对获取到的每一项源数据进行处理的过程,包括:数据格式化、数据清洗、聚合实体之间的信息、实体去重、内容理解、质量定标中的一个或多个处理过程。
可选的,所述第二目标数据包括至少一次第二数据请求所请求的数据。
所述对所述第一目标数据和所述第二目标数据进行更新,包括:
获取所述第一目标数据的第一生产方的数据传输接口的每秒查询率,以及每一次所述第二数据请求所请求的数据的第二生产方的数据传输接口的每秒查询率;
计算所述第一目标数据的大小与所述第一生产方的数据传输接口的每秒查询率的比值,以及,每一次所述第二数据请求所请求的数据的大小与对应的所述第二生产方的数据传输接口的每秒查询率的比值;
根据所述比值的大小,将所述第一目标数据的更新任务和所述至少一次第二数据请求所请求的数据的更新任务添加到不同的任务队列;
分别执行所述任务队列中的数据更新任务,其中,不同任务队列的任务并行处理,同一任务队列的任务按照在队列中的排序顺序执行。
例如需要对数据A、B、C、D进行更新,其中,例如生成数据A的源数据的生产方的数据传输接口的QPS(Queries Per Second,每秒查询率)为x1,生成数据B的源数据的生产方的QPS为x2,生成数据C的源数据的生产方的QPS为x3,生成数据D的源数据的生产方的QPS为x4,数据A、B、C、D的大小分别为a、b、c、d,则需要计算a/x1、b/x2、c/x3、d/x4,并根据这些比值的大小,将更新数据A的任务、更新数据B的任务、更新数据C的任务、更新数据D的任务,添加到不同的任务队列。
其中,被请求的数据的大小与对应的生产方的QPS的比值,表示更新被请求的该部分数据所需的时间长短,即被请求的数据的大小与对应的生产方的QPS的比值越小,表示更新被请求的该部分数据所需的时间越短。因此,本发明实施例中,根据更新被请求的数据所需时间的长短,将更新不同数据的任务添加到不同的任务队列。
本发明实施例中,例如令数据大小与QPS的比值为目标参数,不同任务队列分别对应有一目标参数的取值范围,例如第一队列对应的目标参数的范围为y1~y2,第二队列对应的目标参数的范围为y2~y3,第三队列对应的目标参数的范围为y3~y4,则若上述举例中,a/x1、b/x2分别处于y1~y2范围之内,则将该对数据A的更新任务和对数据B的更新任务添加到第一队列中,若c/x3、d/x4处于y2~y3范围之内,则将对数据C的更新任务和对数据D的更新任务添加到第二队列中。
具体的,例如第一队列对应的目标参数可以是0小时~24小时,则第一队列中的数据更新任务属于更新时间为小时级别的任务;第二队列对应的目标参数可以是1天~7天,则第二队列中的数据更新任务属于更新时间为天级别的任务;第三队列对应的目标参数可以是1周~4周,则第三队列中的数据更新任务属于更新时间为周级别的任务。
其中,对于添加到同一个队列中的多个数据更新任务的排列顺序,可以随机进行排列,也可以按照各个数据更新任务对应的数据请求的接收时间的先后顺序进行排列。
另外,例如第一队列中包括有任务一和任务二,第二队列中包括有任务三和任务四,第三队列中包括有任务五和任务六,其中,任务一排在任务二前面,任务三排在任务四前面,任务五排在任务六前面,则在执行这三个队列中的任务时,存在三个并行的通道,通道一执行第一队列中的任务,通道二执行第二队列中的任务,通道三执行第三队列中的任务。而通道一中则优先执行任务一,其次执行任务二;通道二中优先执行任务三,其次执行任务四;通道三中优先执行任务五,其次执行任务六。
此外,现有技术中,对于数据更新任务只设置一个队列,例如这个队列中包括两个任务,其中前一个批次需要批量刷新1亿条数据(处理完毕可能需要几天),之后一次需要批量刷新一万条数据(可能只需要几分钟),这一万条数据如果和一亿条数据投入同一个队列,则必须要等待一亿条数据处理完毕之后才能刷新一万条数据。
而本发明实施例中,采用被请求的数据的大小与对应的生产方的QPS的比值,表示更新被请求的该部分数据所需的时间长短(即被请求的数据的大小与对应的生产方的QPS的比值越小,表示更新被请求的该部分数据所需的时间越短),即通过估算每个数据更新任务所需的时间,从而根据消耗时间的长短,选择不同的任务队列,例如上述一亿数据的批量刷新,进入第二队列,一万数据的批量刷新进入第一队列,从而可以进一步减少执行多个数据更新任务所需的时间。
由此可知,本发明的实施例,在对数据进行批量更新时,不同于传统的批量处理任务。其中,传统的批量处理任务一次性针对所有的数据进行更新,同时只会有一个任务运行,一个任务运行完毕之后,才能启动下一个任务。而本发明的实施例中,对数据进行批量更新时,每个数据更新任务所需更新的数据大小不确定,任务启动的时间点不确定,多个数据更新任务处理的数据,都会作为数据流进入批量更新任务的任务队列中,每个数据更新任务的数据都是数据流的一部分,不同的数据更新任务之间没有显式的分隔。
可选的,所述数据处理方法还包括:
在接收到用户输入的情况下,获取第三目标数据,所述第三目标数据中包括至少一次第三数据请求所请求的数据中数据结构发生变化的数据,所述至少一次第三数据请求是处于所述用户输入的接收时刻之前的第二预设时间内的数据请求;
对所述第三目标数据进行更新;
其中,若所述第一数据请求处于所述第二预设时间内,则所述至少一次第三数据请求中包括所述第一数据请求;若所述第一数据请求处于所述第二预设时间之外,则所述至少一次第三数据请求中不包括所述第一数据请求。
其中,所述用户输入可以为对预先设置的开关按钮的操作。
由上述可知,本发明实施例中,可以在接收到用户输入时,触发一次数据更新,即本发明的实施例还可通过人工触发,进行数据的批量更新。但是,本发明实施例中,人工触发进行批量更新的对象并不是整个候选数据池中的数据,而是在接收到用户输入之前的一段时间内,累计被请求的数据中发生了数据结构变化的数据。
可选的,所述对所述第三目标数据进行更新,包括:
获取每一次所述第三数据请求所请求的数据的第三生产方的数据传输接口的每秒查询率;
计算每一次所述第三数据请求所请求的数据的大小与对应的所述第三生产方的数据传输接口的每秒查询率的比值;
根据所述比值的大小,将各第三数据请求所请求的数据的更新任务添加到不同的任务队列;
分别执行所述任务队列中的数据更新任务,其中,不同任务队列的任务并行处理,同一任务队列的任务按照在队列中的排序顺序执行。
本发明的实施例中,可以将所述至少一次第三数据请求所请求的数据的更新任务,添加到不同的任务队列。由此可知,在通过人工触发进行数据的批量更新时,也可以根据需要处理的数据量大小,估算需要处理的时间,根据消耗时间的长短,选择不同的任务队列,从而可以进一步减少多个批次的数据进行更新所需要的时间。
此外,可选的,上述步骤201中的第一数据请求包括位于一个数据有效窗口内的,对同一数据的多次请求,即在一个数据有效窗口内,可能对同一数据进行了多次请求,则可以将对同一数据的多次请求聚合起来,仅执行一次更新过程。例如数据A在一个时间窗口内可能多次被请求,这种情况下,可以将数据A的多次更新流程会聚合起来,仅进行一次更新,即可满足需求,从而避免了针对位于同一个数据有效窗口中对同一数据的多次请求分别都执行一次数据更新任务,而导致整体数据更新时间过长,且过程繁琐。
综上所述,本发明的实施例,将传统的批量数据更新任务,被按需的、少量的强制数据刷新替代,大幅节省了计算资源;并且,大批量的数据强制刷新需求,也通过流式任务执行。
图3是本发明实施例提供的一种候选数据池的结构框图。所述候选数据池与数据使用方组成一系统,如图3所示,该候选数据池50可以包括:
服务模块501,用于获取数据使用方发送的第一数据请求;
所述服务模块501还用于根据预先确定的数据有效窗口的时长以及数据有效规则,判断所述第一数据请求所请求的第一目标数据是否需要更新;
补偿模块502,用于在所述服务模块判定所述第一目标数据需要更新的情况下,对所述第一目标数据进行更新;
其中,所述第一目标数据是所述候选数据池中存储的数据,所述数据有效规则包括至少一种对数据的特征的要求。
由此可知,本发明的实施例,通过候选数据池获取到数据使用方发送的第一数据请求时,根据预先确定的数据有效窗口的时长以及数据有效规则,判断该第一数据请求所请求的该候选数据池中保存的第一目标数据是否需要更新,并在需要更新时才进行更新,因此,本发明的实施例,只有被请求的数据需要被更新时才进行更新,即按需进行强制更新,而不是在每一次更新时都对数据库中全部的数据进行更新,因而,本发明的实施例,在进行数据更新时,并不会占据过多的计算资源,从而在一定程度上减少了更新候选数据池时所消耗的计算资源。
图4是本发明实施例提供的一种候选数据池的结构框图。所述候选数据池与数据使用方组成一系统,如图4所示,该候选数据池60可以包括:
服务模块601,用于获取数据使用方发送的第一数据请求;
所述服务模块601还用于根据预先确定的数据有效窗口的时长以及数据有效规则,判断所述第一数据请求所请求的第一目标数据是否需要更新;
补偿模块602,用于在所述服务模块判定所述第一目标数据需要更新的情况下,对所述第一目标数据进行更新;
其中,所述第一目标数据是所述候选数据池中存储的数据,所述数据有效规则包括至少一种对数据的特征的要求。
可选的,所述数据有效规则包括对数据内容的要求;如图4所示,所述服务模块601包括:
第一判断子模块6011,用于判断所述第一目标数据上一次更新的第一时刻,距离接收所述第一数据请求的第二时刻的第一时长,是否大于所述数据有效窗口的时长;
所述通知子模块6012,用于在所述第一判断子模块6011判断出所述第一时长大于所述数据有效窗口的时长的情况下,向所述补偿模块602发送第一更新消息;
所述第二判断子模块6013,用于在所述第一判断子模块6011判断出所述第一时长小于或等于所述数据有效窗口的时长的情况下,判断所述第一目标数据是否与所述数据有效规则相匹配;
所述通知子模块6012,还用于在所述第二判断子模块6013判断出所述第一目标数据的数据内容与所述数据有效规则中对数据内容的要求不匹配的情况下,向所述补偿模块发送第一更新消息;
所述补偿模块602包括:
第一更新子模块6021,用于在收到所述第一更新消息的情况下,对所述第一目标数据进行更新,并将更新后的数据发送给所述服务模块601进行保存。
可选的,如图4所示,所述数据有效规则还包括对数据结构的要求;所述候选数据池60还包括批量更新模块603;
所述通知子模块6012还用于,在所述第二判断子模块6013判断出所述第一目标数据的数据结构与所述数据有效规则中对数据结构的要求不匹配的情况下,向所述批量更新模块603发送第二更新消息;
所述批量更新模块603,用于在接收到所述第二更新消息的情况下,获取所述第二时刻之前第一预设时间内被请求的数据中数据结构发生变化的第二目标数据,对所述第一目标数据和所述第二目标数据进行更新,并将更新后的数据发送给所述服务模块进行保存。
由上述可知,本发明实施例中,服务模块维护一个数据有效窗口和一套数据有效规则。其中,当数据使用方通过接口向服务模块发送第一数据请求时,服务模块先判断该第一数据请求是否处于被请求的数据的有效期窗口内。
若该第一数据请求并未处于被请求的数据的有效窗口内,说明被请求的数据已经过期(这种情况下,可能存在实时更新消息丢失,或者任务处理失败),一般需要刷新,则通过服务模块,触发一条第一更新消息,发送给补偿模块。补偿模块收到第一更新消息后,通过生产方的读取接口读取此条数据,然后实时处理,打上时间戳,发送给服务模块进行保存。
若该第一数据请求处于被请求的数据的有效窗口内,则服务模块调用预先配置的数据有效规则,判断被请求的第一目标数据是与数据有效规则相匹配,其中,若第一目标数据与数据有效规则中对数据内容的要求不匹配则,则只需要进行单次更新,即仅本次被请求的第一目标数据进行更新即可,则由服务模块向补偿模块发送第一更新消息,由补偿模块进行更新即可;若第一目标数据与数据有效规则中对数据结构的要求不匹配,则需要对近期被请求的数据中发生结构变化的数据进行批量更新,例如,在候选数据池中,不符合数据有效规则的情况,一般是候选数据池的结构(schema)变更,需要增减字段,即上游数据源本身没有发生变化。这种情况说明候选数据池中数据需要大规模批量刷新,因此对于近期被请求的数据中发生数据结构变化的数据,服务模块发送第二更新消息给批量更新模块进行批量数据更新。
其中,补偿模块和批量更新模块进行数据更新后,会将更新后的数据返回给服务模块,由服务模块进行存储,并将本次数据使用方所请求的数据发送给数据使用方。
另外,补偿模块和批量更新模块进行数据更新时,从生产方读取源数据,并进行处理,从而获取更新后的数据。其中对源数据的处理过程包括:数据格式化、数据清洗、聚合实体之间的信息、实体去重、内容理解、质量定标中的一个或多个处理过程。
可选的,所述第二目标数据包括至少一次第二数据请求所请求的数据;
所述批量更新模块603包括:
第一查询率获取子模块6031,用于获取所述第一目标数据的第一生产方的数据传输接口的每秒查询率,以及每一次所述第二数据请求所请求的数据的第二生产方的数据传输接口的每秒查询率;
第一比值计算子模块6032,用于计算所述第一目标数据的大小与所述第一生产方的数据传输接口的每秒查询率的比值,以及,每一次所述第二数据请求所请求的数据的大小与对应的所述第二生产方的数据传输接口的每秒查询率的比值;
第一任务分配子模块6033,用于根据所述比值的大小,将所述第一目标数据的更新任务和所述至少一次第二数据请求所请求的数据的更新任务添加到不同的任务队列;
第一任务执行子模块6034,用于分别执行所述任务队列中的数据更新任务,其中,不同任务队列的任务并行处理,同一任务队列的任务按照在队列中的排序顺序执行。
其中,被请求的数据的大小与对应的生产方的QPS的比值,表示更新被请求的该部分数据所需的时间长短,即被请求的数据的大小与对应的生产方的QPS的比值越小,表示更新被请求的该部分数据所需的时间越短。由此可知,在批量更新模块进行批量更新时,可以根据需要处理的数据量大小,估算需要处理的时间,根据消耗时间的长短,选择不同的任务队列,从而可以进一步减少多个批次的数据进行更新所需要的时间。
另外,在服务模块判定出当前接收到的第一数据请求所请求的第一目标数据与数据有效规则中对数据结构的要求不匹配时,在获取到接收第一数据请求的第二时刻之前的第二预设时间内,被请求的数据中发生数据结构变化的数据包括多次被请求的数据时,可以针对所述多次请求中的每一次请求,向批量更新模块发送一个批量更新消息,则前述第二批量更新消息中包括与每一个第二数据请求对应的更新消息。
此外,批量更新模块接收到第二更新消息后,通过生产源批量接口,或者底层数据文件,作为数据更新任务的输入,进行处理之后,将更新后的数据发送给服务模块。
可选的,所述数据处理装置还包括:
批量更新模块603,用于在接收到用户输入的情况下,获取第三目标数据,对所述第三目标数据进行更新,并将更新后的数据发送给所述服务模块进行保存;
其中,所述第三目标数据中包括至少一次第三数据请求所请求的数据中数据结构发生变化的数据,所述至少一次第三数据请求是处于所述用户输入的接收时刻之前的第二预设时间内的数据请求;
若所述第一数据请求处于所述第二预设时间内,则所述至少一次第三数据请求中包括所述第一数据请求;若所述第一数据请求处于所述第二预设时间之外,则所述至少一次第三数据请求中不包括所述第一数据请求。
可选的,所述第三目标数据包括至少一次第三数据请求所请求的数据;
所述批量更新模块603包括:
第二查询率获取子模块6035,用于获取每一次所述第三数据请求所请求的数据的第三生产方的数据传输接口的每秒查询率;
第二比值计算子模块6036,用于计算每一次所述第三数据请求所请求的数据的大小与对应的所述第三生产方的数据传输接口的每秒查询率的比值;
第二任务分配子模块6037,用于根据所述比值的大小,将各第三数据请求所请求的数据的更新任务添加到不同的任务队列;
第二任务执行子模块6038,用于分别执行所述任务队列中的数据更新任务,其中,不同任务队列的任务并行处理,同一任务队列的任务按照在队列中的排序顺序执行。
由此可知,在通过人工触发进行数据的批量更新时,服务模块也可以根据需要处理的数据量大小,估算需要处理的时间,根据消耗时间的长短,选择不同的任务队列,从而可以进一步减少多个批次的数据进行更新所需要的时间。
可选的,所述数据处理装置60还包括:
常规任务模块604,用于接收数据生产方发送的数据,并对所述数据生产方发送的数据进行处理,并标记时间戳后发送给所述服务模块进行保存。
其中,由推荐实体生产源生产数据,通过消息推送给常规任务模块,正常实时处理完毕,通过消息发送给服务模块。其中,每条数据实时处理之后,会打上一个处理时间戳,服务模块收到数据后缓存,并通过RPC(Remote Procedure Call Protocol,远程过程调用协议)接口提供给下游。
另外,常规任务模块对数据的实时处理过程可以包括:数据格式化、数据清洗、聚合实体之间的信息、实体去重、内容理解、质量定标中的一个或多个处理过程。
由上述可知,对于常规任务模块,补偿模块、批量更新模块在获取到生产方的源数据后,对数据的具体处理过程是相同的。因而,本发明的实施例,去除了传统意义上的批量任务,只维护一套代码,即数据的实时处理、单次更新、批量更新都调用一套代码,代码部署上线简单方便,完全消除了实时和离线任务逻辑的差异。并且,同时实现了批量任务更新的功能,例如可以实现大部分场景下,比如脏数据修复,丢失数据补偿的数据更新,将传统的批量任务被按需的、少量的强制数据刷新替代,大幅节省了计算资源;其中,大批量的数据强制刷新需求,也通过流式任务执行,并且可以灵活设置时间窗口。
综上所述,本发明实施例的候选数据池的具体实施方式的结构框图可如图5所示,其中,数据生产源更新推送,即向常规任务模块发送数据生产、下线、更新的消息,以使得常规任务模块对数据进行实时处理;数据使用方向服务模块请求数据时,服务模块判断该请求是否处于被请求的数据的有效期内,以及被请求的数据是否符合数据有效规则,从而触发补偿模块在该请求未处于被请求的数据的有效期内,或者被请求的数据的数据内容发生变化时,进行单条数据的更新,即仅更新本次请求的数据;在被请求的数据的数据结构变化时,将本次被请求的数据与近期被请求的其他数据中发生数据结构变化的数据一起,进行批量更新。
另外,数据生产源通过读取接口,可以向补偿模块发送单条读取信息,以使得补偿模块可以从服务模块读取对应的单条数据,也可以向批量更新模块发送批量读取信息,以使得批量更新模块可以从服务模块读取批量数据。
由上述可知,本发明的实施例,与现有技术相比:
第一方面,现有技术中,定时更新的是候选数据池中的全部数据,然而并不是所有数据都需要定时更新,一个推荐候选数据池中可能存在相当多的数据难以被召回,也就是大概率并不会被使用到,因而现有技术中定时更新全部候选数据池的数据,往往包括很多不必要的更新,从而浪费了计算资源。而本发明的实施例中,在数据被请求的情况下,才会对该数据进行更新,避免了对并不可能会被数据使用方使用的数据进行更新,而浪费计算资源。
第二方面,现有技术中,定时更新候选数据池中全部数据,例如在每天中的零点开始从生产方读取源数据,进行更新,假设全部数据更新需要30分钟,而在零点零5生产方新生产一部分数据,并输入候选数据池,该部分新上线的数据处理完毕的时间是零点零7分,那么从处理完毕的时间上看,零点30分处理完的数据时最新的,但是实际上零点零5分新上线的数据(也就是零点零7分处理完的数据)应该是最新的,因此,单纯依据数据处理完毕时间来判定哪些是最新数据,往往是不准确的,因此,现有技术中还需要其他比较复杂的辅助手段来确认哪些是最新的数据。而本发明的实施例中,采用纯粹的实时更新,即被请求才会进行更新,并不存在定时更新的过程,并且通过数据有效窗口和数据有效规则检查数据的有效性,即通过数据有效窗口和数据有效规则可以识别被请求的是否是最新的数据,并在不是最新数据时,进行更新。因此,本发明的实施例,仅仅依靠数据有效窗口和数据有效规则,就可以很容易得识别出哪些是最新的数据,从而使得数据使用方能够使用最新的数据执行相关的业务。
本发明的实施例还提供了一种数据处理系统,包括用于进行与实体本身数据相关的逻辑处理的通用层,以及至少一个用于进行业务场景相关的逻辑处理的业务层(例如图6所示),其中,所述通用层包括上述任一项所述的数据处理方法中的候选数据池,所述业务层包括上述任一项所述的数据处理方法中的候选数据池,其中,所述业务层包括的候选数据池向所述通用层包括的候选数据池请求数据,所述通用层包括的候选数据池为所述业务层包括的候选数据池提供数据;
或者,也可以为:所述通用层包括图3中所示的候选数据池,所述业务层包括图3中所示的候选数据池,或者所述通用层包括图4中所示的候选数据池,所述业务层包括图4中所示的候选数据池。
本发明实施例的数据处理系统的其中一个实施例为,该数据处理系统的通用层和业务层都包括常规任务模块、补偿模块、批量更新模块和服务模块。
其中,通用层的常规任务模块、补偿模块、批量更新模块对数据的处理过程,基于apache flink分布式计算框架实现,进行通用的数据预处理工作,包括数据的格式化,聚合,清洗等操作。
此外,通用层通过消息队列方式,发送给多个并列和平行的业务层,使得业务层依托于通用层。此外,可以使用formatter(格式器),过滤器(filter)算子配置,产出不同的业务层。
具体地,所述数据处理系统的具体实施方式可如下所述:
将数据处理系统的流任务分层设计,即分为通用层和业务层,业务层包括的候选数据池向通用层包括的候选数据池请求数据,通用层包括的候选数据池为业务层包括的候选数据池提供数据。其中,通用层和业务层都由常规任务模块、补偿模块、批量更新模块和服务模块组成。常规任务模块、补偿模块、批量更新模块、服务模块,在每一层内是并行关系。
其中,通用层负责处理和业务无关,仅和实体本身数据有关的逻辑,无关各业务候选数据池的入场规则,并且也不涉及业务特有字段,例如在一个数据有效窗口,比如2小时内,对于一个专辑内新上线的视频,将该视频的信息,更新到专辑实体上,比如在专辑上增加最新一集上线时间。业务层处理业务场景相关的逻辑,例如,通用层负责处理所有视频,并且只处理标题、时长等视频通用字段,业务层有两种业务场景,影视类相关视频推荐和个性化短视频流推荐,通用层生成一个通用的视频候选数据池,影视推荐业务候选数据池从通用视频候选数据池中,选择影视类视频,并且处理编导等影视字段,短视频个性化推荐候选数据池从通用候选数据池中选择UGC(User Generated Content,用户生成内容)短视频,并且处理上传者信息字段。
另外,业务层采用孵化器设计,即通过格式器和过滤器算子,控制入场的物料,并且组装并选择输出的字段。
具体的,一个完整的从通用层到业务层的数据处理流程如下所述:
生产源生产数据,经过通用层处理,缓存到通用层数据服务模块;
通用层服务模块将处理好的数据通过消息发送到各业务层的常规任务模块,其中,每个业务层收到的消息是相同的;
业务层根据自身的场景需求,判断是否对该数据进行处理,如果需要则在此数据基础上进一步加工,处理完毕之后,进入业务层数据服务模块缓存;
下游业务数据使用方,通过业务层的数据服务模块请求数据,如果数据有效(即在数据有效窗口内且符合数据有效规则),则直接使用;
如果数据无效,则通过业务层的补偿模块或者批量更新模块更新数据,其中,具体由补偿模块更新还是批量更新模块进行更新,以及具体的更新方法可参见前文,此处不再赘述;
当业务层的补偿模块或者批量更新模块需要更新数据时,请求通用层的服务模块,即向通用层的服务模块请求源数据;
如果通用层的服务模块的数据有效(即在数据有效窗口内,且通过规则校验),则直接返回给业务层;
否则通过通用层的补偿模块或者批量更新模块,从上游的数据生产方读取通用层进行数据更新所需的源数据,并进行更新,然后将更新后的数据返回给业务层。
由上述可知,该数据处理系统分阶段处理,则数据更新不需要从源头执行,通用层的数据可能不需要变更即可满足业务层的数据更新需求,即当业务层逻辑变更之后,通用层处理过的数据不需要重新计算,只需要通过回溯通用层的消息,通过业务层孵化器重新处理即可;其中,不同的业务层,复用相同的实体,在通用层只处理一次,避免了重复处理。
由此可知,本发明实施例的数据处理系统与现有技术相比,具体如下所述:
现有技术中,推荐候选数据池服务,在业务层面,需要面对灵活多变的互联网推荐产品形态,举例来说,传统推荐主要基于内容相关,对头部内容进行推荐分发,推荐产品较少,一般猜测用户所喜欢的类型,其中,物料库规则和结构比较简单,而目前流行的信息流推荐产品,形态多样,衍生产品多,比如短视频推荐,小视频推荐,社区推荐,图文信息流推荐,混合流推荐,涉及到的实体类型多,准入规则变化频繁。并且,对于传统推荐候选数据池,一般是针对一种业务类型,独立构建一套服务,从源头数据开始进行处理,生产业务特定的候选池,则面临着输入数据多,输出数据少,大量重复的数据处理问题,严重浪费资源,并且难以维护。
而本发明的实施例,即将流式任务拆分成了面向物料实体的通用层和面向业务的业务层,实现了两个层面的数据复用,一是横向的实体数据在多业务间复用,二是通用层的数据在业务逻辑更新后的消息流复用,从而可以在一定程度上解决大量数据被重复处理,从而浪费资源的问题。
本发明实施例还提供了一种电子设备,如图7所示,包括处理器71、通信接口72、存储器73和通信总线74,其中,处理器71,通信接口72,存储器73通过通信总线74完成相互间的通信;
存储器73,用于存放计算机程序;
处理器71,用于执行存储器73上所存放的程序时,实现如下步骤:
获取数据使用方发送的第一数据请求;
根据预先确定的数据有效窗口的时长以及数据有效规则,判断所述第一数据请求所请求的第一目标数据是否需要更新,并在所述第一目标数据需要更新的情况下,对所述第一目标数据进行更新;
其中,所述第一目标数据是所述电子设备上设置的候选数据池中存储的数据,所述数据有效规则包括至少一种对数据的特征的要求。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的数据处理方法。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的数据处理方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种数据处理方法,其特征在于,应用于包括候选数据池和数据使用方的系统,所述方法执行于所述候选数据池,所述方法包括:
获取所述数据使用方发送的第一数据请求;
根据预先确定的数据有效窗口的时长以及数据有效规则,判断所述第一数据请求所请求的第一目标数据是否需要更新,并在所述第一目标数据需要更新的情况下,对所述第一目标数据进行更新;
其中,所述第一目标数据是所述候选数据池中存储的数据,所述数据有效规则包括至少一种对数据的特征的要求。
2.根据权利要求1所述的数据处理方法,其特征在于,所述数据有效规则包括对数据内容的要求;
所述根据预先确定的数据有效窗口的时长以及数据有效规则,判断所述第一数据请求所请求的第一目标数据是否需要更新,并在所述第一目标数据需要更新的情况下,对所述第一目标数据进行更新,包括:
判断所述第一目标数据上一次更新的第一时刻,距离接收所述第一数据请求的第二时刻的第一时长,是否大于所述数据有效窗口的时长;
在所述第一时长大于所述数据有效窗口的时长的情况下,对所述第一目标数据进行更新;
在所述第一时长小于或等于所述数据有效窗口的时长的情况下,判断所述第一目标数据是否与所述数据有效规则相匹配;
在第一目标数据的数据内容与所述数据有效规则中对数据内容的要求不匹配的情况下,对所述第一目标数据进行更新。
3.根据权利要求2所述的数据处理方法,其特征在于,所述数据有效规则还包括对数据结构的要求;
在判断所述第一目标数据是否与所述数据有效规则相匹配之后,所述数据处理方法还包括:
在所述第一目标数据的数据结构与所述数据有效规则中对数据结构的要求不匹配的情况下,获取所述第二时刻之前第一预设时间内被请求的数据中数据结构发生变化的第二目标数据,并对所述第一目标数据和所述第二目标数据进行更新。
4.根据权利要求3所述的数据处理方法,其特征在于,所述第二目标数据包括至少一次第二数据请求所请求的数据;
所述对所述第一目标数据和所述第二目标数据进行更新,包括:
获取所述第一目标数据的第一生产方的数据传输接口的每秒查询率,以及每一次所述第二数据请求所请求的数据的第二生产方的数据传输接口的每秒查询率;
计算所述第一目标数据的大小与所述第一生产方的数据传输接口的每秒查询率的比值,以及,每一次所述第二数据请求所请求的数据的大小与对应的所述第二生产方的数据传输接口的每秒查询率的比值;
根据所述比值的大小,将所述第一目标数据的更新任务和所述至少一次第二数据请求所请求的数据的更新任务添加到不同的任务队列;
分别执行所述任务队列中的数据更新任务,其中,不同任务队列的任务并行处理,同一任务队列的任务按照在队列中的排序顺序执行。
5.根据权利要求1所述的数据处理方法,其特征在于,还包括:
在接收到用户输入的情况下,获取第三目标数据,所述第三目标数据中包括至少一次第三数据请求所请求的数据中数据结构发生变化的数据,所述至少一次第三数据请求是处于所述用户输入的接收时刻之前的第二预设时间内的数据请求;
对所述第三目标数据进行更新;
其中,若所述第一数据请求处于所述第二预设时间内,则所述至少一次第三数据请求中包括所述第一数据请求;若所述第一数据请求处于所述第二预设时间之外,则所述至少一次第三数据请求中不包括所述第一数据请求。
6.根据权利要求5所述的数据处理方法,其特征在于,所述对所述第三目标数据进行更新,包括:
获取每一次所述第三数据请求所请求的数据的第三生产方的数据传输接口的每秒查询率;
计算每一次所述第三数据请求所请求的数据的大小与对应的所述第三生产方的数据传输接口的每秒查询率的比值;
根据所述比值的大小,将各第三数据请求所请求的数据的更新任务添加到不同的任务队列;
分别执行所述任务队列中的数据更新任务,其中,不同任务队列的任务并行处理,同一任务队列的任务按照在队列中的排序顺序执行。
7.一种候选数据池,其特征在于,所述候选数据池与数据使用方组成一系统,所述候选数据池包括:
服务模块,用于获取所述数据使用方发送的第一数据请求;
所述服务模块还用于根据预先确定的数据有效窗口的时长以及数据有效规则,判断所述第一数据请求所请求的第一目标数据是否需要更新;
补偿模块,用于在所述服务模块判定所述第一目标数据需要更新的情况下,对所述第一目标数据进行更新;
其中,所述第一目标数据是所述候选数据池中存储的数据,所述数据有效规则包括至少一种对数据的特征的要求。
8.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-6任一所述的数据处理方法。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6中任一所述的数据处理方法。
10.一种数据处理系统,其特征在于,包括用于进行与实体本身数据相关的逻辑处理的通用层,以及至少一个用于进行业务场景相关的逻辑处理的业务层,所述通用层包括如权利要求1-6中任一项所述的数据处理方法中的候选数据池,所述业务层包括如权利要求1-6中任一项所述的数据处理方法中的候选数据池,其中,所述业务层包括的候选数据池向所述通用层包括的候选数据池请求数据,所述通用层包括的候选数据池为所述业务层包括的候选数据池提供数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010188264.XA CN111368207B (zh) | 2020-03-17 | 2020-03-17 | 数据处理方法及系统、候选数据池、电子设备、计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010188264.XA CN111368207B (zh) | 2020-03-17 | 2020-03-17 | 数据处理方法及系统、候选数据池、电子设备、计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111368207A true CN111368207A (zh) | 2020-07-03 |
CN111368207B CN111368207B (zh) | 2023-09-22 |
Family
ID=71210543
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010188264.XA Active CN111368207B (zh) | 2020-03-17 | 2020-03-17 | 数据处理方法及系统、候选数据池、电子设备、计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111368207B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110231848A1 (en) * | 2010-03-16 | 2011-09-22 | Salesforce.Com, Inc. | Forecasting systems and methods |
CN108334505A (zh) * | 2017-01-19 | 2018-07-27 | 阿里巴巴集团控股有限公司 | 一种数据处理方法、装置、服务器及库存系统 |
CN108848173A (zh) * | 2018-06-25 | 2018-11-20 | 郑州云海信息技术有限公司 | 一种数据更新方法、装置、设备及可读存储介质 |
CN110263024A (zh) * | 2019-05-20 | 2019-09-20 | 平安普惠企业管理有限公司 | 数据处理方法、终端设备及计算机存储介质 |
CN110633320A (zh) * | 2018-05-30 | 2019-12-31 | 北京京东尚科信息技术有限公司 | 分布式数据服务的处理方法、系统、设备及存储介质 |
-
2020
- 2020-03-17 CN CN202010188264.XA patent/CN111368207B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110231848A1 (en) * | 2010-03-16 | 2011-09-22 | Salesforce.Com, Inc. | Forecasting systems and methods |
CN108334505A (zh) * | 2017-01-19 | 2018-07-27 | 阿里巴巴集团控股有限公司 | 一种数据处理方法、装置、服务器及库存系统 |
CN110633320A (zh) * | 2018-05-30 | 2019-12-31 | 北京京东尚科信息技术有限公司 | 分布式数据服务的处理方法、系统、设备及存储介质 |
CN108848173A (zh) * | 2018-06-25 | 2018-11-20 | 郑州云海信息技术有限公司 | 一种数据更新方法、装置、设备及可读存储介质 |
CN110263024A (zh) * | 2019-05-20 | 2019-09-20 | 平安普惠企业管理有限公司 | 数据处理方法、终端设备及计算机存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111368207B (zh) | 2023-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9727613B2 (en) | Distributed data stream processing method and system | |
CN104731690B (zh) | 适应性度量收集、存储、和警告阈值 | |
CN112559475B (zh) | 数据实时捕获和传输方法及系统 | |
US10990455B2 (en) | Management of application programming interface (API) retention | |
US11650989B2 (en) | Efficient aggregation of time series data | |
CN115017159A (zh) | 数据处理方法及装置、存储介质及电子设备 | |
CN117472282A (zh) | 基于分布式存储系统的序列号生成方法、装置及电子设备 | |
WO2016099350A1 (en) | Network node, indexing server and methods performed thereby for supporting indexing of audio visual content | |
CN111368207A (zh) | 数据处理方法及系统、候选数据池、电子设备、计算机可读存储介质 | |
CN110020129B (zh) | 点击率校正方法、预估方法、装置、计算设备及存储介质 | |
CN115119021A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN108769167A (zh) | 一种业务数据的推送分配方法和装置 | |
CN112764988B (zh) | 一种数据分段采集方法及装置 | |
CN113612832A (zh) | 流式数据分发方法与系统 | |
Kepe et al. | KSample: dynamic sampling over unbounded data streams | |
CN113298106A (zh) | 一种样本生成方法、装置、服务器及存储介质 | |
CN111552566A (zh) | 一种数据处理系统、方法、电子设备及存储介质 | |
CN112039968A (zh) | 一种数据处理系统 | |
CN111274316A (zh) | 多级数据流转任务的执行方法及装置、电子设备、存储介质 | |
CN110929207A (zh) | 数据处理方法、装置和计算机可读存储介质 | |
CN114253951B (zh) | 数据处理方法、系统及第二服务器 | |
CN116431688B (zh) | 一种数据的处理方法、装置、电子设备及存储介质 | |
CN111708997B (zh) | 目标对象身份标识符的确定方法、装置及存储介质 | |
CN107566450B (zh) | 一种实时用户行为的数据处理方法、装置及电子设备 | |
WO2023078226A1 (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 |