WO2019219005A1 - 一种数据处理系统及方法 - Google Patents

一种数据处理系统及方法 Download PDF

Info

Publication number
WO2019219005A1
WO2019219005A1 PCT/CN2019/086847 CN2019086847W WO2019219005A1 WO 2019219005 A1 WO2019219005 A1 WO 2019219005A1 CN 2019086847 W CN2019086847 W CN 2019086847W WO 2019219005 A1 WO2019219005 A1 WO 2019219005A1
Authority
WO
WIPO (PCT)
Prior art keywords
task set
queue
task
result
service module
Prior art date
Application number
PCT/CN2019/086847
Other languages
English (en)
French (fr)
Inventor
陈国栋
管国辰
邓长春
Original Assignee
杭州海康威视数字技术股份有限公司
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 杭州海康威视数字技术股份有限公司 filed Critical 杭州海康威视数字技术股份有限公司
Publication of WO2019219005A1 publication Critical patent/WO2019219005A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Definitions

  • the purpose of the embodiments of the present application is to provide a data processing system and method to improve the concurrency of data interaction analysis processing.
  • the specific technical solutions are as follows:
  • the embodiment of the present application provides a data processing method, which is applied to a data processing system, where the data processing system includes: multiple interaction analysis service modules, multiple scheduling service modules, and multiple computing modules; Methods include:
  • the plurality of calculation modules calculate the received task set, and obtain a calculation result; and send the obtained calculation result to the main scheduling service module;
  • the main scheduling service module encapsulates the received calculation result to obtain a result set, and caches the obtained result set into a result set queue;
  • the plurality of interaction analysis service modules obtain a result set from the result set queue; and send the obtained result set to the corresponding client.
  • the plurality of interaction analysis service modules acquire the attribute information of the processing logic included in the received data request, and cache the obtained task set and the acquired attribute information to the task set queue.
  • the master scheduling service module obtains a task set from the task set queue, including:
  • the method further includes:
  • the plurality of interaction analysis service modules cache the obtained task set to the first preset duration of the task set queue, and detect that the result set corresponding to the obtained task set does not exist in the result set queue, The resulting set of tasks is marked as terminated.
  • the data processing system further includes: deleting the module; the method further includes:
  • the deleting module detects whether there is a second result set in the result set queue that has been accessed to the current time for the third preset duration; if so, deletes the second result set.
  • the multiple interaction analysis service modules process the processing logic included in the received data request to obtain a task set, including:
  • the plurality of interaction analysis service modules detect whether there is a result set corresponding to the processing logic included in the received data request in the result set queue; if not, perform processing on the processing logic included in the received data request to obtain a task set .
  • the plurality of interaction analysis service modules are configured to receive a data request sent by each client, process processing logic included in the received data request, obtain a task set, and cache the obtained task set to the task set queue;
  • the main scheduling service module is configured to encapsulate the received calculation result, obtain a result set, and cache the obtained result set into a result set queue;
  • the plurality of interaction analysis service modules are configured to obtain a result set from the result set queue; and send the obtained result set to a corresponding client.
  • the multiple interaction analysis service modules are specifically configured to:
  • the primary scheduling service module is specifically configured to:
  • the deleting module is configured to detect whether there is a first result set in the queue of the result set that reaches a second preset duration; if yes, delete the first result set; or
  • the deleting module is configured to detect, in the result set queue, whether there is a second result set whose last time accessed to the current time reaches a third preset duration; if yes, delete the second result set.
  • an embodiment of the present application further provides a machine readable storage medium, where the computer readable storage medium stores a computer program, and when the computer program is executed by the processor, implements any of the foregoing data processing method steps. .
  • FIG. 2 is a schematic diagram of a request processing flow of an interaction analysis service module according to an embodiment of the present application
  • the data processing system may rely on distributed cooperative component technologies such as ZooKeeper to implement the functions of the election of the main scheduling service module and the switching of the active and standby scheduling service modules, and the load balancing function of the interaction analysis service module.
  • a data request can also be referred to as a data processing request.
  • the calculation module can be located in a single process. Multiple computing modules are part of a distributed computing framework, such as Spark.
  • the computing module mainly completes the computing tasks distributed by the scheduling service module.
  • the interaction analysis service module and the scheduling service module and the calculation module may be located on the same node or on different nodes.
  • the plurality of interaction analysis service modules 101-103 process the processing logic included in the received data request to obtain a task set.
  • Step 202 The interaction analysis service module performs a plan generation process on the processing logic included in the received data request.
  • Step 203 The interaction analysis service module performs resource estimation processing on the processing logic included in the received data request.
  • the processing result is one or more tasks.
  • the interaction analysis service module serializes and encapsulates one or more tasks to obtain a task set.
  • the interaction analysis service module detects that the result set corresponding to the task set does not exist in the result set queue, the task set is marked as terminated to notify the main
  • the scheduling service module stops scheduling the task set and saves computing resources.
  • the process of the scheduling service module acquiring the task set from the task set queue and sending it to the computing module is the scheduling of one task set.
  • the primary scheduling service module marks the task set as scheduled after sending a task set to the computing module.
  • the main scheduling service module traverses each task set in the task set queue, acquires a task set that is not marked as scheduled, and sends the obtained task set to the computing module.
  • the master dispatch service module marks the retrieved task set as scheduled.
  • the multiple interaction analysis service module caches the obtained task set to the first preset duration of the task set queue, it detects that the obtained task set does not exist in the result set queue.
  • the result set marks the resulting task set as terminated.
  • the main scheduling service module traverses each task set in the task set queue, acquires a task set that is not marked as terminated, and sends the obtained task set to the computing module. After the master scheduling service module does not obtain the result set corresponding to the acquired task set, and detects that the acquired task set is marked as terminated, the scheduling of the acquired task set is stopped, and the computing module stops the acquisition. Task set calculation.
  • the main scheduling service module may adjust the manner of obtaining the task set from the task set queue according to actual needs, and the task set scheduling policy is pluggable, that is, the manner in which the three main scheduling service modules obtain the task set. Can be combined freely.
  • the main scheduling service module may obtain the task set from the task set queue according to the priority, and may also obtain the task set according to the mark of the task set, for example, acquiring the task set that is not marked as scheduled, and obtaining the unmarked termination.
  • the master scheduling service module acquires the task set if it determines that the computing resource required by the task set does not exceed the currently remaining computing resources in the plurality of computing modules. After that, the acquired task set is sent to multiple computing modules.
  • the master scheduling service module sends the acquired task set to multiple computing modules, the complete task set may be sent to one computing module for calculation, or the task set may be split into multiple copies and sent to multiple computing modules. Calculation.
  • the embodiments of the present application are not limited.
  • the end of the traversal can be understood as a task set queue that is both marked as terminated and/or scheduled.
  • step 303 the primary scheduling service module detects whether the task set is marked as scheduled. If not marked as scheduled, step 304 is performed. If it is marked as scheduled, then step 301 is continued to traverse each task set in the task set queue until the traversal ends.
  • step 303 is performed before step 302, in step 303, the master scheduling service module traverses to a task set, detects that the task set is not marked as scheduled, and performs step 302. In step 302, the main scheduling service module detects that the task set is not marked as terminated, and performs step 304.
  • the plurality of calculation modules 301-305 calculate the received task set to obtain a calculation result, and send the obtained calculation result to the main scheduling service module.
  • the plurality of computing modules 301-305 calculate the received task set, that is, the plurality of computing modules 301-305 process the tasks included in the received task set.
  • the main scheduling service module encapsulates the received calculation result, obtains a result set, and caches the obtained result set into a result set queue.
  • the plurality of interaction analysis service modules 101-103 obtain a result set from the result set queue; and send the obtained result set to the corresponding client.
  • the foregoing data processing system may further include a deletion module.
  • the deletion module detects whether there is a first result set in the queue of the result set that reaches the second preset duration. If present, the delete module deletes the first result set.
  • the interaction analysis service module detects whether a result set corresponding to the processing logic included in the data request exists in the result set queue. If not, the interaction analysis service module processes the processing logic included in the data request to obtain a task set. If yes, the interaction analysis service module directly obtains a result set corresponding to the processing logic included in the data request from the result set queue, and sends the obtained result set to the corresponding client.
  • the interaction analysis service module may generate an identifier capable of uniquely indicating the processing logic included in the data request after receiving the data request. .
  • the identification of the processing logic can be generated by calculations such as the MD5 algorithm.
  • the task set queue caches the correspondence between the identifier of the processing logic and the task set, and the result set queue caches the correspondence between the identifier of the processing logic and the result set.
  • the interaction analysis service module and the scheduling service module may be located in the same process, that is, the interaction analysis service module and the scheduling service module may be run in the same process, which are two modules in the same process.
  • the relationship between the interaction analysis service modules is peer-to-peer, that is, multiple interaction analysis service modules can simultaneously receive and process data requests sent by the client.
  • the scheduling service module is a master-slave structure. Only one primary scheduling service module provides services, and the other is an alternate scheduling service module. After the primary scheduling service module is hanged, a primary scheduling service module is elected from the standby scheduling service module. This will avoid the problem of data out of sync.
  • the data processing system may rely on distributed cooperative component technologies such as ZooKeeper to implement the functions of the election of the main scheduling service module and the switching of the active and standby scheduling service modules, and the load balancing function of the interaction analysis service module.
  • distributed cooperative component technologies such as ZooKeeper to implement the functions of the election of the main scheduling service module and the switching of the active and standby scheduling service modules, and the load balancing function of the interaction analysis service module.
  • the calculation module can be located in a single process. Multiple computing modules are part of a distributed computing framework, such as Spark.
  • the computing module mainly completes the computing tasks distributed by the scheduling service module.
  • the interaction analysis service module and the scheduling service module and the calculation module may be located on the same node or on different nodes.
  • the data processing system includes a task set queue and a result set queue. Both the task set queue and the result set queue are distributed cache queues that can be implemented by distributed caching techniques to use the full memory resources of the data processing system.
  • the plurality of interaction analysis service modules process the processing logic included in the received number to obtain the task set, and may include: performing SQL analysis and optimization, plan generation, and resource estimation on the processing logic included in the received data request. Processing, obtaining the processing result; serializing and encapsulating the obtained processing result to obtain a task set. Refer to the request processing flow of the interactive analysis service module shown in FIG. 2.
  • the plurality of interaction analysis service modules cache the obtained task set to the task set queue, and may include: acquiring attribute information of processing logic included in the received data request, and correspondingly obtaining the obtained task set with the acquired attribute information. Cache to the task set queue.
  • Step 402 The main scheduling service module of the multiple scheduling service modules acquires the task set from the task set queue; and sends the obtained task set to multiple computing modules.
  • the task set queue caches the correspondence between the task set and the attribute information, and the attribute information includes the priority.
  • the main scheduling service module obtains the task set from the task set queue, and may: traverse and acquire each task set in the task set queue according to the order of priority from high to low.
  • the main scheduling service module traverses each task set in the task set queue according to the order of priority from high to low, and determines whether the computing resources required by the task set exceed the current remaining in the multiple computing modules.
  • the computing resource includes: the main scheduling service module traverses each task set in the task set queue according to the order of priority from high to low, and each time traversing to a task set, determining whether the computing resources required by the task set exceed the The computing resources currently remaining in the plurality of computing modules.
  • the master scheduling service module obtaining the task set from the task set queue may include: traversing each task set in the task set queue to obtain a task set that is not marked as scheduled.
  • the primary scheduling service module After the primary scheduling service module obtains a set of tasks that are not marked as scheduled, the primary scheduling service module marks the acquired set of tasks as scheduled.
  • the master scheduling service module obtaining the task set from the task set queue may include: traversing each task set in the task set queue to obtain a task set that is not marked as terminated.
  • the plurality of interaction analysis service modules caches the obtained task set to the first preset duration of the task set queue, and detects that the result set corresponding to the obtained task set does not exist in the result set queue, the obtained result set is obtained.
  • the task set is marked as terminated.
  • Step 405 The multiple interaction analysis service modules obtain the result set from the result set queue; and send the obtained result set to the corresponding client.

