CN114116162A - 数据处理方法、系统及非暂时性存储介质 - Google Patents
数据处理方法、系统及非暂时性存储介质 Download PDFInfo
- Publication number
- CN114116162A CN114116162A CN202111370053.9A CN202111370053A CN114116162A CN 114116162 A CN114116162 A CN 114116162A CN 202111370053 A CN202111370053 A CN 202111370053A CN 114116162 A CN114116162 A CN 114116162A
- Authority
- CN
- China
- Prior art keywords
- data
- time
- target
- data processing
- time window
- 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
- 238000003860 storage Methods 0.000 title claims abstract description 46
- 238000003672 processing method Methods 0.000 title claims abstract description 42
- 238000005192 partition Methods 0.000 claims description 63
- 238000000034 method Methods 0.000 claims description 24
- 230000011218 segmentation Effects 0.000 claims description 15
- 238000000638 solvent extraction Methods 0.000 claims description 2
- 238000004140 cleaning Methods 0.000 abstract description 7
- 239000013589 supplement Substances 0.000 abstract description 4
- 238000004364 calculation method Methods 0.000 description 20
- 238000004891 communication Methods 0.000 description 14
- 238000004519 manufacturing process Methods 0.000 description 10
- 230000001186 cumulative effect Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 230000003190 augmentative effect Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000009825 accumulation Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000013500 data storage Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 239000011521 glass Substances 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 238000004904 shortening Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
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/24568—Data stream processing; Continuous queries
-
- 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/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本说明书提供的数据处理方法、系统及非暂时性存储介质,将实时计算的流任务处理逻辑与批任务处理逻辑相结合,既能使用流任务处理逻辑实时计算在线消息队列中当前时间周期的累计数据,同时又能使用了批任务处理逻辑计算离线数据库中多个历史时间周期的历史数据来补充所需的时间窗口中的数据,并将两部分数据合并后产生累计数据提供给用户使用,既避免了离线数据清洗中缺少当前时间周期的实时数据导致的数据时效性不足的问题,又克服了实时流任务处理逻辑中需要累计运行所需时间窗口长度的时间才能得到完整数据的问题。
Description
技术领域
本说明书涉及计算机技术领域,尤其涉及一种数据处理方法、系统及非暂时性存储介质。
背景技术
在数据处理中经常有一些需求是对特征主体在指定时间窗口内的累计值进行数据处理。现有技术中的数据处理方法一般有两种,一种是对离线数据源进行批任务计算,另一种是对在线消息队列数据进行流任务计算。由于离线数据源存在数据延迟,因此对离线数据源进行批任务计算可能导致数据延迟,时效性较低。而使用实时流任务计算在线消息队列数据这种方式需要累计够时间窗口的长度的数据才能使用,否则数据不准确,从而导致数据生产周期比较长。
因此,需要提供一种效率更高以及精度更高的数据处理方法、系统及非暂时性存储介质,缩短数据处理所需的数据生产周期的同时提高数据准确性,从而提高计算效率以及计算精度。
发明内容
本说明书提供一种效率更高以及精度更高的数据处理方法、系统及非暂时性存储介质,缩短数据处理所需的数据生产周期的同时提高数据准确性,从而提高计算效率以及计算精度。
第一方面,本说明书提供一种数据处理方法,包括:接收数据处理请求,所述数据处理请求包括对目标时间窗口内的目标数据进行数据处理的请求;基于离线数据库以及在线消息队列确定目标分割点,所述目标分割点将所述目标时间窗口分为所述目标分割点前的第一时间窗口和所述目标分割点后的第二时间窗口;基于批任务处理逻辑,对所述离线数据库中所述第一时间窗口对应的第一数据进行所述数据处理,得到第一结果,所述目标数据包括所述第一数据;以及基于流任务处理逻辑,对所述在线消息队列中所述第二时间窗口对应的第二数据进行所述数据处理,得到第二结果,所述目标数据包括所述第二数据。
在一些实施例中,所述目标时间窗口部分位于所述离线数据库对应的时间窗口内,部分位于所述在线消息队列对应的时间窗口内,所述第一时间窗口完全位于所述离线数据库对应的时间窗口内,所述第二时间窗口完全位于所述在线消息队列对应的时间窗口内。
在一些实施例中,所述基于离线数据库以及在线消息队列确定目标分割点,包括:获取所述离线数据库以及所述在线消息队列;基于所述离线数据库对应的时间窗口以及所述目标时间窗口的交集,确定所述离线数据库对应的第一时间范围;基于所述在线消息队列对应的时间窗口以及所述目标时间窗口的交集,确定所述在线消息队列对应的第二时间范围;基于所述第一时间范围和所述第二时间范围的交集,确定第三时间范围;以及从所述第三时间范围中选择一个时间点作为所述目标分割点。
在一些实施例中,所述从所述第三时间范围中选择一个时间点作为所述目标分割点,包括以下情况中的一种:从所述第三时间范围中选择任意一个时间点作为所述目标分割点;从所述第三时间范围中选择任意一个边界时间点作为所述目标分割点;以及从所述第三时间范围中选择所述离线数据库的分区边界时间点作为所述目标分割点,所述离线数据库包括按照时间规则划分的多个分区,所述分区边界时间点包括所述多个分区中相邻分区的临界时间点。
在一些实施例中,所述基于批任务处理逻辑,对所述离线数据库中所述第一时间窗口对应的第一数据进行所述数据处理,得到第一结果,包括:从所述离线数据库中获取所述第一数据,所述第一数据包括基于所述离线数据库的分区规则划分的至少一个第一分区数据,所述分区规则包括按照时间周期分区;以及基于所述批任务处理逻辑,对所述至少一个第一分区数据进行所述数据处理,得到至少一个第一分区结果,所述第一结果包括所述至少一个第一分区结果。
在一些实施例中,所述基于流任务处理逻辑,对所述在线消息队列中所述第二时间窗口对应的第二数据进行所述数据处理,得到第二结果,包括:从所述在线消息队列中获取所述第二数据;以及基于所述流任务处理逻辑,对所述第二数据进行所述数据处理,得到所述第二结果。
在一些实施例中,所述数据处理方法还包括:输出所述第一结果以及所述第二结果。
在一些实施例中,所述输出所述第一结果和所述第二结果,包括:将所述第一结果和所述第二结果合并,得到目标结果并输出。
第二方面,本说明书还提供一种数据处理系统,包括至少一个存储介质以及至少一个处理器,所述至少一个存储介质存储有至少一个指令集,用于数据处理;所述至少一个处理器同所述至少一个存储介质通信连接,其中,当所述数据处理系统运行时,所述至少一个处理器读取所述至少一个指令集,并且根据所述至少一个指令集的指示执行本说明书第一方面所述的数据处理方法。
第三方面,本说明书还提供一种非暂时性存储介质,存储有至少一个指令集用于数据处理,当所述至少一个指令集被处理器执行时,所述处理器根据所述至少一个指令集实施本说明书第一方面所述的数据处理方法。
由以上技术方案可知,本说明书提供的数据处理方法、系统及非暂时性存储介质,将实时计算的流任务处理逻辑与批任务处理逻辑相结合。当用户需要获取目标时间窗口(假设目标时间窗口为过去的N个时间周期,N>1,比如N天)内的数据时,所述方法、系统及非暂时性存储介质使用流任务处理逻辑实时计算在线消息队列中当前时间周期的累计数据,避免了离线数据清洗中缺少当前时间周期数据导致的数据时效性不足的问题;同时使用了批任务处理逻辑计算离线数据库中N-1个时间周期的历史数据来补充目标时间窗口中的数据,克服了实时流任务处理逻辑中需要累计运行目标时间窗口长度(N 个时间周期)的时间才能得到完整数据的问题,并将两部分数据合并后产生N个时间周期的累计数据提供给用户使用。本说明书提供的数据处理方法、系统及非暂时性存储介质,建立一个实时更新的对目标时间窗口(N个时间周期)的数据处理流程,可以在短时间(小于1个时间周期的时间)内得到目标时间窗口(N个时间周期)的完整数据结果,将数据累计处理时间从N个时间周期减少到小于1个时间周期,极大的减少了数据生产的周期,解决用户需要在线上运行N个时间周期后才能使用累计了N个时间周期数据的问题,同时提高数据的完整性、准确性以及时效性,从而提高计算效率以及计算精度。本说明书提供的数据处理方法、系统及非暂时性存储介质中,用户只需要提供原始的累计逻辑,自动翻译为批处理任务逻辑和流处理任务逻辑,通过建立目标分隔点将离线的批任务处理逻辑和实时的流任务处理逻辑能够无缝协作起来减少数据处理的时间。
本说明书提供的数据处理方法、系统及非暂时性存储介质的其他功能将在以下说明中部分列出。根据描述,以下数字和示例介绍的内容将对那些本领域的普通技术人员显而易见。本说明书提供的数据处理方法、系统及非暂时性存储介质的创造性方面可以通过实践或使用下面详细示例中所述的方法、装置和组合得到充分解释。
附图说明
为了更清楚地说明本说明书实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了根据本说明书的实施例提供的一种数据处理系统的应用环境图;
图2示出了根据本说明书的实施例提供的一种计算设备的硬件结构图;
图3示出了根据本说明书的实施例提供的一种数据处理方法流程图;以及
图4示出了根据本说明书的实施例提供的一种获取目标分割点的方法流程图。
具体实施方式
以下描述提供了本说明书的特定应用场景和要求,目的是使本领域技术人员能够制造和使用本说明书中的内容。对于本领域技术人员来说,对所公开的实施例的各种局部修改是显而易见的,并且在不脱离本说明书的精神和范围的情况下,可以将这里定义的一般原理应用于其他实施例和应用。因此,本说明书不限于所示的实施例,而是与权利要求一致的最宽范围。
这里使用的术语仅用于描述特定示例实施例的目的,而不是限制性的。比如,除非上下文另有明确说明,这里所使用的,单数形式“一”,“一个”和“该”也可以包括复数形式。当在本说明书中使用时,术语“包括”、“包含”和/或“含有”意思是指所关联的整数,步骤、操作、元素和/或组件存在,但不排除一个或多个其他特征、整数、步骤、操作、元素、组件和/或组的存在或在该系统/方法中可以添加其他特征、整数、步骤、操作、元素、组件和/或组。
考虑到以下描述,本说明书的这些特征和其他特征、以及结构的相关元件的操作和功能、以及部件的组合和制造的经济性可以得到明显提高。参考附图,所有这些形成本说明书的一部分。然而,应该清楚地理解,附图仅用于说明和描述的目的,并不旨在限制本说明书的范围。还应理解,附图未按比例绘制。
本说明书中使用的流程图示出了根据本说明书中的一些实施例的系统实现的操作。应该清楚地理解,流程图的操作可以不按顺序实现。相反,操作可以以反转顺序或同时实现。此外,可以向流程图添加一个或多个其他操作。可以从流程图中移除一个或多个操作。
为了方便展示,在开始描述之前,我们将对后面的描述中将会引用的术语进行如下解释:
离线数据库:数据仓库中存储历史数据的数据库,所述历史数据通常以离线表的形式存储在所述离线数据库中,所述离线表按照预设的分区规则将历史数据进行分区,一般所述离线表可以按照时间规则将历史数据进行分区,比如,按照时间周期进行分区,例如年、月、周、天、小时等等。同一个时间周期中的历史数据会被划分为同一个分区。所述离线表中只存储有当前时间周期前的完整的时间周期的历史数据,没有当前时间周期内的数据,只有在当前时间周期中的数据累计完整后才会被计入所述离线表中。比如,当离线表按照天进行分区时,同一天的历史数据会被划分为同一个分区,此时离线表中不包含当天的数据,只有在当天数据累计完整后才会被计入所述离线表中。再比如,当离线表按照小时进行分区时,同一个小时的历史数据会被划分为同一个分区,此时离线表中不包含当前小时内的数据,只有在当前小时的数据累计完整后才会被计入所述离线表中。因此,所述离线数据库中的数据时效性较差,存在数据延迟,用户无法从离线数据库中获取当前时间周期内的数据。
在线消息队列:在线应用产生的实时数据通过消息的方式发送到指定的队列中,可供不同的消费者拉取消费,消息的时效性较高但是保存的时长受限一般只保留最新几天内的消息,过期将丢弃。也就是说,在线消息队列中只能存储一定的时间周期内产生的数据,超过当前时间周期后,数据将被删除,在线消息队列中继续存储新的时间周期的数据。因此,在在线消息队列中只能看到当前时间周期中的数据。
有界数据集:数据是静止不动的。也就是说,没有再进行追加,又或者说在处理的当时时刻不考虑追加写入操作。所以有界数据集又或者说是有时间边界。
无界数据集:对于某些场景,类似于Kafka持续的计算等都被认定为无界数据集,无界数据集是会发生持续变更的、连续追加的。例如:服务器信令、网络传输流、实时日志信息等。
批任务处理逻辑:对已经存在的有界数据上执行一定的运算处理,在执行批任务处理逻辑时,所述有界数据必须已经全部存在,处理完成后任务既结束。
流任务处理逻辑:对无界数据消息流进行运算处理,实时输出处理结果,由于流任务处理逻辑处理的数据流是无界的,因此流任务处理一般在启动后会持续运行。
在数据生产中经常有一些需求是对特征主体获取其指定时间窗口内的累计值,例如获取用户过去30天内的登录次数,某个手机号过去24小时内的累计付款金额等。目前数据生产的实现方案有两种:离线清洗和在线实时计算。离线清洗一般是指采用离线的批任务处理引擎针对所述离线数据库中指定的一个或者多个历史时间周期对应的离线历史数据进行数据的处理和加工,得到最终结果。离线清洗针对的离线数据库中的历史数据一般是T+1(T为天,T+1指在第T+1天才能获取第T天的数据)或者H+1(H为小时,H+1指在第H+1个小时才能获取第H个小时的数据)的历史数据,因此这些历史数据中不包含当前时间所在的时间周期内的数据,数据的时效性要落后当前时间一个时间周期或小于一个时间周期,比如落后当前时间一天或一个小时,从而导致数据延迟。
在线实时计算一般是指使用在线应用或者流任务处理引擎针对用户需求对在线消息队列中实时流入的数据事件进行加工处理,实时得到截止到当前时间的计算结果。实时计算需要将流任务处理逻辑部署上线,而数据处理就在部署上线的时刻开始,一次针对一些长窗口的累计(比如求7天的用户总量),需要运行一定时间后才能累计到真正完整的结果,而在此之前的数据结果都是不能完整覆盖累计窗口的,否则数据不准确,因此其数据生产周期比较长。
本说明书提供的数据处理方法、系统及非暂时性存储介质,将实时计算的流任务处理逻辑与批任务处理逻辑相结合,既能使用流任务处理逻辑实时计算在线消息队列中当前时间周期的累计数据,同时又能使用了批任务处理逻辑计算离线数据库中多个历史时间周期的历史数据来补充所需的时间窗口中的数据,并将两部分数据合并后产生累计数据提供给用户使用,既避免了离线数据清洗中缺少当前时间周期数据导致的数据时效性不足的问题,又克服了实时流任务处理逻辑中需要累计运行所需时间窗口长度的时间才能得到完整数据的问题。
图1示出了根据本说明书的实施例提供的一种数据处理系统001的应用环境图。本说明书提供的数据处理方法,可以应用于如图1所示的应用环境中。如图1所示,所述数据处理系统001可以包括客户端100、服务器200、计算设备300、网络400以及数据库500。
如图1所示,用户110是客户端100的使用者。客户端100一般是用户110与服务器200建立沟通的连接设备。用户110可以使用客户端100通过网络400与服务器200 交互,以接收或发送消息等。客户端100与服务器200通讯连接。在一些实施例中,服务器200可以同时和多个客户端100通讯连接。在一些实施例中,客户端100可以安装有一个或多个应用(APP)。所述APP能够为用户110提供通过网络400同外界交互的能力以及界面。所述APP包括但不限于:网页浏览器类APP程序、搜索类APP程序、聊天类APP程序、购物类APP程序、视频类APP程序、理财类APP程序、即时通信工具、邮箱客户端、社交平台软件等等。在一些实施例中,客户端100可以包括移动设备、平板电脑、笔记本电脑、机动车辆的内置设备或类似内容,或其任意组合。在一些实施例中,所述移动设备可包括智能家居设备、智能移动设备、虚拟现实设备、增强现实设备或类似设备,或其任意组合。在一些实施例中,所述智能家居装置可包括智能电视、台式电脑等,或任意组合。在一些实施例中,所述智能移动设备可包括智能手机、个人数字辅助、游戏设备、导航设备等,或其任意组合。在一些实施例中,所述虚拟现实设备或增强现实设备可能包括虚拟现实头盔、虚拟现实眼镜、虚拟现实补丁、增强现实头盔、增强现实眼镜、增强现实补丁或类似内容,或其中的任何组合。例如,所述虚拟现实设备或所述增强现实设备可能包括谷歌眼镜、头戴式显示器、齿轮VR等。在一些实施例中,所述机动车中的内置装置可包括车载计算机、车载电视等。在一些实施例中,客户端100可以是具有定位技术的设备,用于定位客户端100的位置。
服务器200可以是提供各种服务的服务器,例如对客户端100上显示的页面提供支持的后台服务器。在一些实施例中,服务器200可以包括具有数据信息处理功能的硬件设备和驱动该硬件设备工作所需必要的程序。在一些实施例中,服务器200可以存储有所述APP运行时产生的实时数据,即在线消息队列。
计算设备300可以存储有执行本说明书描述的数据处理方法的数据或指令,并可以执行或用于执行所述数据或指令。在一些实施例中,计算设备300可以包括具有数据信息处理功能的硬件设备和驱动该硬件设备工作所需必要的程序。计算设备300可以与服务器200通信连接。在一些实施例中,计算设备300可以通过网络400实现与服务器200 的通信连接。在一些实施例中,计算设备300可以通过有线连接实现与服务器200的通信连接。在一些实施例中,计算设备300可以集成在服务器200中,作为服务器200的一部分。在一些实施例中,计算设备300可以是独立于服务器200的设备。在一些实施例中,计算设备300可以是分布式计算设备,包括多个分布式计算节点。需要说明的是,本说明书提供的数据处理方法一般由计算设备300执行。
应该理解,图1中的客户端100、服务器200、计算设备300、网络400以及数据库 500的数目仅仅是示意性的。根据实现需要,可以具有任意数目的客户端100、服务器 200、计算设备300、网络400以及数据库500。
网络400用以在客户端100和服务器200之间提供通信连接的介质。在一些实施例中,网络400也可以用以在服务器200、计算设备300和数据库500之间提供通信连接的介质。网络400可以促进信息或数据的交换。如图1所示,客户端100、服务器200、计算设备300、数据库500可以同网络400连接,并且通过网络400互相传输信息或数据。例如,服务器200可以通过网络400从客户端100获取信息。在一些实施例中,网络400可以是任何类型的有线或无线网络,也可以是其组合。比如,网络400可以包括电缆网络,有线网络、光纤网络、电信通信网络、内联网、互联网、局域网(LAN)、广域网(WAN)、无线局域网(WLAN)、大都市市区网(MAN)、广域网(WAN)、公用电话交换网(PSTN)、蓝牙网络、ZigBee网络、近场通信(NFC)网络或类似网络。在一些实施例中,网络400可以包括一个或多个网络接入点。例如,网络400可以包括有线或无线网络接入点,如基站或互联网交换点,通过该接入点,客户端100、服务器200、计算设备300、数据库500的一个或多个组件可以连接到网络400以交换数据或信息。
数据库500可以存储数据或指令。在一些实施例中,数据库500可以存储从服务器200或客户端100获得的数据。在一些实施例中,数据库500可以存储服务器200可以执行或用于执行本说明书中描述的数据处理方法的数据或指令。在一些实施例中,数据库500可以存储有所述APP运行时产生的离线数据。计算设备300、服务器200和客户端100可能具有访问数据库500的权限,计算设备300、服务器200和客户端100可以通过网络400访问存储在数据库500中的数据或指令。在一些实施例中,数据库500可以直接连接到计算设备300、服务器200和客户端100。在一些实施例中,数据库500 可以是服务器200的一部分。在一些实施例中,数据库500可以包括大容量存储、可移动存储、易失性读写存储器、只读存储器(ROM)或类似内容,或其任意组合。示例性大容量存储可能包括磁盘、光盘、固态驱动器等非暂时性存储介质(non-transitory storage medium)。可移动存储可能包括闪存驱动器、软盘、光盘、存储卡、zip磁盘、磁带等。典型的易失性读写内存可能包括随机存取存储器(RAM)。RAM可能包括动态RAM (DRAM)、双日期速率同步动态RAM(DDR SDRAM)、静态RAM(SRAM)、晶闸管RAM(T-RAM)和零电容RAM(Z-RAM)等。ROM可能包括掩码ROM(MROM)、可编程ROM(PROM)、可虚拟可编程ROM(PEROM)、电子可编程ROM(EEPROM)、光盘(CD-ROM)和数字多功能磁盘ROM等。在一些实施例中,数据库500可以在云平台上实现。仅仅作为例子,所述云平台可能包括私有云、公共云、混合云、社区云、分布式云、云间云等形式,或者同上述形式类似的形式,或这上述形式的任意组合。
如图1所示,用户110通过客户端100上的APP发送数据处理请求,所述数据处理请求通过网络400传输至服务器200;服务器200通过与计算设备300之间的通信连接将所述数据处理请求传输至计算设备300;计算设备300执行存储在计算设备300内的数据处理方法的指令,基于数据处理请求对目标窗口内的数据进行数据处理并输出。
图2示出了根据本说明书的实施例提供的一种计算设备300的硬件结构图。计算设备300可以执行本说明书描述的数据处理方法。所述数据处理方法将在后面的描述中详细介绍。计算设备300可以包括至少一个处理器320和至少一个存储介质330。在一些实施例中,计算设备300还可以包括通信模块350和内部通信总线310。
内部通信总线310可以连接不同的系统组件,包括存储介质330、处理器320以及通信模块350。
存储介质330可以包括数据存储装置。所述数据存储装置可以是非暂时性存储介质,也可以是暂时性存储介质。比如,所述数据存储装置可以包括磁盘332、只读存储介质(ROM)334或随机存取存储介质(RAM)336中的一种或多种。存储介质330还包括存储在所述数据存储装置中的至少一个指令集。所述指令是计算机程序代码,所述计算机程序代码可以包括执行本说明书提供的数据处理方法的程序、例程、对象、组件、数据结构、过程、模块等等。
至少一个处理器320可以同至少一个存储介质330通信连接。至少一个处理器320用以执行上述至少一个指令集。当计算设备300运行时,至少一个处理器320读取所述至少一个指令集,并且根据所述至少一个指令集的指示执行本说明书提供的数据处理方法。处理器320可以执行数据处理方法包含的所有步骤。处理器320可以是一个或多个处理器的形式,在一些实施例中,处理器320可以包括一个或多个硬件处理器,例如微控制器,微处理器,精简指令集计算机(RISC),专用集成电路(ASIC),特定于应用的指令集处理器(ASIP),中央处理单元(CPU),图形处理单元(GPU),物理处理单元(PPU),微控制器单元,数字信号处理器(DSP),现场可编程门阵列(FPGA),高级RISC机器(ARM),可编程逻辑器件(PLD),能够执行一个或多个功能的任何电路或处理器等,或其任何组合。仅仅为了说明问题,在本说明书中计算设备300中仅描述了一个处理器320。然而,应当注意,本说明书中计算设备300还可以包括多个处理器 320,因此,本说明书中披露的操作和/或方法步骤可以如本说明书所述的由一个处理器执行,也可以由多个处理器联合执行。例如,如果在本说明书中计算设备300的处理器 320执行步骤A和步骤B,则应该理解,步骤A和步骤B也可以由两个不同处理器320 联合或分开执行(例如,第一处理器执行步骤A,第二处理器执行步骤B,或者第一和第二处理器共同执行步骤A和B)。
通信模块350可以与处理器320连接,用于计算设备300同外界的数据通讯,比如服务器200和数据库500。通信模块350可以包括有线通信模块和无线通信模块中的至少一种。
图3示出了根据本说明书的实施例提供的一种数据处理方法P100的流程图。如前所述,计算设备300可以执行本说明书所述的数据处理方法P100。具体地,处理器320 可以读取存储在其本地存储介质中的指令集,然后根据所述指令集的规定,执行本说明书所述的数据处理方法P100。如图3所示,所述方法P100可以包括:
S120:接收数据处理请求。
所述数据处理请求可以由客户端100生成,并发送给服务器200。服务器200再将所述数据处理请求发送给计算设备300。所述数据处理请求可以包括对目标时间窗口内的目标数据进行数据处理的请求。所述目标时间窗口可以是当前时刻之前的目标时长的时间窗口。所述当前时刻可以是生成所述数据处理请求的时刻。所述目标时长可以是任意的时间长度,比如1天、2天、10天、30天,等等。所述目标数据可以是任意形式的数据,比如,用户110的行为轨迹数据、用户110的历史操作数据、用户110的历史登录数据、用户110的历史浏览数据,等等。所述目标数据可以是用户110在使用客户端 100的过程中,通过APP产生的任意形式的数据。所述数据处理可以是基于所述目标数据的任意形式的数据运算。所述数据处理可以是基于所述目标数据进行一定的运算以获取所述目标数据对应的目标指标的值。所述目标指标可以是任意形式的可以反映用户 110的某种行为的指标。在一些实施例中,所述目标指标可以是对所述目标时间窗口内的所述目标数据的累计指标,比如,累计登录次数、累计使用时长、累计支付金额,等等。在一些实施例中,所述数据处理请求中还可以包括所述目标指标对应的数据处理的运算方式,即所述目标指标对应的计算方法或计算函数。在一些实施例中,所述数据处理请求中可以包括所述目标指标。所述目标指标对应的所述数据处理的运算方式可以预先存储在计算设备300和/或服务器200中。具体地,计算设备300和/或服务器200中可以预先存储有每一种目标指标对应的计算方法或计算函数。计算设备300可以根据所述数据处理请求中的所述目标指标确定所述目标指标对应的数据处理的运算方式,从而基于所述数据处理的运算方式对所述目标数据进行所述数据处理。
需要说明的是,所述目标时间窗口部分位于离线数据库对应的时间窗口内,部分位于所述离线数据库对应的时间窗口外,且部分位于在线消息队列对应的时间窗口内,部分位于所述在线消息队列对应的时间窗口外。在一些实施例中,所述离线数据库可以存储在服务器200中。在一些实施例中,所述离线数据库可以存储在数据库500中。如前所述,所述离线数据库可以按照时间规则划分为多个分区,比如按照时间周期划分为多个分区。所述时间周期可以是年、月、周、天、时,等等。为了方便描述,我们将所述离线数据库的时间周期定义为第一时间周期。服务器200可以基于所述第一时间周期定时对所述APP产生的系统数据进行清洗、加工后存储在所述离线数据库中。为了节约服务器200资源,服务器200的调度频率为每个第一时间周期调度一次。在所述离线数据库中,每个分区中存储有其对应的第一时间周期的历史数据。所述离线数据库包括多个分区,所述多个分区中存储有多个第一时间周期的历史数据。所述离线数据库中存储的是多个完整的第一时间周期的历史数据。所述离线数据库中不包括当前时刻所在的第一时间周期对应的数据。比如,当所述第一时间周期为天时,即一般需要等到凌晨系统进入空闲阶段时,服务器200才会将所述APP在前一天产生的系统数据加工后存储至所述离线数据库中。所以离线数据库中的历史数据的时效性为T+1。
在一些实施例中,所述在线消息队列可以存储在服务器200中。如前所述,所述APP在线产生的实时数据通过消息的方式发送到指定的队列中,形成所述在线消息队列可供不同的消费者拉取消费。所述在线消息队列中只能存储一个时间周期内的实时数据,超过当前时间周期后,实时数据将被删除,在线消息队列中继续存储新的时间周期的数据。因此,在在线消息队列中只能看到当前时间周期中的数据。为了方便描述,我们将所述在线消息队列的时间周期定义为第二时间周期。
在一些实施例中,所述第一时间周期与所述第二时间周期可以是一致的,比如,所述第一时间周期与所述第二时间周期都是一天,一小时或一个月,等等。在一些实施例中,所述第一时间周期与所述第二时间周期是不一致的,比如,所述第二时间周期可以比所述第一时间周期长,例如,所述第一时间周期可以是一天,所述第二时间周期可以是两天、三天,甚至更长,等等。
为了方便描述,我们将举例说明所述数据处理请求。以所述数据处理请求是获取当前时刻之前的30天内的用户登录次数,所述第一时间周期为一天,第二时间周期为2 天为例进行说明。假设当前时刻为2021年7月10日10:00。此时,所述目标时间窗口可以是30天。所述目标时间窗口可以是2021年6月11日至2021年7月9日以及7月 10日当天。其中,2021年6月11日至2021年7月9日在所述离线数据库对应的时间窗口内,而2021年7月10日在所述离线数据库对应的时间窗口外。2021年6月11日至2021年7月9日的历史数据存储在所述离线数据库对应的时间窗口内。2021年7月 8日10:00至2021年7月10日在所述在线消息队列对应的时间窗口内,而2021年6 月11日至2021年7月8日10:00在所述在线消息队列对应的时间窗口外。2021年7 月8日10:00至2021年7月10日10:00的实时数据存储在所述在线消息队列中。随着所述APP的继续运行,2021年7月10日10:00之后的实时数据也存储在所述在线消息队列中。
为了短时间内快速获取准确、完整且时效性高的目标数据,所述方法P100可以通过流批协同的方式从所述离线数据库中获取一部分数据,同时从在线消息队列中获取一部分数据。具体地,如图3所示,所述方法P100还可以包括:
S130:基于所述离线数据库以及所述在线消息队列确定目标分割点。
所述目标分割点可以将所述目标时间窗口分为所述目标分割点前的第一时间窗口和所述目标分割点后的第二时间窗口。其中,所述第一时间窗口可以完全位于所述离线数据库对应的时间窗口内,所述第二时间窗口可以完全位于所述在线消息队列对应的时间窗口内。
图4示出了根据本说明书的实施例提供的一种获取目标分割点的方法流程图。图4所示的是步骤S130。如图4所示,步骤S130可以包括:
S132:获取所述离线数据库以及所述在线消息队列。
如前所述,计算设备300可以与服务器200和数据库500通信连接。在步骤S132 中,所述获取所述离线数据库以及所述在线消息队列可以是计算设备300通过所述通信连接访问所述离线数据库以及所述在线消息队列。所述离线数据库中不仅存储有所述历史数据,还可以存储有所述历史数据对应的时间。所述在线消息队列中不仅可以存储有所述实时数据,还可以存储有所述实时数据对用的时间。
S134:基于所述离线数据库对应的时间窗口以及所述目标时间窗口的交集,确定所述离线数据库对应的第一时间范围。
所述离线数据库对应的时间窗口可以是所述离线数据库中的历史数据所包含的时间范围。如前所述,在步骤S120中,计算设备300可以获取所述目标时间窗口。计算设备300可以基于所述离线数据库对应的时间窗口以及所述目标时间窗口的交集,确定所述第一时间范围。所述第一时间范围可以是所述离线数据库对应的时间窗口与所述目标时间窗口的交集。所述第一时间范围完全包含在所述离线数据库对应的时间窗口内。
还是以所述数据处理请求是获取当前时刻之前的30天内的用户登录次数,所述第一时间周期为一天,第二时间周期为2天为例进行说明。假设当前时刻为2021年7月 10日10:00。此时,所述第一时间范围可以是2021年6月11日至2021年7月9日。
S136:基于所述在线消息队列对应的时间窗口以及所述目标时间窗口的交集,确定所述在线消息队列对应的第二时间范围。
所述在线消息队列对应的时间窗口可以是所述在线消息队列中的实时数据所包含的时间范围。如前所述,在步骤S120中,计算设备300可以获取所述目标时间窗口。计算设备300可以基于所述在线消息队列对应的时间窗口以及所述目标时间窗口的交集,确定所述第二时间范围。所述第二时间范围可以是所述在线消息队列对应的时间窗口与所述目标时间窗口的交集。所述第二时间范围完全包含在所述在线消息队列对应的时间窗口内。
还是以所述数据处理请求是获取当前时刻之前的30天内的用户登录次数,所述第一时间周期为一天,第二时间周期为2天为例进行说明。假设当前时刻为2021年7月 10日10:00。此时,所述第二时间范围可以是2021年7月8日10:00至2021年7月 10日。
S138:基于所述第一时间范围和所述第二时间范围的交集,确定第三时间范围。
所述第三时间范围可以是所述第一时间范围与所述第二时间范围的交集。如前所述,在一些实施例中,所述第一时间周期可以与所述第二时间周期相同。此时,所述第三时间范围可以是一个时间。比如前述的例子中,当所述第一时间周期为一天,所述第二时间周期为2天时,所述第三时间范围可以是2021年7月8日10:00至2021年7月10 日。
S139:从所述第三时间范围中选择一个时间点作为所述目标分割点。
在一些实施例中,步骤S139可以是从所述第三时间范围中选择任意一个时间点作为所述目标分割点。比如,当所述第三时间范围是2021年7月8日10:00至2021年7 月10日00:00时,可以从2021年7月8日10:00至2021年7月10日00:00中任选一个时间点作为所述目标分割点,比如,2021年7月9日10:00,等等。
在一些实施例中,步骤S139可以是从所述第三时间范围中选择任意一个边界时间点作为所述目标分割点。所述边界时间点可以是所述第三时间范围的边界点。比如,当所述第三时间范围是2021年7月8日10:00至2021年7月10日00:00时,所述目标分割点可以是2021年7月8日10:00,也可以是2021年7月10日00:00。
在一些实施例中,步骤S139可以是从所述第三时间范围中选择所述离线数据库的分区边界时间点作为所述目标分割点。如前所述,所述离线数据库可以包括多个分区。所述分区边界时间点可以是所述多个分区中相邻分区的临界时间点。比如,当第一时间周期为一天时,以每一天的00:00作为相邻分区的临界时间点。当所述第三时间范围是2021年7月8日10:00至2021年7月10日00:00时,所述目标分割点可以是2021 年7月9日00:00,也可以是2021年7月10日00:00。
为了方便展示,以下的描述中我们将以所述目标分割点是2021年7月10日00:00为例进行描述。此时,所述第一时间窗口可以是2021年6月11日至2021年7月10日 00:00,第二时间窗口可以是2021年7月10日。
如图3所示,所述方法P100还可以包括:
S140:基于批任务处理逻辑,对所述离线数据库中所述第一时间窗口对应的第一数据进行所述数据处理,得到第一结果。
所述目标数据包括所述第一数据。所述第一数据可以是在所述离线数据库中所述第一时间窗口对应的历史数据。如前所述,所述离线数据库中可以包括按照第一时间周期划分的多个分区。所述第一数据包括基于所述离线数据库的第一时间周期划分的至少一个第一分区数据。以所述目标分割点是2021年7月10日00:00,所述第一时间窗口可以是2021年6月11日至2021年7月10日00:00为例,所述第一数据可以包括29个第一分区数据。所述29个第一分区数据分别对应的是2021年6月11日至2021年7月 9日的29天的历史数据。
具体地,步骤S140可以是:计算设备300从所述离线数据库中获取所述第一数据;以及基于所述批任务处理逻辑,对所述至少一个第一分区数据进行所述数据处理,得到至少一个第一分区结果。所述对所述至少一个第一分区数据进行所述数据处理可以是对所述至少一个第一分区数据中的每个第一分区数据分别进行所述数据处理。所述至少一个第一分区结果与所述至少一个第一分区数据一一对应。在一些实施例中,所述第一结果可以包括所述至少一个第一分区结果。所述第一结果中包括每个第一分区结果对应的时间。计算完毕后,所述批任务处理逻辑结束。
如图3所示,所述方法P100还可以包括:
S160:基于流任务处理逻辑,对所述在线消息队列中所述第二时间窗口对应的第二数据进行所述数据处理,得到第二结果。
所述目标数据包括所述第二数据。具体地,步骤S160可以包括:计算设备300从所述在线消息队列中获取所述第二数据;以及基于所述流任务处理逻辑,对所述第二数据进行所述数据处理,得到所述第二结果。需要说明的是,所述第二结果可以包括基于所述第二时间周期划分的多个第二分区结果。流任务处理逻辑启动后则持续运行,后续都会实时将每个第二时间周期中的实时数据对应的结果写入到其对应的第二分区结果中。在一些实施例中,可以对所述第二数据基于所述离线数据库的分区规则进行分区,即将所述第二数据基于所述第一时间周期进行分区,划分为至少一个第二分区数据。流任务处理逻辑在运行过程中,都会实时将每个第二分区数据对应的结果写入到其对应的第二分区结果中。比如,第一时间周期为一天,流任务处理逻辑会将每天的结果写入当天对应的第二分区结果中。
在一些实施例中,在步骤S140和步骤S160之前,所述方法P100还可以包括将所述数据处理请求分别翻译为基于离线数据库的批任务处理逻辑和基于在线消息队列的流任务处理逻辑。
如图3所示,所述方法P100还可以包括:
S180:输出所述第一结果以及所述第二结果。
在一些实施例中,计算设备300可以将所述第一结果和所述第二结果合并,得到目标结果并输出。在一些实施例中,将所述第一结果和所述第二结果合并可以是计算设备300将所述第一结果以及所述第二结果合并为列表的形式输出。比如,计算设备300可以将所述第一分区结果以及所述第二分区结果形成结果列表。所述结果列表中可以包括每个第一分区结果和每个第二分区结果对应的时间。所述目标结果可以是所述结果列表。为了便于描述,我们将举例说明结果列表。以目标时间窗口为30天,目标指标为累计登录次数为例。表1示出了根据本说明书的实施例提供的一种30天内的累计登录次数的结果列表的示意图,如下所示:
在一些实施例中,将所述第一结果和所述第二结果合并还可以是计算设备300根据需求对所述结果列表执行数据运算。比如,计算设备300可以获取2021年6月11日至 2021年7月10日对应的结果列表,并执行求和运算,以获取30天内的累计登录次数。
如前所述,所述流任务处理逻辑启动后可以持续运行。即计算设备300可以继续对7月10日之后的消息队列中的数据进行所述数据处理,并将第二结果存储在对应的分区中。计算设备300可以持续获取后续时间中的第二结果。因此,计算设备300可以通过数据查询从所述结果列表中获取任意时间窗口内的结果,并进行合并输出。
综上所述,本说明书提供的数据处理方法P100以及系统001,将实时计算的流任务处理逻辑与批任务处理逻辑相结合。当用户110需要获取目标时间窗口(N个第一时间周期)内的数据时,方法P100以及系统001可以使用批任务处理逻辑计算离线数据库中N-1个第一时间周期的历史数据,同时使用流任务处理逻辑实时计算在线消息队列中当前第一时间周期(第N个第一时间周期)的累计数据来补充目标时间窗口中的数据,并将两部分数据合并后产生N个第一时间周期的累计数据提供给用户110使用,既避免了离线数据清洗中缺少当前第一时间周期数据导致的数据时效性不足的问题,又克服了实时流任务处理逻辑中需要累计运行目标时间窗口长度的时间才能得到完整数据的问题。本说明书提供的方法P100以及系统001,建立了一个实时更新的对目标时间窗口的数据处理流程,通过将离线数据库中的历史数据以及在线消息队列中的在线实时数据相结合,在短时间(小于1个第一时间周期的时间)内得到目标时间窗口的完整数据结果,将数据累计处理时间从目标时间窗口的长度减少到小于1个第一时间周期,极大的减少了数据生产的周期,解决用户需要在线上运行目标时间窗口的长度后才能使用累计了目标时间窗口的数据的问题,缩短了数据生产周期,同时提高数据的完整性、准确性以及时效性,从而提高计算效率以及计算精度。本说明书提供的方法P100以及系统001 中,用户110只需要提供原始的累计逻辑,计算设备300自动翻译为批处理任务逻辑和流处理任务逻辑,通过建立目标分隔点将离线的批任务处理逻辑和实时的流任务处理逻辑能够无缝协作起来减少数据处理的时间。
本说明书另一方面提供一种非暂时性存储介质,存储有至少一组用来进行数据处理的可执行指令。当所述可执行指令被处理器执行时,所述可执行指令指导所述处理器实施本说明书所述的数据处理方法P100的步骤。在一些可能的实施方式中,本说明书的各个方面还可以实现为一种程序产品的形式,其包括程序代码。当所述程序产品在计算设备300上运行时,所述程序代码用于使计算设备300执行本说明书描述的数据处理方法P100的步骤。用于实现上述方法的程序产品可以采用便携式紧凑盘只读存储器 (CD-ROM)包括程序代码,并可以在计算设备300上运行。然而,本说明书的程序产品不限于此,在本说明书中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统使用或者与其结合使用。所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。可以以一种或多种程序设计语言的任意组合来编写用于执行本说明书操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在计算设备300上执行、部分地在计算设备300上执行、作为一个独立的软件包执行、部分在计算设备300上部分在远程计算设备上执行、或者完全在远程计算设备上执行。
上述对本说明书特定实施例进行了描述。其他实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者是可能有利的。
综上所述,在阅读本详细公开内容之后,本领域技术人员可以明白,前述详细公开内容可以仅以示例的方式呈现,并且可以不是限制性的。尽管这里没有明确说明,本领域技术人员可以理解本说明书需求囊括对实施例的各种合理改变,改进和修改。这些改变,改进和修改旨在由本说明书提出,并且在本说明书的示例性实施例的精神和范围内。
此外,本说明书中的某些术语已被用于描述本说明书的实施例。例如,“一个实施例”,“实施例”和/或“一些实施例”意味着结合该实施例描述的特定特征,结构或特性可以包括在本说明书的至少一个实施例中。因此,可以强调并且应当理解,在本说明书的各个部分中对“实施例”或“一个实施例”或“替代实施例”的两个或更多个引用不一定都指代相同的实施例。此外,特定特征,结构或特性可以在本说明书的一个或多个实施例中适当地组合。
应当理解,在本说明书的实施例的前述描述中,为了帮助理解一个特征,出于简化本说明书的目的,本说明书将各种特征组合在单个实施例、附图或其描述中。然而,这并不是说这些特征的组合是必须的,本领域技术人员在阅读本说明书的时候完全有可能将其中一部分设备标注出来作为单独的实施例来理解。也就是说,本说明书中的实施例也可以理解为多个次级实施例的整合。而每个次级实施例的内容在于少于单个前述公开实施例的所有特征的时候也是成立的。
本文引用的每个专利,专利申请,专利申请的出版物和其他材料,例如文章,书籍,说明书,出版物,文件,物品等,可以通过引用结合于此。用于所有目的的全部内容,除了与其相关的任何起诉文件历史,可能与本文件不一致或相冲突的任何相同的,或者任何可能对权利要求的最宽范围具有限制性影响的任何相同的起诉文件历史。现在或以后与本文件相关联。举例来说,如果在与任何所包含的材料相关联的术语的描述、定义和/或使用与本文档相关的术语、描述、定义和/或之间存在任何不一致或冲突时,使用本文件中的术语为准。
最后,应理解,本文公开的申请的实施方案是对本说明书的实施方案的原理的说明。其他修改后的实施例也在本说明书的范围内。因此,本说明书披露的实施例仅仅作为示例而非限制。本领域技术人员可以根据本说明书中的实施例采取替代配置来实现本说明书中的申请。因此,本说明书的实施例不限于申请中被精确地描述过的实施例。
Claims (10)
1.一种数据处理方法,包括:
接收数据处理请求,所述数据处理请求包括对目标时间窗口内的目标数据进行数据处理的请求;
基于离线数据库以及在线消息队列确定目标分割点,所述目标分割点将所述目标时间窗口分为所述目标分割点前的第一时间窗口和所述目标分割点后的第二时间窗口;
基于批任务处理逻辑,对所述离线数据库中所述第一时间窗口对应的第一数据进行所述数据处理,得到第一结果,所述目标数据包括所述第一数据;以及
基于流任务处理逻辑,对所述在线消息队列中所述第二时间窗口对应的第二数据进行所述数据处理,得到第二结果,所述目标数据包括所述第二数据。
2.如权利要求1所述的数据处理方法,其中,所述目标时间窗口部分位于所述离线数据库对应的时间窗口内,部分位于所述在线消息队列对应的时间窗口内,所述第一时间窗口完全位于所述离线数据库对应的时间窗口内,所述第二时间窗口完全位于所述在线消息队列对应的时间窗口内。
3.如权利要求2所述的数据处理方法,其中,所述基于离线数据库以及在线消息队列确定目标分割点,包括:
获取所述离线数据库以及所述在线消息队列;
基于所述离线数据库对应的时间窗口以及所述目标时间窗口的交集,确定所述离线数据库对应的第一时间范围;
基于所述在线消息队列对应的时间窗口以及所述目标时间窗口的交集,确定所述在线消息队列对应的第二时间范围;
基于所述第一时间范围和所述第二时间范围的交集,确定第三时间范围;以及
从所述第三时间范围中选择一个时间点作为所述目标分割点。
4.如权利要求3所述的数据处理方法,其中,所述从所述第三时间范围中选择一个时间点作为所述目标分割点,包括以下情况中的一种:
从所述第三时间范围中选择任意一个时间点作为所述目标分割点;
从所述第三时间范围中选择任意一个边界时间点作为所述目标分割点;以及
从所述第三时间范围中选择所述离线数据库的分区边界时间点作为所述目标分割点,所述离线数据库包括按照时间规则划分的多个分区,所述分区边界时间点包括所述多个分区中相邻分区的临界时间点。
5.如权利要求3所述的数据处理方法,其中,所述基于批任务处理逻辑,对所述离线数据库中所述第一时间窗口对应的第一数据进行所述数据处理,得到第一结果,包括:
从所述离线数据库中获取所述第一数据,所述第一数据包括基于所述离线数据库的分区规则划分的至少一个第一分区数据,所述分区规则包括按照时间周期分区;以及
基于所述批任务处理逻辑,对所述至少一个第一分区数据进行所述数据处理,得到至少一个第一分区结果,所述第一结果包括所述至少一个第一分区结果。
6.如权利要求3所述的数据处理方法,其中,所述基于流任务处理逻辑,对所述在线消息队列中所述第二时间窗口对应的第二数据进行所述数据处理,得到第二结果,包括:
从所述在线消息队列中获取所述第二数据;以及
基于所述流任务处理逻辑,对所述第二数据进行所述数据处理,得到所述第二结果。
7.如权利要求1所述的数据处理方法,其中,还包括:
输出所述第一结果以及所述第二结果。
8.如权利要求7所述的数据处理方法,其中,所述输出所述第一结果和所述第二结果,包括:
将所述第一结果和所述第二结果合并,得到目标结果并输出。
9.一种数据处理系统,包括:
至少一个存储介质,存储有至少一个指令集,用于数据处理;以及
至少一个处理器,同所述至少一个存储介质通信连接,
其中,当所述数据处理系统运行时,所述至少一个处理器读取所述至少一个指令集,并且根据所述至少一个指令集的指示执行权利要求1-8中任一项所述的数据处理方法。
10.一种非暂时性存储介质,存储有至少一个指令集用于数据处理,当所述至少一个指令集被处理器执行时,所述处理器根据所述至少一个指令集实施权利要求1-8中任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111370053.9A CN114116162A (zh) | 2021-11-18 | 2021-11-18 | 数据处理方法、系统及非暂时性存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111370053.9A CN114116162A (zh) | 2021-11-18 | 2021-11-18 | 数据处理方法、系统及非暂时性存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114116162A true CN114116162A (zh) | 2022-03-01 |
Family
ID=80396623
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111370053.9A Pending CN114116162A (zh) | 2021-11-18 | 2021-11-18 | 数据处理方法、系统及非暂时性存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114116162A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114996261A (zh) * | 2022-08-05 | 2022-09-02 | 深圳市深蓝信息科技开发有限公司 | 基于ais数据的去重方法、装置、终端设备及存储介质 |
CN117555905A (zh) * | 2024-01-12 | 2024-02-13 | 腾讯科技(深圳)有限公司 | 一种业务处理方法、装置、设备、存储介质及程序产品 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110258630A1 (en) * | 2010-04-20 | 2011-10-20 | Salesforce.Com, Inc. | Methods and systems for batch processing in an on-demand service environment |
US20190130004A1 (en) * | 2017-10-27 | 2019-05-02 | Streamsimple, Inc. | Streaming Microservices for Stream Processing Applications |
US20200104165A1 (en) * | 2018-09-28 | 2020-04-02 | Atlassian Pty Ltd | Systems and methods for scheduling tasks |
CN112418655A (zh) * | 2020-11-19 | 2021-02-26 | 中国电子科技集团公司第二十九研究所 | 一种信息体系工程的任务流程时效显性化方法 |
CN112463868A (zh) * | 2020-12-04 | 2021-03-09 | 车智互联(北京)科技有限公司 | 数据处理方法、数据处理系统及计算设备 |
CN113190558A (zh) * | 2021-05-10 | 2021-07-30 | 北京京东振世信息技术有限公司 | 一种数据加工方法和系统 |
CN113407623A (zh) * | 2021-05-31 | 2021-09-17 | 北京达佳互联信息技术有限公司 | 数据的处理方法、装置及服务器 |
-
2021
- 2021-11-18 CN CN202111370053.9A patent/CN114116162A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110258630A1 (en) * | 2010-04-20 | 2011-10-20 | Salesforce.Com, Inc. | Methods and systems for batch processing in an on-demand service environment |
US20190130004A1 (en) * | 2017-10-27 | 2019-05-02 | Streamsimple, Inc. | Streaming Microservices for Stream Processing Applications |
US20200104165A1 (en) * | 2018-09-28 | 2020-04-02 | Atlassian Pty Ltd | Systems and methods for scheduling tasks |
CN112418655A (zh) * | 2020-11-19 | 2021-02-26 | 中国电子科技集团公司第二十九研究所 | 一种信息体系工程的任务流程时效显性化方法 |
CN112463868A (zh) * | 2020-12-04 | 2021-03-09 | 车智互联(北京)科技有限公司 | 数据处理方法、数据处理系统及计算设备 |
CN113190558A (zh) * | 2021-05-10 | 2021-07-30 | 北京京东振世信息技术有限公司 | 一种数据加工方法和系统 |
CN113407623A (zh) * | 2021-05-31 | 2021-09-17 | 北京达佳互联信息技术有限公司 | 数据的处理方法、装置及服务器 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114996261A (zh) * | 2022-08-05 | 2022-09-02 | 深圳市深蓝信息科技开发有限公司 | 基于ais数据的去重方法、装置、终端设备及存储介质 |
CN114996261B (zh) * | 2022-08-05 | 2022-10-28 | 深圳市深蓝信息科技开发有限公司 | 基于ais数据的去重方法、装置、终端设备及存储介质 |
CN117555905A (zh) * | 2024-01-12 | 2024-02-13 | 腾讯科技(深圳)有限公司 | 一种业务处理方法、装置、设备、存储介质及程序产品 |
CN117555905B (zh) * | 2024-01-12 | 2024-04-02 | 腾讯科技(深圳)有限公司 | 一种业务处理方法、装置、设备、存储介质及程序产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200387489A1 (en) | Systems and methods for data storage and querying | |
US11263560B2 (en) | Systems and methods for determining a reference direction related to a vehicle | |
CN114116162A (zh) | 数据处理方法、系统及非暂时性存储介质 | |
JP6869270B2 (ja) | 組み合わせによって生じるサービス要請者を決定するためのシステム及び方法 | |
US11792293B2 (en) | Systems and methods for data processing | |
AU2016397268A1 (en) | Systems and methods for determining a path of a moving device | |
AU2016400119A1 (en) | Methods and systems for carpooling | |
US20210027235A1 (en) | Systems and methods for vehicle scheduling | |
US20210029490A1 (en) | Systems and methods for providing a location-based service | |
US20210088350A1 (en) | Systems and methods for determining link topology relationships | |
CN106648839B (zh) | 数据处理的方法和装置 | |
CN110674400B (zh) | 排序方法、装置、电子设备及计算机可读存储介质 | |
WO2020123062A1 (en) | Hierarchical generation of booking probability | |
CN110727700A (zh) | 多源流式数据整合成事务型流数据的方法及系统 | |
US11303713B2 (en) | Systems and methods for on-demand services | |
CN111311305A (zh) | 基于用户轨迹解析用户公共流量带的方法及系统 | |
CN115729824A (zh) | 脚本测试方法、装置、设备及存储介质 | |
US20210026981A1 (en) | Methods and apparatuses for processing data requests and data protection | |
CN114201086B (zh) | 信息的展示方法及装置 | |
CN112860762A (zh) | 用于检测时间段重叠的方法和装置 | |
CN111860926B (zh) | 用于预测服务需求信息的系统和方法 | |
US20200356564A1 (en) | Candidate data record prioritization for match processing | |
CN110555537A (zh) | 多因素多时间点相关的预测 | |
CN114490852A (zh) | 导航数据回库的方法、装置、设备、存储介质及程序产品 | |
CN112685675A (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 |