Abstract

本申请实施例提供了一种数据处理系统及方法,数据处理系统包括:交互分析服务模块、调度服务模块和计算模块;交互分析服务模块接收各个客户端发送的数据请求,对接收的数据请求包括的处理逻辑进行处理,得到任务集,将得到的任务集缓存至任务集队列;主调度服务模块从任务集队列中获取任务集,将获取的任务集发送至计算模块;计算模块对接收的任务集进行计算,得到计算结果,将得到的计算结果发送给主调度服务模块;主调度服务模块对接收的计算结果进行封装,得到结果集,将得到的结果集缓存至结果集队列;交互分析服务模块从结果集队列中获取结果集,将获取的结果集发送给对应的客户端。应用本申请实施例,能够提高数据交互分析处理的并发性。

Description

一种数据处理系统及方法
本申请要求于2018年5月16日提交中国专利局、申请号为201810470200.1发明名称为“一种数据处理系统及方法”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及大数据处理技术领域,特别是涉及一种数据处理系统及方法。
背景技术
传统数据处理系统采用分布式架构,并且,传统数据处理系统屏蔽掉后端复杂的数据处理实现和千差万别的接口,为用户提供统一标准SQL(Structured Query Language,结构化查询语言)接口。用户通过标准SQL接口来操作数据处理系统。这给用户带来了良好的用户体验。
在大数据处理领域,分布式架构诸如批处理系统MapReduce、内存计算引擎Spark、分布式数据库Hbase、以及流式处理框架Storm等都有着自己的编程模型。基于此,分布式架构的使用,对于用户来说,学习成本高,且业务无法平滑迁移。因而,近年来开始构建与传统数据处理系统类似的交互式数据处理系统。诸如SQL On Hadoop系统中的Hive、Impala和Phoenix,以及Spark生态的Spark SQL等架构就是该类数据处理系统。在交互式数据处理系统中,数据以表的形式存在。交互式数据处理系统提供标准的SQL接口,能够达到高并发、低延迟的线上数据分析效果。
然而,上述交互式数据处理系统在实际应用场景中效果不够理想,其中并发支持度是瓶颈之一。原因是当前交互式数据处理系统的SQL解析、分析、优化、计划生成及资源评估等阶段的交互分析服务都在单个节点上进行,这制约了高并发特性。因此需要一种新型数据处理系统解决该瓶颈,实现高并发的交互分析处理需求。
发明内容
本申请实施例的目的在于提供一种数据处理系统及方法,以提高数据交互分析处理的并发性。具体技术方案如下:
为实现上述目的,本申请实施例提供了一种数据处理方法,应用于数据处理系统,所述数据处理系统包括:多个交互分析服务模块、多个调度服务模块和多个计算模块;所述方法包括:
所述多个交互分析服务模块接收各个客户端发送的数据请求;对接收的数据请求包括的处理逻辑进行处理,得到任务集;将得到的任务集缓存至任务集队列;
所述多个调度服务模块中的主调度服务模块从所述任务集队列中获取任务集;将获取的任务集发送至所述多个计算模块;
所述多个计算模块对接收的任务集进行计算,得到计算结果;将得到的计算结果发送给所述主调度服务模块;
所述主调度服务模块对接收的计算结果进行封装,得到结果集;将得到的结果集缓存至结果集队列;
所述多个交互分析服务模块从所述结果集队列中获取结果集;将获取的结果集发送给对应的客户端。
可选的,所述多个交互分析服务模块对接收的数据请求包括的处理逻辑进行处理,得到任务集,包括:
所述多个交互分析服务模块对接收的数据请求包括的处理逻辑进行SQL解析与优化、计划生成和资源预估处理,得到处理结果;对得到的处理结果进行序列化和封装,得到任务集。
可选的,所述多个交互分析服务模块将得到的任务集缓存至任务集队列,包括:
所述多个交互分析服务模块获取接收的数据请求所包括的处理逻辑的属性信息,将得到的任务集与获取的属性信息对应的缓存至任务集队列。
可选的,所述属性信息包括优先级;
所述主调度服务模块从所述任务集队列中获取任务集,包括:
所述主调度服务模块按照优先级从高到低的顺序,遍历并获取所述任务 集队列中的各个任务集。
可选的,所述主调度服务模块按照优先级从高到低的顺序,遍历并获取所述任务集队列中的各个任务集,包括:
所述主调度服务模块按照优先级从高到低的顺序,遍历所述任务集队列中的各个任务集,并判断任务集所需的计算资源是否超过所述多个计算模块中当前剩余的计算资源;若否,则从所述任务集队列中获取该任务集;若是,则将该任务集缓存至所述任务集队列中与该任务集的优先级相同的所有任务集之后。
可选的,所述主调度服务模块从所述任务集队列中获取任务集,包括:
所述主调度服务模块遍历所述任务集队列中的各个任务集,获取未被标记为已调度的任务集;
在所述主调度服务模块获取未被标记为已调度的任务集之后,还包括:
所述主调度服务模块将获取的任务集标记为已调度。
可选的,所述主调度服务模块从所述任务集队列中获取任务集,包括:
所述主调度服务模块遍历所述任务集队列中的各个任务集,获取未被标记为终止的任务集;
所述方法还包括:
所述多个交互分析服务模块若在将得到的任务集缓存至任务集队列的第一预设时长后,检测到所述结果集队列中不存在得到的任务集所对应的结果集,则将得到的任务集标记为终止。
可选的,所述数据处理系统还包括:删除模块;所述方法还包括:
所述删除模块检测所述结果集队列中是否存在缓存时长达到第二预设时长的第一结果集;若存在,删除所述第一结果集;或者,
所述删除模块检测所述结果集队列中是否存在最后一次被访问至当前时刻的时长达到第三预设时长的第二结果集;若存在,删除所述第二结果集。
可选的,所述多个交互分析服务模块对接收的数据请求包括的处理逻辑 进行处理,得到任务集,包括:
所述多个交互分析服务模块检测结果集队列中是否存在接收的数据请求所包括的处理逻辑对应的结果集;若不存在,则对接收的数据请求包括的处理逻辑进行数据处理,得到任务集。
可选的,所述方法还包括:
所述多个交互分析服务模块若确定所述结果集队列中存在接收的数据请求所包括的处理逻辑对应的结果集,则从所述结果集队列中获取接收的数据请求所包括的处理逻辑对应的结果集;将获取的结果集发送给对应的客户端。
可选的,所述交互分析服务模和所述调度服务模块位于同一进程中。
为实现上述目的,本申请实施例还提供了一种数据处理系统,所述数据处理系统包括:多个交互分析服务模块、多个调度服务模块和多个计算模块;
所述多个交互分析服务模块,用于接收各个客户端发送的数据请求;对接收的数据请求包括的处理逻辑进行处理,得到任务集;将得到的任务集缓存至任务集队列;
所述多个调度服务模块中的主调度服务模块,用于从所述任务集队列中获取任务集;将获取的任务集发送至所述多个计算模块;
所述多个计算模块,用于对接收的任务集进行计算,得到计算结果;将得到的计算结果发送给所述主调度服务模块;
所述主调度服务模块,用于接收的计算结果进行封装,得到结果集;将得到的结果集缓存至结果集队列;
所述多个交互分析服务模块,用于从所述结果集队列中获取结果集;将获取的结果集发送给对应的客户端。
可选的,所述多个交互分析服务模块具体用于:
对接收的数据请求包括的处理逻辑进行SQL解析与优化、计划生成和资源预估处理,得到处理结果;对得到的处理结果进行序列化和封装,得到任务集。
可选的,所述多个交互分析服务模块具体用于:获取接收的数据请求所包括的处理逻辑的属性信息,将得到的任务集与获取的属性信息对应的缓存至任务集队列。
可选的,所述属性信息包括优先级;
所述主调度服务模块具体用于:按照优先级从高到低的顺序,遍历并获取所述任务集队列中的各个任务集。
可选的,所述主调度服务模块具体用于:
按照优先级从高到低的顺序,遍历所述任务集队列中的各个任务集,并判断任务集所需的计算资源是否超过所述多个计算模块中当前剩余的计算资源;若否,则从所述任务集队列中获取该任务集;若是,则将该任务集缓存至所述任务集队列中与该任务集的优先级相同的所有任务集之后。
可选的,所述主调度服务模块具体用于:遍历所述任务集队列中的各个任务集,获取未被标记为已调度的任务集;
所述主调度服务模块,还用于将获取的任务集标记为已调度。
可选的,所述主调度服务模块具体用于:遍历所述任务集队列中的各个任务集,获取未被标记为终止的任务集;
所述多个交互分析服务模块,还用于若在将得到的任务集缓存至任务集队列的第一预设时长后,检测到所述结果集队列中不存在得到的任务集所对应的结果集,则将得到的任务集标记为终止。
可选的,所述数据处理系统还包括:删除模块;
所述删除模块,用于检测所述结果集队列中是否存在缓存时长达到第二预设时长的第一结果集;若存在,删除所述第一结果集;或者,
所述删除模块,用于检测所述结果集队列中是否存在最后一次被访问至当前时刻的时长达到第三预设时长的第二结果集;若存在,删除所述第二结果集。
可选的,所述多个交互分析服务模块具体用于:
检测结果集队列中是否存在接收的数据请求所包括的处理逻辑对应的结果集;若不存在,则对接收的数据请求包括的处理逻辑进行数据处理,得到任务集。
可选的,所述多个交互分析服务模块,还用于若确定所述结果集队列中存在接收的数据请求所包括的处理逻辑对应的结果集,则从所述结果集队列中获取接收的数据请求所包括的处理逻辑对应的结果集;将获取的结果集发送给对应的客户端。
可选的,所述交互分析服务模和所述调度服务模块位于同一进程中。
为实现上述目的,本申请实施例还提供了一种机器可读存储介质,所述机器可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一数据处理方法步骤。
本申请实施例中,在数据处理系统中包括了任务集队列和结果集队列,交互分析服务模块将任务集缓存至任务集队列,调度服务模块从任务集队列中获取任务集。另外,调度服务模块将结果集缓存至结果集队列,交互分析服务模块从结果集队列中获取结果集,并将结果集发送给客户端。可见,通过任务集队列和结果集队列,实现了交互分析服务模块和调度服务模块的解耦,数据交互分析处理可以在多个节点上进行,提高了数据交互分析处理的并发性。当然,实施本申请的任一产品或方法必不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的数据处理系统的一种结构示意图;
图2为本申请实施例提供的交互分析服务模块的请求处理流程的一种示意图;
图3为本申请实施例提供的调度服务模块的任务调度处理流程的一种示 意图;
图4为本申请实施例提供的数据处理方法的一种流程示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,数据处理系统提供的调度服务和交互分析服务之间为耦合关系。具体的,调度服务需要调度交互分析服务生成的任务集。基于此,SQL解析、分析、优化、计划生成及资源评估等阶段的交互分析服务都在单个节点上,这制约了高并发特性。为解决上述问题,本申请实施例提供了一种数据处理系统。
该数据处理系统包括:多个交互分析服务模块、多个调度服务模块和多个计算模块。交互分析服务模块将任务集缓存至任务集队列,调度服务模块从任务集队列中获取任务集,并发送给计算模块进行计算,得到结果集。另外,调度服务模块将结果集缓存至结果集队列,交互分析服务模块从结果集队列中获取结果集,并将结果集发送给客户端。
可见,本申请实施例中,通过任务集队列和结果集队列,实现了交互分析服务模块和调度服务模块的解耦,多个交互分析服务模块可部署在多个节点上同时提供交互分析服务,即多个交互分析服务模块可同时提供数据交互分析处理,进而数据交互分析处理可以在多个节点上进行,提高了数据交互分析处理的并发性。
下面通过具体实施例,对本申请实施例提供的数据处理系统进行说明。
参考图1,图1为本申请实施例提供的数据处理系统的一种结构示意图。该数据处理系统包括:多个交互分析服务模块101-103、多个调度服务模块201-203和多个计算模块301-305。这里,仅以3个交互分析服务模块、3个调度服务模块和5个计算模块为例进行说明,本申请实施例并不限定交互分析服务模块、调度服务模块和计算模块的个数。
本申请实施例中,交互分析服务模块和调度服务模块可位于同一进程中,即交互分析服务模块和调度服务模块可运行于同一进程,为同一进程中的两个模块。交互分析服务模块之间关系对等,即多个交互分析服务模块可以同时接收并处理客户端发送的数据请求。调度服务模块是主备式结构,只有一个主调度服务模块提供服务,其它为备用调度服务模块,在主调度服务模块挂掉后,从备用调度服务模块中选举出一个主调度服务模块。这样可以避免出现数据不同步的问题。
本申请实施例中,数据处理系统可依赖zookeeper等分布式协同组件技术,来实现主调度服务模块的选举和主备调度服务模块切换的功能,以及交互分析服务模块的负载均衡功能。数据请求又可以称为数据处理请求。
交互分析服务模块为数据处理系统的数据请求处理及任务集产生层,调度服务模块为任务集的消费调度执行层。交互分析服务模块和调度服务模块之间通过分布式缓存队列进行解耦交互。
计算模块可单独位于一个进程中。多个计算模块隶属分布式计算框架,例如Spark。计算模块主要完成调度服务模块分发的计算任务。交互分析服务模块和调度服务模块与计算模块可以位于同一节点上,也可以位于不同的节点上。
本申请实施例中,数据处理系统中包括任务集队列和结果集队列。任务集队列和结果集队列均为分布式缓存队列,可通过分布式缓存技术实现,以使用数据处理系统的全部内存资源。
多个交互分析服务模块101-103接收各个客户端发送的数据请求。
多个交互分析服务模块可同时接收并处理相同或不同的数据请求。例如,在某一时刻,交互分析服务模块101接收并处理数据请求1,交互分析服务模块102接收并处理数据请求2,交互分析服务模块103接收并处理数据请求3。
多个交互分析服务模块101-103对接收的数据请求包括的处理逻辑进行处理,得到任务集。
数据请求中包括处理逻辑,处理逻辑为数据处理的逻辑关系。交互分析服务模块对数据请求进行处理,即为交互分析服务模块对数据请求包括的处 理逻辑进行处理。
可选的,交互分析服务模块对处理逻辑的处理包括:SQL解析与优化、计划生成和资源预估等。其中,计划生成为根据SQL解析与优化的处理结果,生成逻辑计划和物理计划。资源预估为估算完成逻辑计划和物理计划所需的计算资源。
如图2所示的交互分析服务模块请求处理流程,包括如下步骤。
步骤201,交互分析服务模块对接收的数据请求包括的处理逻辑进行SQL解析与优化处理。
步骤202,交互分析服务模块对接收的数据请求包括的处理逻辑进行计划生成处理。
步骤203,交互分析服务模块对接收的数据请求包括的处理逻辑进行资源预估处理。
步骤204,交互分析服务模块得到处理结果,对得到的处理结果进行序列化和封装,得到任务集。
交互分析服务模块对数据请求包括的处理逻辑进行SQL解析与优化、计划生成以及资源预估处理后,得到处理结果为一个或多个任务。交互分析服务模块对一个或多个任务进行序列化和封装,得到任务集。
步骤205,交互分析服务模块将任务集加入任务集队列。
多个交互分析服务模块101-103将得到的任务集缓存至任务集队列。
可选的,交互分析服务模块在将任务集缓存至任务集队列时,可以先获取数据请求所包括的处理逻辑的属性信息,将获取的属性信息与数据请求的任务集对应的缓存至任务集队列。
这里,属性信息可以为用户根据需要预先配置的。属性信息为主调度服务模块调度任务集的依据。例如,属性信息可包括优先级,任务集对应的优先级越高,主调度服务模块越优先调度该任务集。
以属性信息包括优先级为例,为了便于主调度服务模块调度任务集,任 务集队列可以按照优先级划分为多个子队列,每一优先级对应一个子队列。此时,交互分析服务模块将获取的属性信息与数据请求的任务集对应的缓存至任务集队列,可以为:将数据请求的任务集缓存至获取的优先级对应的子队列。例如,数据请求1的优先级为1,数据请求1的任务集为任务集1。交互分析服务模块101得到优先级1的任务集1,将任务集1缓存至优先级1对应的子队列的尾部。
可选的,交互分析服务模块将任务集缓存至任务集队列后,定时检测结果集队列中是否存在该任务集所对应的结果集。若检测到结果集队列中存在该任务集所对应的结果集,则交互分析服务模块获取该任务集所对应的结果集,并将获取的结果集发送给客户端。
若将任务集缓存至任务集队列的第一预设时长后,交互分析服务模块检测结果集队列中还是不存在该任务集所对应的结果集,则将该任务集标记为终止,以告知主调度服务模块停止对该任务集的调度,节约计算资源。
多个调度服务模块201-203中的主调度服务模块从任务集队列中获取任务集,将获取的任务集发送至多个计算模块301-305。
调度服务模块将任务集从任务集队列中获取并发送给计算模块的过程,即为一次任务集的调度。
可选的,任务集队列中缓存有优先级与任务集的对应关系。主调度服务模块按照优先级从高到低的顺序,遍历并获取任务集队列中的各个任务集。例如,任务集队列中包括任务集1、任务集2和任务集3,任务集1的优先级1>任务集2的优先级2>任务集3的优先级3。主调度服务模块按照优先级从高到低的顺序,遍历并获取任务集队列中的各个任务集时,先获取任务集1,再获取任务集2,最后获取任务集3。
可选的,为了便于主调度服务模块调度任务集,任务集队列可以按照优先级划分为多个子队列,每一优先级对应一个子队列。此时,主调度服务模块按照优先级从高到低的顺序,遍历各个子队列中的任务集,并获取子队列中的任务集。
可选的,为避免同一任务集重复调度,主调度服务模块在将一任务集发 送给计算模块后,将该任务集标记为已调度。此时,主调度服务模块遍历任务集队列中的各个任务集,获取未被标记为已调度的任务集,将获取的任务集发送给计算模块。之后,主调度服务模块再将该获取的任务集标记为已调度。
可选的,为节约计算资源,多个交互分析服务模块若在将得到的任务集缓存至任务集队列的第一预设时长后,检测到结果集队列中不存在得到的任务集所对应的结果集,则将得到的任务集标记为终止。主调度服务模块遍历任务集队列中的各个任务集,获取未被标记为终止的任务集,将获取的任务集发送给计算模块。之后,主调度服务模块在未获得获取的任务集对应的结果集的情况下,检测到获取的任务集被标记为终止,则停止对该获取的任务集的调度,计算模块停止对该获取的任务集计算。
本申请实施例中,主调度服务模块可根据实际需要调整从任务集队列中获取任务集的方式,任务集调度策略为可插拔式的,即上述3种主调度服务模块获取任务集的方式可以任意结合。例如,主调度服务模块可按照优先级从任务集队列中获取任务集,还可以依据任务集的标记获取任务集,例如,获取未被标记为已调度的任务集,获取未被标记为终止的任务集,获取未被标记为已调度且未被标记为终止的任务集,或者按照优先级获取未被标记为已调度且未被标记为终止的任务集等。
可选的,为提高数据处理系统的数据处理效率,主调度服务模块获取任务集时,判断该任务集所需的计算资源是否超过多个计算模块中当前剩余的计算资源。这里,任务集所需的计算资源可为交互分析服务模块在对数据请求包括的处理逻辑进行资源评估时获取到的。多个计算模块中当前剩余的计算资源为:多个计算模块中每个计算模块剩余计算资源的总和。
主调度服务模块若判定该任务集所需的计算资源未超过多个计算模块中当前剩余的计算资源,则获取该任务集。之后,将获取的任务集发送至多个计算模块。主调度服务模块在将获取的任务集发送至多个计算模块时,可以将完整的一个任务集发送给一个计算模块进行计算,也可以将任务集拆分为多份,发送给多个计算模块进行计算。本申请实施例不进行限定。
主调度服务模块若判定该任务集所需的计算资源超过多个计算模块中当 前剩余的计算资源,则将该任务集缓存至任务集队列中与获取的任务集的优先级相同的所有任务集之后。
例如,优先级x1的子队列中包括任务集x1→任务集x2→任务集x3。主调度服务模块遍历到优先级x1的任务集x1后,若判定任务集x1所需的计算资源超过多个计算模块中当前剩余的计算资源,则主调度服务模块将任务集x1加入优先级x1的子队列的尾部,即优先级x1的子队列更新为:任务集x2→任务集x3→任务集x1。若判定任务集x1所需的计算资源未超过多个计算模块中当前剩余的计算资源,则主调度服务模块获取任务集x1。
一个示例中,如图3所示的调度服务模块的任务调度处理流程,可包括如下步骤。
步骤301,主调度服务模块按照优先级从高到低的顺序,遍历任务集队列中的各个任务集。
步骤302,主调度服务模块每遍历到一个任务集,检测任务集是否被标记为终止。若未被标记为终止,执行步骤303。若被标记为终止,则继续执行步骤301,遍历任务集队列中的各个任务集,直至遍历结束。
这里,遍历结束可以理解为任务集队列均为被标记为终止和/或已调度的任务集。
步骤303,主调度服务模块检测任务集是否被标记为已调度。若未被标记为已调度,执行步骤304。若被标记为已调度,则继续执行步骤301,遍历任务集队列中的各个任务集,直至遍历结束。
本申请实施例不限定步骤302和步骤303的执行顺序。若步骤303在步骤302之前执行,则步骤303中,主调度服务模块每遍历到一个任务集,检测到任务集未被标记为已调度,执行步骤302。步骤302中主调度服务模块检测任务集未被标记为终止,执行步骤304。
步骤304,主调度服务模块检测执行任务集所需的计算资源是否超过当前剩余的计算资源。若未超过当前剩余的计算资源,则执行步骤305。若超过当前剩余的计算资源,则执行步骤306。
步骤305,主调度服务模块将任务集调度至计算模块。
步骤306,主调度服务模块将任务集加入任务集队列中该任务集的优先级对应的子队列的尾部。之后,继续执行步骤301,遍历任务集队列中的各个任务集,直至遍历结束。
多个计算模块301-305对接收的任务集进行计算,得到计算结果;将得到的计算结果发送给主调度服务模块。
其中,多个计算模块301-305对接收的任务集进行计算,即为多个计算模块301-305对接收的任务集包括的任务进行处理。
主调度服务模块对接收的计算结果进行封装,得到结果集,将得到的结果集缓存至结果集队列。
主调度服务模块对接收的计算结果进行序列化和封装,得到结果集。主调度服务模块将得到的结果集缓存至结果集队列。
多个交互分析服务模块101-103从结果集队列中获取结果集;将获取的结果集发送给对应的客户端。
本申请实施例中,数据请求由哪个交互分析服务模块接收的,数据请求的结果集就由哪个交互分析服务模块获取,并发送给对应的客户端。这里,对应的客户端即为发送获取的结果集对应的数据请求的客户端。
可选的,上述数据处理系统还可包括删除模块。为了节约存储资源,删除模块检测结果集队列中是否存在缓存时长达到第二预设时长的第一结果集。若存在,删除模块删除第一结果集。
或者,为了节约存储资源,删除模块检测结果集队列中是否存在最后一次被访问至当前时刻的时长达到第三预设时长的第二结果集。若存在,删除模块删除第二结果集。
可选的,为了节约计算资源,交互分析服务模块在接收到数据请求后,检测结果集队列中是否存在该数据请求所包括的处理逻辑对应的结果集。若不存在,则交互分析服务模块对该数据请求包括的处理逻辑进行处理,得到任务集。若存在,则交互分析服务模块直接从结果集队列中获取该数据请求 所包括的处理逻辑对应的结果集,并将获取的结果集发送给对应的客户端。
为了便于交互分析服务模块检测结果集队列中是否存在该数据请求所包括处理逻辑对应的结果集,交互分析服务模块在接收到数据请求后,可以生成能够唯一表示数据请求所包括的处理逻辑的标识。处理逻辑的标识可以通过MD5算法等计算生成。任务集队列中缓存有处理逻辑的标识与任务集的对应关系,结果集队列中缓存有处理逻辑的标识与结果集的对应关系。
交互分析服务模块检测结果集队列中是否存在接收的数据请求所包括的处理逻辑的标识(例如第一标识)。若存在,则交互分析服务模块确定结果集队列中存在该数据请求所包括的处理逻辑对应的结果集,从结果集队列中获取第一标识对应的结果集,并发送给对应的客户端。否则,交互分析服务模块确定结果集队列中不存在该数据请求所包括的处理逻辑对应的结果集,对该数据请求包括的处理逻辑进行处理,得到任务集。
应用本申请实施例,在数据处理系统中包括了任务集队列和结果集队列,交互分析服务模块将任务集缓存至任务集队列,调度服务模块从任务集队列中获取任务集。另外,调度服务模块将结果集缓存至结果集队列,交互分析服务模块从结果集队列中获取结果集,并将结果集发送给客户端。可见,通过任务集队列和结果集队列实现了交互分析服务模块和调度服务模块的解耦,多个交互分析服务模块可部署在多个节点上同时提供交互分析服务,即多个交互分析服务模块可同时提供数据交互分析处理,进而数据交互分析处理可以在多个节点上进行,提高了数据交互分析处理的并发性。
基于相同的发明构思,根据上述数据处理系统实施例,本申请实施例还提供了一种数据处理方法。参考图4,图4为本申请实施例提供的数据处理方法的一种流程示意图。该方法应用于数据处理系统,数据处理系统包括:多个交互分析服务模块、多个调度服务模块和多个计算模块。
本申请实施例中,交互分析服务模块和调度服务模块可位于同一进程中,即交互分析服务模块和调度服务模块可运行于同一进程,为同一进程中的两个模块。交互分析服务模块之间关系对等,即多个交互分析服务模块可以同时接收并处理客户端发送的数据请求。调度服务模块是主备式结构,只有一个主调度服务模块提供服务,其它为备用调度服务模块,在主调度服务模块 挂掉后,从备用调度服务模块中选举出一个主调度服务模块。这样可以避免出现数据不同步的问题。
本申请实施例中,数据处理系统可依赖zookeeper等分布式协同组件技术,来实现主调度服务模块的选举和主备调度服务模块切换的功能,以及交互分析服务模块的负载均衡功能。
交互分析服务模块为数据处理系统的数据请求处理及任务集产生层,调度服务模块为任务集的消费调度执行层。交互分析服务模块和调度服务模块之间通过分布式缓存队列进行解耦交互。
计算模块可单独位于一个进程中。多个计算模块隶属分布式计算框架,例如Spark。计算模块主要完成调度服务模块分发的计算任务。交互分析服务模块和调度服务模块与计算模块可以位于同一节点上,也可以位于不同的节点上。
本申请实施例中,数据处理系统中包括任务集队列和结果集队列。任务集队列和结果集队列均为分布式缓存队列,可通过分布式缓存技术实现,以使用数据处理系统的全部内存资源。
本申请实施例中,上述数据处理方法包括如下步骤。
步骤401,多个交互分析服务模块接收各个客户端发送的数据请求;对接收的数据请求包括的处理逻辑进行处理,得到任务集;将得到的任务集缓存至任务集队列。
一个实施例中,多个交互分析服务模块对接收的数包括的处理逻辑进行处理,得到任务集,可包括:对接收的数据请求包括的处理逻辑进行SQL解析与优化、计划生成和资源预估处理,得到处理结果;对得到的处理结果进行序列化和封装,得到任务集。可参考图2所示的交互分析服务模块的请求处理流程。
一个实施例中,多个交互分析服务模块将得到的任务集缓存至任务集队列,可包括:获取接收的数据请求所包括的处理逻辑的属性信息,将得到的任务集与获取的属性信息对应缓存至任务集队列。
步骤402,多个调度服务模块中的主调度服务模块从任务集队列中获取任务集;将获取的任务集发送至多个计算模块。
一个实施例中,任务集队列缓存了任务集与属性信息的对应关系,属性信息包括优先级。这种情况下,主调度服务模块从任务集队列中获取任务集,可为:按照优先级从高到低的顺序,遍历并获取任务集队列中的各个任务集。
另一个实施例中,主调度服务模块按照优先级从高到低的顺序,遍历并获取任务集队列中的各个任务集,可包括:按照优先级从高到低的顺序,遍历任务集队列中的各个任务集,并判断任务集所需的计算资源是否超过所述多个计算模块中当前剩余的计算资源;若否,则从任务集队列中获取该任务集;若是,则将该任务集缓存至任务集队列中与该任务集的优先级相同的所有任务集之后。
本申请实施例中,主调度服务模块按照优先级从高到低的顺序,遍历任务集队列中的各个任务集,并判断任务集所需的计算资源是否超过所述多个计算模块中当前剩余的计算资源,包括:主调度服务模块按照优先级从高到低的顺序,遍历任务集队列中的各个任务集,每遍历到到一个任务集,判断该任务集所需的计算资源是否超过所述多个计算模块中当前剩余的计算资源。
一个实施例中,主调度服务模块从任务集队列中获取任务集,可包括:遍历任务集队列中的各个任务集,获取未被标记为已调度的任务集。
在主调度服务模块获取未被标记为已调度的任务集之后,主调度服务模块将获取的任务集标记为已调度。
一个实施例中,主调度服务模块从任务集队列中获取任务集,可包括:遍历任务集队列中的各个任务集,获取未被标记为终止的任务集。
另外,多个交互分析服务模块若在将得到的任务集缓存至任务集队列的第一预设时长后,检测到结果集队列中不存在得到的任务集所对应的结果集,则将得到的任务集标记为终止。
步骤403,多个计算模块对接收的任务集进行计算,得到计算结果;将得到的计算结果发送给主调度服务模块。
步骤404,主调度服务模块对接收的计算结果进行封装,得到结果集;将得到的结果集缓存至结果集队列。
主调度服务模块对接收的计算结果进行序列化和封装,得到结果集。主调度服务模块将得到的结果集缓存至结果集队列。
步骤405,多个交互分析服务模块从结果集队列中获取结果集;将获取的结果集发送给对应的客户端。
本申请实施例中,数据请求由哪个交互分析服务模块接收的,数据请求的结果集就由哪个交互分析服务模块获取,并发送给对应的客户端。这里,对应的客户端即为发送获取的结果集对应的数据请求的客户端。
一个实施例中,数据处理系统还可包括删除模块。此时,上述数据处理方法还可包括:删除模块检测结果集队列中是否存在缓存时长达到第二预设时长的第一结果集;若存在,删除第一结果集。
另一个实施例中,上述数据处理方法还可包括:删除模块检测结果集队列中是否存在最后一次被访问至当前时刻的时长达到第三预设时长的第二结果集;若存在,删除第二结果集。
一个实施例中,多个交互分析服务模块对接收的数据请求包括的处理逻辑进行处理,得到任务集,可包括:检测结果集队列中是否存在接收的数据请求所包括的处理逻辑对应的结果集;若不存在,则对接收的数据请求包括的处理逻辑进行数据处理,得到任务集。
若确定结果集队列中存在接收的数据请求所包括的处理逻辑对应的结果集,则从结果集队列中获取接收的数据请求所包括的处理逻辑对应的结果集;将获取的结果集发送给对应的客户端。
应用本申请实施例,在数据处理系统中包括了任务集队列和结果集队列,交互分析服务模块将任务集缓存至任务集队列,调度服务模块从任务集队列中获取任务集。另外,调度服务模块将结果集缓存至结果集队列,交互分析服务模块从结果集队列中获取结果集,并将结果集发送给客户端。可见,通过任务集队列和结果集队列,实现了交互分析服务模块和调度服务模块的解耦,多个交互分析服务模块可部署在多个节点上同时提供交互分析服务,即 多个交互分析服务模块可同时提供数据交互分析处理,进而数据交互分析处理可以在多个节点上进行,提高了数据交互分析处理的并发性。
基于相同的发明构思,根据上述数据处理系统实施例,本申请实施例还提供了一种机器可读存储介质,机器可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现上述图4所示的数据处理方法。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于数据处理方法和机器可读存储介质实施例而言,由于其基本相似于数据处理系统实施例,所以描述的比较简单,相关之处参见数据处理系统实施例的部分说明即可。
以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。

Claims (23)

  1. 一种数据处理方法,其特征在于,应用于数据处理系统,所述数据处理系统包括:多个交互分析服务模块、多个调度服务模块和多个计算模块;所述方法包括:
    所述多个交互分析服务模块接收各个客户端发送的数据请求;对接收的数据请求包括的处理逻辑进行处理,得到任务集;将得到的任务集缓存至任务集队列;
    所述多个调度服务模块中的主调度服务模块从所述任务集队列中获取任务集;将获取的任务集发送至所述多个计算模块;
    所述多个计算模块对接收的任务集进行计算,得到计算结果;将得到的计算结果发送给所述主调度服务模块;
    所述主调度服务模块对接收的计算结果进行封装,得到结果集;将得到的结果集缓存至结果集队列;
    所述多个交互分析服务模块从所述结果集队列中获取结果集;将获取的结果集发送给对应的客户端。
  2. 根据权利要求1所述的方法,其特征在于,所述多个交互分析服务模块对接收的数据请求包括的处理逻辑进行处理,得到任务集,包括:
    所述多个交互分析服务模块对接收的数据请求包括的处理逻辑进行结构化查询语言SQL解析与优化、计划生成和资源预估处理,得到处理结果;对得到的处理结果进行序列化和封装,得到任务集。
  3. 根据权利要求1所述的方法,其特征在于,所述多个交互分析服务模块将得到的任务集缓存至任务集队列,包括:
    所述多个交互分析服务模块获取接收的数据请求所包括的处理逻辑的属性信息,将得到的任务集与获取的属性信息对应的缓存至任务集队列。
  4. 根据权利要求3所述的方法,其特征在于,所述属性信息包括优先级;
    所述主调度服务模块从所述任务集队列中获取任务集,包括:
    所述主调度服务模块按照优先级从高到低的顺序,遍历并获取所述任务集队列中的各个任务集。
  5. 根据权利要求4所述的方法,其特征在于,所述主调度服务模块按照优先级从高到低的顺序,遍历并获取所述任务集队列中的各个任务集,包括:
    所述主调度服务模块按照优先级从高到低的顺序,遍历所述任务集队列中的各个任务集,并判断任务集所需的计算资源是否超过所述多个计算模块中当前剩余的计算资源;若否,则从所述任务集队列中获取该任务集;若是,则将该任务集缓存至所述任务集队列中与该任务集的优先级相同的所有任务集之后。
  6. 根据权利要求1所述的方法,其特征在于,所述主调度服务模块从所述任务集队列中获取任务集,包括:
    所述主调度服务模块遍历所述任务集队列中的各个任务集,获取未被标记为已调度的任务集;
    在所述主调度服务模块获取未被标记为已调度的任务集之后,还包括:
    所述主调度服务模块将获取的任务集标记为已调度。
  7. 根据权利要求1所述的方法,其特征在于,所述主调度服务模块从所述任务集队列中获取任务集,包括:
    所述主调度服务模块遍历所述任务集队列中的各个任务集,获取未被标记为终止的任务集;
    所述方法还包括:
    所述多个交互分析服务模块若在将得到的任务集缓存至任务集队列的第一预设时长后,检测到所述结果集队列中不存在得到的任务集所对应的结果集,则将得到的任务集标记为终止。
  8. 根据权利要求1所述的方法,其特征在于,所述数据处理系统还包括:删除模块;所述方法还包括:
    所述删除模块检测所述结果集队列中是否存在缓存时长达到第二预设时 长的第一结果集;若存在,删除所述第一结果集;或者,
    所述删除模块检测所述结果集队列中是否存在最后一次被访问至当前时刻的时长达到第三预设时长的第二结果集;若存在,删除所述第二结果集。
  9. 根据权利要求1所述的方法,其特征在于,所述多个交互分析服务模块对接收的数据请求包括的处理逻辑进行处理,得到任务集,包括:
    所述多个交互分析服务模块检测结果集队列中是否存在接收的数据请求所包括的处理逻辑对应的结果集;若不存在,则对接收的数据请求包括的处理逻辑进行数据处理,得到任务集。
  10. 根据权利要求9所述的方法,其特征在于,所述方法还包括:
    所述多个交互分析服务模块若确定所述结果集队列中存在接收的数据请求所包括的处理逻辑对应的结果集,则从所述结果集队列中获取接收的数据请求所包括的处理逻辑对应的结果集;将获取的结果集发送给对应的客户端。
  11. 根据权利要求1-10任一项所述的方法,其特征在于,所述交互分析服务模和所述调度服务模块位于同一进程中。
  12. 一种数据处理系统,其特征在于,所述数据处理系统包括:多个交互分析服务模块、多个调度服务模块和多个计算模块;
    所述多个交互分析服务模块,用于接收各个客户端发送的数据请求;对接收的数据请求包括的处理逻辑进行处理,得到任务集;将得到的任务集缓存至任务集队列;
    所述多个调度服务模块中的主调度服务模块,用于从所述任务集队列中获取任务集;将获取的任务集发送至所述多个计算模块;
    所述多个计算模块,用于对接收的任务集进行计算,得到计算结果;将得到的计算结果发送给所述主调度服务模块;
    所述主调度服务模块,用于接收的计算结果进行封装,得到结果集;将得到的结果集缓存至结果集队列;
    所述多个交互分析服务模块,用于从所述结果集队列中获取结果集;将 获取的结果集发送给对应的客户端。
  13. 根据权利要求12所述的系统,其特征在于,所述多个交互分析服务模块具体用于:
    对接收的数据请求包括的处理逻辑进行结构化查询语言SQL解析与优化、计划生成和资源预估处理,得到处理结果;对得到的处理结果进行序列化和封装,得到任务集。
  14. 根据权利要求12所述的系统,其特征在于,所述多个交互分析服务模块具体用于:获取接收的数据请求所包括的处理逻辑的属性信息,将得到的任务集与获取的属性信息对应的缓存至任务集队列。
  15. 根据权利要求14所述的系统,其特征在于,所述属性信息包括优先级;
    所述主调度服务模块具体用于:按照优先级从高到低的顺序,遍历并获取所述任务集队列中的各个任务集。
  16. 根据权利要求15所述的系统,其特征在于,所述主调度服务模块具体用于:
    按照优先级从高到低的顺序,遍历所述任务集队列中的各个任务集,并判断任务集所需的计算资源是否超过所述多个计算模块中当前剩余的计算资源;若否,则从所述任务集队列中获取该任务集;若是,则将该任务集缓存至所述任务集队列中与该任务集的优先级相同的所有任务集之后。
  17. 根据权利要求12所述的系统,其特征在于,所述主调度服务模块具体用于:遍历所述任务集队列中的各个任务集,获取未被标记为已调度的任务集;
    所述主调度服务模块,还用于将获取的任务集标记为已调度。
  18. 根据权利要求12所述的系统,其特征在于,所述主调度服务模块具体用于:遍历所述任务集队列中的各个任务集,获取未被标记为终止的任务集;
    所述多个交互分析服务模块,还用于若在将得到的任务集缓存至任务集 队列的第一预设时长后,检测到所述结果集队列中不存在得到的任务集所对应的结果集,则将得到的任务集标记为终止。
  19. 根据权利要求12所述的系统,其特征在于,所述数据处理系统还包括:删除模块;
    所述删除模块,用于检测所述结果集队列中是否存在缓存时长达到第二预设时长的第一结果集;若存在,删除所述第一结果集;或者,
    所述删除模块,用于检测所述结果集队列中是否存在最后一次被访问至当前时刻的时长达到第三预设时长的第二结果集;若存在,删除所述第二结果集。
  20. 根据权利要求12所述的系统,其特征在于,所述多个交互分析服务模块具体用于:
    检测结果集队列中是否存在接收的数据请求所包括的处理逻辑对应的结果集;若不存在,则对接收的数据请求包括的处理逻辑进行数据处理,得到任务集。
  21. 根据权利要求20所述的系统,其特征在于,
    所述多个交互分析服务模块,还用于若确定所述结果集队列中存在接收的数据请求所包括的处理逻辑对应的结果集,则从所述结果集队列中获取接收的数据请求所包括的处理逻辑对应的结果集;将获取的结果集发送给对应的客户端。
  22. 根据权利要求12-21任一项所述的系统,其特征在于,所述交互分析服务模和所述调度服务模块位于同一进程中。
  23. 一种机器可读存储介质,其特征在于,所述机器可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-11任一所述的方法步骤。
PCT/CN2019/086847 2018-05-16 2019-05-14 一种数据处理系统及方法 WO2019219005A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201810470200.1A CN110569252B (zh) 2018-05-16 2018-05-16 一种数据处理系统及方法
CN201810470200.1 2018-05-16

Publications (1)

Publication Number Publication Date
WO2019219005A1 true WO2019219005A1 (zh) 2019-11-21

Family

ID=68539471

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/086847 WO2019219005A1 (zh) 2018-05-16 2019-05-14 一种数据处理系统及方法

Country Status (2)

Country Link
CN (1) CN110569252B (zh)
WO (1) WO2019219005A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111858047A (zh) * 2020-07-14 2020-10-30 中国工商银行股份有限公司 文件交互方法、装置及系统
CN112256451A (zh) * 2020-10-19 2021-01-22 北京达佳互联信息技术有限公司 定时业务消息生成方法、装置、电子设备及存储介质
CN116302574A (zh) * 2023-05-23 2023-06-23 北京前景无忧电子科技股份有限公司 一种基于MapReduce的并发处理方法

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113626176A (zh) * 2020-05-08 2021-11-09 北京沃东天骏信息技术有限公司 一种业务请求处理方法及装置
CN111694640B (zh) * 2020-06-10 2023-04-21 北京奇艺世纪科技有限公司 数据处理方法、装置、电子设备及存储介质
CN116775584A (zh) * 2023-07-12 2023-09-19 常德职业技术学院 一种基于云服务Hadoop的数据挖掘方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070250681A1 (en) * 2006-04-10 2007-10-25 International Business Machines Corporation Independent programmable operation sequence processor for vector processing
CN103077074A (zh) * 2012-12-26 2013-05-01 深圳先进技术研究院 一种三维空间数据并行调度方法和系统
CN104657214A (zh) * 2015-03-13 2015-05-27 华存数据信息技术有限公司 一种基于多队列和多优先级的大数据任务管理系统和方法
CN106095572A (zh) * 2016-06-08 2016-11-09 东方网力科技股份有限公司 一种大数据处理的分布式调度系统及方法
CN107665144A (zh) * 2016-07-29 2018-02-06 北京京东尚科信息技术有限公司 分布式任务的均衡调度中心、方法、系统和装置

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002049602A (ja) * 2000-08-02 2002-02-15 Ricoh Co Ltd 検索システム
US7376693B2 (en) * 2002-02-08 2008-05-20 Jp Morgan Chase & Company System architecture for distributed computing and method of using the system
AU2003241771A1 (en) * 2002-05-28 2003-12-12 Dai Nippon Printing Co., Ltd. Parallel processing system
JP2007537550A (ja) * 2004-05-11 2007-12-20 ミスルトウ テクノロジーズ, インコーポレイテッド デジタルセマンティックプロセッサを用いたストレージサーバーのアーキテクチャ
JP2005346563A (ja) * 2004-06-04 2005-12-15 Mitsubishi Electric Corp 並列処理システムおよび並列処理方法
JP4241660B2 (ja) * 2005-04-25 2009-03-18 株式会社日立製作所 負荷分散装置
EP2153356A4 (en) * 2007-05-15 2011-03-16 Tivo Inc MEDIA DATA CONTENT SEARCH SYSTEM
US7797391B2 (en) * 2007-09-19 2010-09-14 The Chinese University Of Hong Kong Load balancing and admission scheduling in pull-based parallel video servers
US7958158B2 (en) * 2008-06-19 2011-06-07 International Business Machines Corporation Aggregating database queries
CN102063336B (zh) * 2011-01-12 2013-02-27 国网电力科学研究院 一种分布式计算多应用功能异步并发调度方法
CN102831012A (zh) * 2011-06-16 2012-12-19 日立(中国)研究开发有限公司 多节点分布式系统中的任务调度装置和任务调度方法
CN102915254B (zh) * 2011-08-02 2018-04-06 中兴通讯股份有限公司 任务管理方法及装置
JP2013069189A (ja) * 2011-09-26 2013-04-18 Hitachi Ltd 並列分散処理方法および並列分散処理システム
WO2013107012A1 (zh) * 2012-01-18 2013-07-25 华为技术有限公司 分布式计算任务处理系统和任务处理方法
CA2806110C (en) * 2012-02-17 2017-05-16 Research In Motion Corporation Method and system for distributing one or more server-based services
CN103377087B (zh) * 2012-04-27 2017-06-23 北大方正集团有限公司 一种数据任务处理方法、装置及系统
CN102880503B (zh) * 2012-08-24 2015-04-15 新浪网技术(中国)有限公司 数据分析系统及数据分析方法
CN104468649B (zh) * 2013-09-16 2018-06-05 北大方正集团有限公司 服务器、终端、数据推送系统和数据推送方法
CN104734902B (zh) * 2013-12-23 2018-03-23 展讯通信(上海)有限公司 测试系统及其服务端
CN104268007A (zh) * 2014-01-07 2015-01-07 深圳市华傲数据技术有限公司 一种事件请求分布式调度方法和系统
CN104253850A (zh) * 2014-01-07 2014-12-31 深圳市华傲数据技术有限公司 一种任务分布式调度方法和系统
CN103905531A (zh) * 2014-03-14 2014-07-02 浪潮电子信息产业股份有限公司 一种集群存储系统中转换节点间负载均衡方法
CN104133724B (zh) * 2014-04-03 2015-08-19 腾讯科技(深圳)有限公司 并发任务调度方法及装置
CN104462370A (zh) * 2014-12-09 2015-03-25 北京百度网讯科技有限公司 分布式任务调度系统及方法
CN104519140A (zh) * 2015-01-08 2015-04-15 浪潮(北京)电子信息产业有限公司 一种分布式并行计算的服务器系统及其管理方法
CN104615487B (zh) * 2015-01-12 2019-03-08 中国科学院计算机网络信息中心 并行任务优化系统和方法
CN105429718A (zh) * 2015-10-28 2016-03-23 西安电子科技大学 基于多并发的无线频谱监测方法
CN106170016A (zh) * 2016-07-28 2016-11-30 深圳市创梦天地科技有限公司 一种处理高并发数据请求的方法和系统
CN106909451A (zh) * 2017-02-28 2017-06-30 郑州云海信息技术有限公司 一种分布式任务调度系统及方法
CN106991339A (zh) * 2017-05-05 2017-07-28 国信嘉宁数据技术有限公司 一种金融业务数据保全方法、服务器、客户端和系统
CN107329814B (zh) * 2017-06-16 2020-05-26 电子科技大学 一种基于rdma的分布式内存数据库查询引擎系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070250681A1 (en) * 2006-04-10 2007-10-25 International Business Machines Corporation Independent programmable operation sequence processor for vector processing
CN103077074A (zh) * 2012-12-26 2013-05-01 深圳先进技术研究院 一种三维空间数据并行调度方法和系统
CN104657214A (zh) * 2015-03-13 2015-05-27 华存数据信息技术有限公司 一种基于多队列和多优先级的大数据任务管理系统和方法
CN106095572A (zh) * 2016-06-08 2016-11-09 东方网力科技股份有限公司 一种大数据处理的分布式调度系统及方法
CN107665144A (zh) * 2016-07-29 2018-02-06 北京京东尚科信息技术有限公司 分布式任务的均衡调度中心、方法、系统和装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111858047A (zh) * 2020-07-14 2020-10-30 中国工商银行股份有限公司 文件交互方法、装置及系统
CN111858047B (zh) * 2020-07-14 2024-03-22 中国工商银行股份有限公司 文件交互方法、装置及系统
CN112256451A (zh) * 2020-10-19 2021-01-22 北京达佳互联信息技术有限公司 定时业务消息生成方法、装置、电子设备及存储介质
CN116302574A (zh) * 2023-05-23 2023-06-23 北京前景无忧电子科技股份有限公司 一种基于MapReduce的并发处理方法
CN116302574B (zh) * 2023-05-23 2023-08-18 北京前景无忧电子科技股份有限公司 一种基于MapReduce的并发处理方法

Also Published As

Publication number Publication date
CN110569252A (zh) 2019-12-13
CN110569252B (zh) 2023-04-07

Similar Documents

Publication Publication Date Title
WO2019219005A1 (zh) 一种数据处理系统及方法
CN107451220B (zh) 一种分布式NewSQL数据库系统
Shi et al. Fast and concurrent {RDF} queries with {RDMA-Based} distributed graph exploration
CN109889575B (zh) 一种边缘环境下的协同计算平台系统及方法
US20140279986A1 (en) System and Method for Performing a Transaction in a Massively Parallel Processing Database
US10445433B2 (en) Methods and systems of query engines and secondary indexes implemented in a distributed database
CN106933664B (zh) 一种Hadoop集群的资源调度方法及装置
CN105138679B (zh) 一种基于分布式缓存的数据处理系统及处理方法
WO2018120171A1 (zh) 一种用于存储过程的执行方法、设备以及系统
CN108469988A (zh) 一种基于异构Hadoop集群的任务调度方法
CN110908641B (zh) 基于可视化的流计算平台、方法、设备和存储介质
CN112134909B (zh) 时序数据处理方法、装置、系统、服务器及可读存储介质
US10158709B1 (en) Identifying data store requests for asynchronous processing
US20120297216A1 (en) Dynamically selecting active polling or timed waits
Yan et al. Performance optimization for short MapReduce job execution in Hadoop
CN107515784A (zh) 一种在分布式系统中计算资源的方法与设备
EP3172682B1 (en) Distributing and processing streams over one or more networks for on-the-fly schema evolution
WO2017143824A1 (zh) 事务执行方法、装置及系统
Wang et al. Task scheduling algorithm based on improved Min-Min algorithm in cloud computing environment
CN105637485B (zh) 一种适用于广义模型的死锁检测方法
WO2018188607A1 (zh) 流处理方法及装置
CN108304253A (zh) 基于缓存感知和数据本地性的map任务调度方法
WO2019029721A1 (zh) 任务的调度方法、装置、设备及存储介质
WO2016197858A1 (zh) 一种消息通知方法和设备
CN111209263A (zh) 数据存储方法、装置、设备及存储介质

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19803386

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19803386

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 19803386

Country of ref document: EP

Kind code of ref document: A1

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205 DATED 01/06/2021)

122 Ep: pct application non-entry in european phase

Ref document number: 19803386

Country of ref document: EP

Kind code of ref document: A1