WO2020168901A1 - 一种数据计算方法及引擎 - Google Patents
一种数据计算方法及引擎 Download PDFInfo
- Publication number
- WO2020168901A1 WO2020168901A1 PCT/CN2020/073843 CN2020073843W WO2020168901A1 WO 2020168901 A1 WO2020168901 A1 WO 2020168901A1 CN 2020073843 W CN2020073843 W CN 2020073843W WO 2020168901 A1 WO2020168901 A1 WO 2020168901A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- target
- data
- node
- current layer
- current
- Prior art date
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/903—Querying
- G06F16/90335—Query processing
Definitions
- This application relates to the field of computer technology, in particular to a data calculation method and engine.
- the following two query processes correspond to two scripts respectively. One is to query the common IP of user 1 and then the common equipment used by that IP; the other is to query the common IP of user 1 and then query the most recent use time of the IP.
- the query purpose is achieved by executing the script completely.
- the embodiments of the present application provide a data calculation method and engine, which can reduce the IO consumption of the business system.
- an embodiment of the present application provides a data calculation method, including:
- Receiving a data calculation request where the data calculation request includes: identifiers of several target data views;
- a number of current layer target DS nodes and their input parameters are determined, wherein the first DS node and the second DS node do not exist among the number of current layer target DS nodes.
- the first DS node is the same as the second DS node, and the input parameters of the first DS node and the second DS node are the same;
- the data calculation result of the current layer of each target data view is determined.
- an embodiment of the present application provides a data calculation engine, including:
- the receiving unit is configured to receive a data calculation request, where the data calculation request includes: identifiers of several target data views;
- the determining unit is configured to determine the current layer DS node of each target data view and the input parameters of the current layer DS node according to the preset DAG configuration corresponding to the data view;
- the merging unit is configured to determine a number of current layer target DS nodes and their input parameters according to each of the current layer DS nodes and their input parameters, wherein the first DS node and the second DS node do not exist among the several current layer target DS nodes.
- DS node the first DS node is the same as the second DS node, and the entry parameters of the first DS node are the same as the entry parameters of the second DS node;
- the execution unit is configured to execute each of the current layer target DS nodes according to the input parameters of each of the current layer target DS nodes;
- the calculation unit is configured to determine the current layer data calculation result of each target data view according to the execution result of each current layer target DS node and the DAG configuration corresponding to each target data view.
- the method abstracts data calculation into access logic and data processing logic, where the access logic is implemented through the DS node (data source layer), and the data processing logic Realized through DAG configuration (data view layer).
- the method collects DS nodes (IO nodes) hierarchically according to the DAG configuration, and executes the DS nodes after deduplication, reducing the number of visits to the business system and reducing the IO consumption of the business system.
- Fig. 1 is a flowchart of a data calculation method provided by an embodiment of the present application
- FIG. 2 is a schematic structural diagram of a DAG configuration provided by an embodiment of the present application.
- FIG. 3 is a schematic structural diagram of another DAG configuration provided by an embodiment of the present application.
- FIG. 4 is a schematic structural diagram of yet another DAG configuration provided by an embodiment of the present application.
- FIG. 5 is a schematic structural diagram of still another DAG configuration provided by an embodiment of the present application.
- Fig. 6 is a schematic structural diagram of a data calculation engine provided by an embodiment of the present application.
- an embodiment of the present application provides a data calculation method, which may include the following steps:
- Step 101 Receive a data calculation request, where the data calculation request includes: identifiers of several target data views.
- the data calculation request also includes: the input parameters of the first-tier DS nodes of each target data view.
- a data calculation request can be for one or more data views.
- Step 102 Determine the input parameters of the current layer DS node and the current layer DS node of each target data view according to the preset DAG configuration corresponding to the data view.
- DAG is configured as the form of data view, and DAG is a hierarchical structure, which provides convenience for determining the target DS nodes of each layer.
- the DAG configuration can include multiple layers, and the method provided in step 102 can be used to process each layer.
- the input parameters of the DS nodes are the input parameters of the first layer DS nodes of the data view included in the data calculation request, and for other layers except the first layer , The input parameter of the DS node is the data calculation result of the upper layer.
- FIG. 2 it is a DAG configuration corresponding to a data view.
- the business purpose of the data view is to obtain the commonly used IP associated with the user ID according to the input user ID, and obtain the IP lists that have been used. The total number of accounts logged in by IP.
- the DAG configuration includes two layers.
- the execution task corresponding to the DS node on the first layer is "Get the user's frequently used IP list", and its input parameter is the user ID;
- the execution task corresponding to the DS node on the second layer is "The number of accounts that have appeared in this IP "Number”, the input parameter is the data calculation result of the first layer, and the final data calculation result is "the number of accounts that can be associated with the common IP of the user ID”.
- the first-level DS nodes and the second-level DS nodes are located at different levels of the DAG tree, that is, each data view itself has multiple levels to be calculated. However, from a logical perspective, both the first-tier DS nodes and the second-tier DS nodes belong to the data source layer.
- Step 103 Determine a number of current-level target DS nodes and their input parameters according to each current-level DS node and its input parameters.
- the first DS node and the second DS node do not exist, and the first DS The node is the same as the second DS node, and the input parameters of the first DS node and the second DS node are the same.
- first DS node and the second DS node are repeated nodes among several current-layer target DS nodes, that is, the two DS nodes have the same execution tasks and the same input parameters.
- the target DS node and its input parameters of each layer need to be determined. Now take the first layer of the three DAG configurations shown in Figs. 3 to 5 as an example to describe step 103 in detail.
- the first layer DS nodes of the three DAG configurations are: DS4, DS1, DS1, and the corresponding input parameters are all user IDs. Because DS1 in Figure 4 is the same as DS1 in Figure 5, and both nodes have input parameters. If it is a user ID, DS1 in FIG. 4 can be combined with DS1 in FIG. 5 for execution, that is, the first-level target DS nodes are DS4 and DS1, and the corresponding input parameters are all user IDs. The number of current layer target DS nodes obtained after the merging is less than the number of current layer DS nodes before the merging.
- Step 104 Execute each current-layer target DS node according to the input parameters of each current-layer target DS node.
- this method is divided into the following two situations:
- step 104 specifically includes:
- A1 Call the TR service interface.
- A2 Provide the input parameters of the target DS node of the current layer to the TR service interface so that the TR service interface obtains data that matches the input parameters of the target DS node of the current layer.
- step 104 specifically includes:
- the data matching the input parameters of the target DS node of the current layer is filtered out from the offline database.
- step 104 can be implemented by calling a TR service interface: return IpService.queryIpList(userId).
- step 104 can be implemented by calling a TR service interface: return IpService.queryUserIdCount(ipList).
- step 104 can be implemented by a paragraph of SQL statement: select count (userId) from table1 where ip in ipList.
- the data calculation method supports configured IO consolidation, which can save IO consumption for each business system to the greatest extent.
- the data engine supports one-time configuration and can be applied to both online and offline environments, which can greatly save data development costs and improve the consistency of online and offline data.
- the DS node only contains the most basic access logic, there is no complex processing logic, and the offline and online are well aligned.
- each current layer target DS node is executed concurrently.
- Step 105 Determine the data calculation result of the current layer of each target data view according to the execution result of each current layer target DS node and the DAG configuration corresponding to each target data view.
- Step 105 specifically includes:
- B1 Determine the execution result corresponding to each target data view according to the execution result of each current layer target DS node and the DAG configuration corresponding to each target data view.
- the DS nodes of each layer can be determined according to the DAG configuration of the target data view, and the target DS node corresponding to the target data view can be determined through the DS node, and the execution result of the target DS node is the execution result corresponding to the target data view.
- the execution results corresponding to the target data view can be divided into two types: one is successful execution, that is, the target DS node of the current layer corresponding to the target data view obtains data that matches its input parameters within the preset execution time range; the other is It is execution failure, that is, the target DS node of the current layer corresponding to the target data view does not get the data that matches its input parameters within the execution time range.
- B2 Perform data calculation according to the execution result and DAG configuration corresponding to each target data view, and obtain the data calculation result of the current layer of each target data view, wherein the data calculation corresponding to different target data views is executed serially.
- the execution time of the target DS node is controlled through a preset execution time range, thereby improving the efficiency of data calculation.
- the existence of the execution time range can prevent the data calculation process of one target data view from being suspended, and does not affect the data calculation process of other target data views. If there is a DS node that is not calculated within the execution time range, the DS calculation process is placed in the subsequent DS parameter preparation process for serial calculation.
- the target data view is re-executed according to the input parameters of the current layer target DS node corresponding to the target data view.
- the corresponding current layer target DS node when the current layer target DS node corresponding to the target data view obtains data matching its input parameters within the execution time range, data calculation is performed according to the DAG configuration corresponding to the target data view.
- the data calculation process of the target data view can also be terminated. It should be noted that the termination of the data calculation process corresponding to one target data view does not affect the data calculation process corresponding to other target data views.
- This method abstracts data calculation into access logic and data processing logic, where the access logic is implemented through the DS node (data source layer), and the data processing logic is implemented through the DAG configuration (data view layer).
- the method collects DS nodes (IO nodes) hierarchically according to the DAG configuration, and executes the DS nodes after deduplication, reducing the number of visits to the business system and reducing the IO consumption of the business system.
- the embodiment of the present application takes the DAG configuration corresponding to the three data views shown in Fig. 3 to Fig. 5 as an example to describe the data calculation method in detail.
- the method includes:
- S1 Receive a data calculation request, where the data calculation request includes the identifiers of a number of target data views and the input parameters of the first-tier DS nodes of each target data view.
- the DAG configuration shown in FIG. 3 corresponds to data view 1
- the DAG configuration shown in FIG. 4 corresponds to data view 2
- the DAG configuration shown in FIG. 5 corresponds to data view 3.
- the data calculation request includes: the identifiers 1, 2, and 3 of the target data view, and the input parameters of the corresponding first-level DS nodes are all user IDs.
- S2 Determine the input parameters of the first layer DS node and the first layer DS node of each target data view according to the preset DAG configuration corresponding to the data view.
- the first layer DS node of target data view 1 is DS4, and the corresponding input parameter is user ID; the first layer DS node of target data view 2 is DS1, and the corresponding input parameter is user ID; the first layer of target data view 3 The DS node is DS1, and the corresponding input parameter is the user ID.
- S3 According to each first-level DS node and its input parameters, determine a number of first-level target DS nodes and their input parameters, where the first DS node and the second DS node do not exist among the first-level target DS nodes.
- a DS node is the same as the second DS node, and the input parameters of the first DS node and the second DS node are the same.
- the first-level target DS nodes are DS1 and DS4, and the corresponding input parameters are all user IDs.
- S4 Execute each first-level target DS node according to the input parameters of each first-level target DS node.
- S4 specifically includes: invoking the TR service interface; providing the user ID to the TR service interface so that the TR service interface can obtain data that matches the user ID.
- S4 specifically includes: filtering out data matching the user ID from the offline database.
- S5 Determine the execution result corresponding to each target data view according to the execution result of each first-level target DS node and the DAG configuration corresponding to each target data view.
- the execution result corresponding to target data view 1 is the execution result of DS4, and the execution result corresponding to target data view 2 and target data view 3 is the execution result of DS1.
- S6 Perform data calculation according to the execution result and DAG configuration corresponding to each target data view to obtain the data calculation result of the first layer of each target data view, wherein the data calculation corresponding to different target data views is executed serially.
- target data view 1 when DS4 obtains data matching its input parameters within the preset execution time range, data calculation is performed according to the data and the DAG configuration corresponding to target data view 1.
- data calculation can be data filtering, data verification, and so on.
- the first-level data calculation of the target data view 1 After the first-level data calculation of the target data view 1 is completed, the first-level data calculation of the target data view 2 and the target data view 3 are performed in sequence.
- S7 Determine the input parameters of the second layer DS node and the second layer DS node of each target data view according to the preset DAG configuration corresponding to the data view.
- the second layer DS node of target data view 1 is DS2, and the corresponding input parameter is the data calculation result of the first layer;
- the second layer DS node of target data view 2 is DS2, and the corresponding input parameter is the first layer Data calculation result;
- the second layer DS node of the target data view 3 is DS3, and the corresponding input parameter is the data calculation result of the first layer.
- each second-level DS node and its input parameters determine a number of second-level target DS nodes and their input parameters.
- the first DS node and the second DS node do not exist.
- a DS node is the same as the second DS node, and the input parameters of the first DS node and the second DS node are the same.
- the target DS nodes of the second layer are DS2 and DS3, and the corresponding input parameters are the data calculation results of the upper layer.
- S4 specifically includes: invoking the TR service interface; providing the data calculation result of the first layer to the TR service interface, so that the TR service interface can obtain data from the first layer The data that matches the calculation result.
- S4 specifically includes: filtering out data matching the data calculation result of the first layer from the offline database.
- S10 Determine the execution result corresponding to each target data view according to the execution result of each second-level target DS node and the DAG configuration corresponding to each target data view.
- the execution result corresponding to target data view 1 and target data view 2 is the execution result of DS2, and the execution result corresponding to target data view 3 is the execution result of DS3.
- S6 Perform data calculation according to the execution result and DAG configuration corresponding to each target data view to obtain the data calculation result of the second layer of each target data view, wherein the data calculation corresponding to different target data views is executed serially.
- target data view 1 when DS2 obtains data that matches the data calculation result of the first layer within the preset execution time range, data calculation is performed according to the data and the DAG configuration corresponding to target data view 1.
- data calculation can be data deduplication, data verification, etc.
- the second-level data calculations of the target data view 2 and the target data view 3 are sequentially performed.
- a data calculation engine includes:
- the receiving unit 601 is configured to receive a data calculation request, where the data calculation request includes: identifiers of several target data views;
- the determining unit 602 is configured to determine the input parameters of the current layer DS node and the current layer DS node of each target data view according to a preset directed acyclic graph DAG configuration corresponding to the data view;
- the merging unit 603 is configured to determine a number of current layer target DS nodes and their input parameters according to each current layer DS node and its input parameters, where the first DS node and the second DS node do not exist among the current layer target DS nodes, The first DS node is the same as the second DS node, and the input parameters of the first DS node and the second DS node are the same;
- the execution unit 604 is configured to execute each current-layer target DS node according to the input parameters of each current-layer target DS node;
- the calculation unit 605 is configured to determine the current layer data calculation result of each target data view according to the execution result of each current layer target DS node and the DAG configuration corresponding to each target data view.
- the calculation unit 605 is configured to determine the execution result corresponding to each target data view according to the execution result of each current layer target DS node and the DAG configuration corresponding to each target data view; The corresponding execution result and DAG configuration perform data calculation to obtain the data calculation result of the current layer of each target data view, wherein the data calculation corresponding to different target data views is executed serially.
- the calculation unit 605 is configured to, when the current layer target DS node corresponding to the target data view obtains data matching its input parameters within a preset execution time range, according to the data and the target data view The corresponding DAG configuration performs data calculation.
- the calculation unit 605 is further configured to, when the current layer target DS node corresponding to the target data view does not obtain data that matches its input parameters within the execution time range, according to the current data view corresponding to the target data view. Re-execute the current layer target DS node corresponding to the target data view to the input parameters of the layer target DS node.
- the current layer target DS node corresponding to the target data view obtains data that matches its input parameters within the execution time range, according to the target data Data calculation is performed on the DAG configuration corresponding to the view.
- the execution unit 604 when the environment is an online environment, the execution unit 604 is used to call the TR service interface; provide the input parameters of the target DS node of the current layer to the TR service interface, so that the TR service interface obtains and The data that matches the input parameters of the target DS node of the current layer.
- the execution unit 604 when the environment is an offline environment, is configured to filter out data matching the input parameters of the target DS node of the current layer from the offline database.
- the embodiment of the application provides a data computing device, including a processor and a memory;
- the memory is used to store execution instructions
- the processor is used to execute the execution instructions stored in the memory to implement the method of any of the foregoing embodiments.
- a Programmable Logic Device (such as a Field Programmable Gate Array (FPGA)) is such an integrated circuit whose logic function is determined by the user's programming of the device.
- HDL Hardware Description Language
- the controller can be implemented in any suitable manner.
- the controller can take the form of, for example, a microprocessor or a processor and a computer-readable medium storing computer-readable program codes (such as software or firmware) executable by the (micro)processor. , Logic gates, switches, application specific integrated circuits (ASICs), programmable logic controllers and embedded microcontrollers.
- controllers include but are not limited to the following microcontrollers: ARC625D, Atmel AT91SAM, Microchip PIC18F26K20 and Silicon Labs C8051F320, the memory controller can also be implemented as a part of the memory control logic.
- controller in addition to implementing the controller in a purely computer-readable program code manner, it is entirely possible to program the method steps to make the controller use logic gates, switches, application specific integrated circuits, programmable logic controllers and embedded The same function can be realized in the form of a microcontroller, etc. Therefore, such a controller can be regarded as a hardware component, and the devices included in it for implementing various functions can also be regarded as a structure within the hardware component. Or even, the device for realizing various functions can be regarded as both a software module for realizing the method and a structure within a hardware component.
- a typical implementation device is a computer.
- the computer may be, for example, a personal computer, a laptop computer, a cell phone, a camera phone, a smart phone, a personal digital assistant, a media player, a navigation device, an email device, a game console, a tablet computer, a wearable device, or Any combination of these devices.
- the embodiments of the present application can be provided as methods, systems, or computer program products. Therefore, the present application may adopt the form of a complete hardware embodiment, a complete software embodiment, or an embodiment combining software and hardware. Moreover, this application may adopt the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program codes.
- a computer-usable storage media including but not limited to disk storage, CD-ROM, optical storage, etc.
- These computer program instructions can also be stored in a computer-readable memory that can guide a computer or other programmable data processing equipment to work in a specific manner, so that the instructions stored in the computer-readable memory produce an article of manufacture including the instruction device.
- the device implements the functions specified in one process or multiple processes in the flowchart and/or one block or multiple blocks in the block diagram.
- These computer program instructions can also be loaded on a computer or other programmable data processing equipment, so that a series of operation steps are executed on the computer or other programmable equipment to produce computer-implemented processing, so as to execute on the computer or other programmable equipment.
- the instructions provide steps for implementing functions specified in a flow or multiple flows in the flowchart and/or a block or multiple blocks in the block diagram.
- the computing device includes one or more processors (CPU), input/output interfaces, network interfaces, and memory.
- processors CPU
- input/output interfaces network interfaces
- memory volatile and non-volatile memory
- the memory may include non-permanent memory in computer readable media, random access memory (RAM) and/or non-volatile memory, such as read-only memory (ROM) or flash memory (flash RAM). Memory is an example of computer readable media.
- RAM random access memory
- ROM read-only memory
- flash RAM flash memory
- Computer-readable media include permanent and non-permanent, removable and non-removable media, and information storage can be realized by any method or technology.
- Information can be computer-readable instructions, data structures, program modules, or other data.
- Examples of computer storage media include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, CD-ROM, digital versatile disc (DVD) or other optical storage, Magnetic cassettes, magnetic tape magnetic disk storage or other magnetic storage devices or any other non-transmission media can be used to store information that can be accessed by computing devices. According to the definition in this article, computer-readable media does not include transitory media, such as modulated data signals and carrier waves.
- program modules include routines, programs, objects, components, data structures, etc. that perform specific tasks or implement specific abstract data types.
- This application can also be practiced in distributed computing environments. In these distributed computing environments, remote processing devices connected through a communication network perform tasks.
- program modules can be located in local and remote computer storage media including storage devices.
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
一种数据计算方法及引擎,其中,该方法包括:接收数据计算请求,其中,数据计算请求中包括:若干目标数据视图的标识(101);根据预设的与数据视图相对应的DAG配置,确定各个目标数据视图的当前层DS节点和当前层DS节点的入参(102);根据各个当前层DS节点及其入参,确定若干当前层目标DS节点及其入参,其中,若干当前层目标DS节点中不存在第一DS节点和第二DS节点,第一DS节点与第二DS节点相同、且第一DS节点的入参与第二DS节点的入参相同(103);根据各个当前层目标DS节点的入参,执行各个当前层目标DS节点(104);根据各个当前层目标DS节点的执行结果和各个目标数据视图对应的DAG配置,确定各个目标数据视图的当前层的数据计算结果(105)。
Description
本申请涉及计算机技术领域,特别涉及一种数据计算方法及引擎。
在业务系统的运行过程中,会产生大量的数据。在实际应用场景中,开发人员一般根据自身的需求开发相应的脚本,并利用该脚本对业务系统产生的数据进行计算,数据计算结果可被用于分析用户的需求等。
例如,以下两个查询过程分别对应两个脚本,一是查询用户1的常用IP,然后查询该IP使用的常用设备;二是查询用户1的常用IP,然后查询该IP的最近使用时间。通过完整地执行该脚本来实现查询目的。
上述两个查询过程中都存在“查询用户1的常用IP”。由于数据查询实现的全过程包装在一整段代码片段中,所以,在实际查询过程中,需要对“用户1的常用IP”这一数据进行2次查询。而重复查询同一数据,将增加业务系统的IO消耗。
发明内容
鉴于此,本申请实施例提供了一种数据计算方法及引擎,能够降低业务系统的IO消耗。
第一方面,本申请实施例提供了一种数据计算方法,包括:
接收数据计算请求,其中,所述数据计算请求中包括:若干目标数据视图的标识;
根据预设的与数据视图相对应的DAG(Directed Acyclic Graph,有向无环图)配置,确定各个所述目标数据视图的当前层DS(Data Source,数据源)节点和所述当前层DS节点的入参;
根据各个所述当前层DS节点及其入参,确定若干当前层目标DS节点及其入参,其中,所述若干当前层目标DS节点中不存在第一DS节点和第二DS节点,所述第一DS节点与第二DS节点相同、且所述第一DS节点的入参与所述第二DS节点的入参相同;
根据各个所述当前层目标DS节点的入参,执行各个所述当前层目标DS节点;
根据各个所述当前层目标DS节点的执行结果和各个所述目标数据视图对应的DAG配置,确定各个所述目标数据视图的当前层的数据计算结果。
第二方面,本申请实施例提供了一种数据计算引擎,包括:
接收单元,用于接收数据计算请求,其中,所述数据计算请求中包括:若干目标数据视图的标识;
确定单元,用于根据预设的与数据视图相对应的DAG配置,确定各个所述目标数据视图的当前层DS节点和所述当前层DS节点的入参;
合并单元,用于根据各个所述当前层DS节点及其入参,确定若干当前层目标DS节点及其入参,其中,所述若干当前层目标DS节点中不存在第一DS节点和第二DS节点,所述第一DS节点与第二DS节点相同、且所述第一DS节点的入参与所述第二DS节点的入参相同;
执行单元,用于根据各个所述当前层目标DS节点的入参,执行各个所述当前层目标DS节点;
计算单元,用于根据各个所述当前层目标DS节点的执行结果和各个所述目标数据视图对应的DAG配置,确定各个所述目标数据视图的当前层的数据计算结果。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:该方法将数据计算抽象为取数逻辑和数据加工逻辑,其中,取数逻辑通过DS节点(数据源层)实现,数据加工逻辑通过DAG配置(数据视图层)实现。当接收到数据计算请求时,该方法将根据DAG配置分层收集DS节点(IO节点),并执行去重后的DS节点,减少对业务系统的访问次数,降低业务系统的IO消耗。
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个实施例提供的一种数据计算方法的流程图;
图2是本申请一个实施例提供的一种DAG配置的结构示意图;
图3是本申请一个实施例提供的另一种DAG配置的结构示意图;
图4是本申请一个实施例提供的又一种DAG配置的结构示意图;
图5是本申请一个实施例提供的再一种DAG配置的结构示意图;
图6是本申请一个实施例提供的一种数据计算引擎的结构示意图。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例,基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
如图1所示,本申请实施例提供了一种数据计算方法,该方法可以包括以下步骤:
步骤101:接收数据计算请求,其中,数据计算请求中包括:若干目标数据视图的标识。
数据计算请求中还包括:各个目标数据视图的第一层DS节点的入参。一个数据计算请求可以针对一个或多个数据视图。
步骤102:根据预设的与数据视图相对应的DAG配置,确定各个目标数据视图的当前层DS节点和当前层DS节点的入参。
DAG配置为数据视图的表现形式,DAG为分层结构,为确定各层目标DS节点提供了便利。DAG配置中可以包括多层,对每层的处理均可以采用步骤102提供的方法。
在本申请实施例中,对第一层来说,DS节点的入参为数据计算请求中包括的数据视图的第一层DS节点的入参,对于除了第一层之外的其他层来说,DS节点的入参为上一层的数据计算结果。
如图2所示,是一种数据视图对应的DAG配置,该数据视图要实现的业务目的是:根据输入用户ID,获取该用户ID关联的常用IP,并根据这些IP列表获取曾经使用过这些IP进行登陆的账号总数。
该DAG配置包括两层,第一层DS节点对应的执行任务为“取用户常用IP列表”, 其入参为用户ID;第二层DS节点对应的执行任务为“该IP出现过的账号个数”,其入参为第一层的数据计算结果,最终得到的数据计算结果为“用户ID常用IP所能关联出的账号个数”。
需要说明的是,在DAG配置中,第一层DS节点和第二层DS节点分别位于DAG树的不同层,即每个数据视图本身存在多个待计算的层级。但是,从逻辑层面来说,第一层DS节点和第二层DS节点都属于数据源层。
步骤103:根据各个当前层DS节点及其入参,确定若干当前层目标DS节点及其入参,其中,若干当前层目标DS节点中不存在第一DS节点和第二DS节点,第一DS节点与第二DS节点相同、且第一DS节点的入参与第二DS节点的入参相同。
需要说明的是,第一DS节点和第二DS节点为若干当前层目标DS节点中重复的节点,即两个DS节点对应的执行任务相同,且对应的入参也相同。
当DAG配置中包括多层时,需要确定每一层的目标DS节点及其入参。现以图3-图5所示的三个DAG配置的第一层为例,对步骤103进行详细的说明。
三个DAG配置的第一层DS节点分别为:DS4、DS1、DS1,对应的入参皆为用户ID,由于图4中的DS1与图5中的DS1相同,且两个节点的入参皆为用户ID,则图4中的DS1可以与图5中的DS1合并执行,即第一层目标DS节点为DS4和DS1,对应的入参皆为用户ID。合并后得到的当前层目标DS节点的数量少于合并前的当前层DS节点的数量。
步骤104:根据各个当前层目标DS节点的入参,执行各个当前层目标DS节点。
由于在线业务系统和离线业务系统存在巨大的环境差异,导致数据计算逻辑需要被分开定义:即对同一数据需求(包含取数、数据加工等复杂的数据构造逻辑),需要根据环境不同,进行两次独立开发。这样开发代价高,人力成本高,并且很难做到真正的数据逻辑对等。
鉴于此,根据应用的环境不同,该方法分为以下两种情况:
情况1:所处环境为在线环境;
此时,步骤104具体包括:
A1:调用TR服务接口。
A2:将当前层目标DS节点的入参提供给TR服务接口,以使TR服务接口获取与 当前层目标DS节点的入参相匹配的数据。
情况2:所处环境为离线环境;
此时,步骤104具体包括:
从离线数据库中筛选出与当前层目标DS节点的入参相匹配的数据。
以图2所示的DAG配置为例,对于第一层DS节点,当所处环境为在线环境时,步骤104可以通过调用一个TR服务接口实现:return IpService.queryIpList(userId)。当所处环境为离线环境时,步骤104可以通过一段SQL语句实现:select ip from table1 where userId=“userId”。
对于第二层DS节点,当所处环境为在线环境时,步骤104可以通过调用一个TR服务接口实现:return IpService.queryUserIdCount(ipList)。当所处环境为离线环境时,步骤104可以通过一段SQL语句实现:select count(userId)from table1 where ip in ipList。
在本申请实施例中,该数据计算方法支持配置化的IO合并,能够最大限度的为各业务系统节省IO消耗。并且,该数据引擎支持一次配置,能够同时适用于在线、离线环境,可大大节省数据开发成本,并提高在线、离线数据的一致性。
虽然DS节点这部分需要在线和离线各自根据环境适配,但由于以下两个原因,使得这个过程简单可控,不会增加开发复杂度。
(1)DS节点仅包含最基本的取数逻辑,不存在复杂加工逻辑,离线和在线很好对齐。
(2)在数据计算场景中,基础数据逻辑往往是一个很小的集合。更多数据是通过处理和加工而衍生出来的。
需要说明的是,为了提高数据计算效率,在步骤104中,并发执行各个当前层目标DS节点。
步骤105:根据各个当前层目标DS节点的执行结果和各个目标数据视图对应的DAG配置,确定各个目标数据视图的当前层的数据计算结果。
步骤105具体包括:
B1:根据各个当前层目标DS节点的执行结果和各个目标数据视图对应的DAG配置,确定各个目标数据视图对应的执行结果。
根据目标数据视图的DAG配置可以确定各层DS节点,通过DS节点可以确定目标数据视图对应的目标DS节点,该目标DS节点的执行结果即为目标数据视图对应的执行结果。
目标数据视图对应的执行结果可以分为两种:一种是执行成功,即目标数据视图对应的当前层目标DS节点在预设的执行时间范围内得到与其入参相匹配的数据;另一种是执行失败,即目标数据视图对应的当前层目标DS节点在执行时间范围内未得到与其入参相匹配的数据。
B2:根据各个目标数据视图对应的执行结果及DAG配置进行数据计算,得到各个目标数据视图的当前层的数据计算结果,其中,不同目标数据视图对应的数据计算串行执行。
在本申请实施例中,通过预设的执行时间范围控制执行目标DS节点的时间,提高数据计算的效率。执行时间范围的存在能够避免一个目标数据视图的数据计算过程中止,不影响其他目标数据视图的数据计算过程的进行。如果在执行时间范围内有某个DS节点没算出来,则这个DS的计算过程放到后续DS参数准备过程中串行计算。
针对上述两种执行结果,根据各个目标数据视图对应的执行结果及DAG配置进行数据计算,具体分为以下两种情况:
(1)当目标数据视图对应的当前层目标DS节点在预设的执行时间范围内得到与其入参相匹配的数据时,根据数据和目标数据视图对应的DAG配置进行数据计算。
(2)当目标数据视图对应的当前层目标DS节点在执行时间范围内未得到与其入参相匹配的数据时,根据目标数据视图对应的当前层目标DS节点的入参,重新执行目标数据视图对应的当前层目标DS节点,当目标数据视图对应的当前层目标DS节点在执行时间范围内得到与其入参相匹配的数据时,根据目标数据视图对应的DAG配置进行数据计算。
当然,在实际应用场景中,当目标数据视图对应的当前层目标DS节点在执行时间范围内未得到与其入参相匹配的数据时,还可以终止目标数据视图的数据计算过程。需要说明的是,一个目标数据视图对应的数据计算过程终止,并不影响其他目标数据视图对应的数据计算过程。
该方法将数据计算抽象为取数逻辑和数据加工逻辑,其中,取数逻辑通过DS节点(数据源层)实现,数据加工逻辑通过DAG配置(数据视图层)实现。当接收到数据 计算请求时,该方法将根据DAG配置分层收集DS节点(IO节点),并执行去重后的DS节点,减少对业务系统的访问次数,降低业务系统的IO消耗。
本申请实施例以图3-图5所示的三个数据视图对应的DAG配置为例,对数据计算方法进行详细的说明,该方法包括:
S1:接收数据计算请求,其中,数据计算请求中包括:若干目标数据视图的标识和各个目标数据视图的第一层DS节点的入参。
假设图3所示的DAG配置对应数据视图1,图4所示的DAG配置对应数据视图2,图5所示的DAG配置对应数据视图3。
数据计算请求中包括:目标数据视图的标识1、2、3,对应的第一层DS节点的入参皆为用户ID。
S2:根据预设的与数据视图相对应的DAG配置,确定各个目标数据视图的第一层DS节点和第一层DS节点的入参。
目标数据视图1的第一层DS节点为DS4,对应的入参为用户ID;目标数据视图2的第一层DS节点为DS1,对应的入参为用户ID;目标数据视图3的第一层DS节点为DS1,对应的入参为用户ID。
S3:根据各个第一层DS节点及其入参,确定若干第一层目标DS节点及其入参,其中,若干第一层目标DS节点中不存在第一DS节点和第二DS节点,第一DS节点与第二DS节点相同、且第一DS节点的入参与第二DS节点的入参相同。
第一层目标DS节点为DS1和DS4,对应的入参皆为用户ID。
S4:根据各个第一层目标DS节点的入参,执行各个第一层目标DS节点。
以目标数据视图1为例,当所处环境为在线环境时,S4具体包括:调用TR服务接口;将用户ID提供给TR服务接口,以使TR服务接口获取与用户ID相匹配的数据。
当所处环境为离线环境时,S4具体包括:从离线数据库中筛选出与用户ID相匹配的数据。
S5:根据各个第一层目标DS节点的执行结果和各个目标数据视图对应的DAG配置,确定各个目标数据视图对应的执行结果。
目标数据视图1对应的执行结果为DS4的执行结果,目标数据视图2、目标数据视图3对应的执行结果为DS1的执行结果。
S6:根据各个目标数据视图对应的执行结果及DAG配置进行数据计算,得到各个目标数据视图的第一层的数据计算结果,其中,不同目标数据视图对应的数据计算串行执行。
对上述三个目标数据视图进行串行计算,但是目标数据视图的具体计算顺序并不做限定,例如,按照目标数据视图1、2、3的顺序,分别计算三个目标数据视图第一层的数据计算结果。
以目标数据视图1为例,当DS4在预设的执行时间范围内得到与其入参相匹配的数据时,根据数据和目标数据视图1对应的DAG配置进行数据计算。其中,数据计算可以为数据过滤(filter)、数据校验等。
当DS4在执行时间范围内未得到与用户ID相匹配的数据时,根据目标数据视图1对应的用户ID,重新执行目标数据视图1对应的DS4,当目标数据视图1对应的DS4在执行时间范围内得到与用户ID相匹配的数据时,根据目标数据视图1对应的DAG配置进行数据计算。
在目标数据视图1的第一层数据计算完成后,依次进行目标数据视图2和目标数据视图3的第一层数据计算。
S7:根据预设的与数据视图相对应的DAG配置,确定各个目标数据视图的第二层DS节点和第二层DS节点的入参。
目标数据视图1的第二层DS节点为DS2,对应的入参为其第一层的数据计算结果;目标数据视图2的第二层DS节点为DS2,对应的入参为其第一层的数据计算结果;目标数据视图3的第二层DS节点为DS3,对应的入参为其第一层的数据计算结果。
S8:根据各个第二层DS节点及其入参,确定若干第二层目标DS节点及其入参,其中,若干第二层目标DS节点中不存在第一DS节点和第二DS节点,第一DS节点与第二DS节点相同、且第一DS节点的入参与第二DS节点的入参相同。
第二层目标DS节点为DS2和DS3,对应的入参皆为上一层的数据计算结果。
S9:根据各个第二层目标DS节点的入参,执行各个第二层目标DS节点。
以目标数据视图1为例,当所处环境为在线环境时,S4具体包括:调用TR服务接口;将第一层的数据计算结果提供给TR服务接口,以使TR服务接口获取与第一层的数据计算结果相匹配的数据。
当所处环境为离线环境时,S4具体包括:从离线数据库中筛选出与第一层的数据计算结果相匹配的数据。
S10:根据各个第二层目标DS节点的执行结果和各个目标数据视图对应的DAG配置,确定各个目标数据视图对应的执行结果。
目标数据视图1和目标数据视图2对应的执行结果为DS2的执行结果,目标数据视图3对应的执行结果为DS3的执行结果。
S6:根据各个目标数据视图对应的执行结果及DAG配置进行数据计算,得到各个目标数据视图的第二层的数据计算结果,其中,不同目标数据视图对应的数据计算串行执行。
按照目标数据视图1、2、3的顺序,分别计算三个目标数据视图第二层的数据计算结果。
以目标数据视图1为例,当DS2在预设的执行时间范围内得到与第一层的数据计算结果相匹配的数据时,根据数据和目标数据视图1对应的DAG配置进行数据计算。其中,数据计算可以为数据去重、数据校验等。
当DS2在执行时间范围内未得到与第一层的数据计算结果相匹配的数据时,根据目标数据视图1对应的第一层的数据计算结果,重新执行目标数据视图1对应的DS2,当目标数据视图1对应的DS2在执行时间范围内得到与第一层的数据计算结果相匹配的数据时,根据目标数据视图1对应的DAG配置进行数据计算。
在目标数据视图1的第二层数据计算完成后,依次进行目标数据视图2和目标数据视图3的第二层数据计算。
如图6所示,一种数据计算引擎,包括:
接收单元601,用于接收数据计算请求,其中,数据计算请求中包括:若干目标数据视图的标识;
确定单元602,用于根据预设的与数据视图相对应的有向无环图DAG配置,确定各个目标数据视图的当前层DS节点和当前层DS节点的入参;
合并单元603,用于根据各个当前层DS节点及其入参,确定若干当前层目标DS节点及其入参,其中,若干当前层目标DS节点中不存在第一DS节点和第二DS节点,第一DS节点与第二DS节点相同、且第一DS节点的入参与第二DS节点的入参相同;
执行单元604,用于根据各个当前层目标DS节点的入参,执行各个当前层目标DS节点;
计算单元605,用于根据各个当前层目标DS节点的执行结果和各个目标数据视图对应的DAG配置,确定各个目标数据视图的当前层的数据计算结果。
在本申请的一个实施例中,计算单元605,用于根据各个当前层目标DS节点的执行结果和各个目标数据视图对应的DAG配置,确定各个目标数据视图对应的执行结果;根据各个目标数据视图对应的执行结果及DAG配置进行数据计算,得到各个目标数据视图的当前层的数据计算结果,其中,不同目标数据视图对应的数据计算串行执行。
在本申请的一个实施例中,计算单元605,用于当目标数据视图对应的当前层目标DS节点在预设的执行时间范围内得到与其入参相匹配的数据时,根据数据和目标数据视图对应的DAG配置进行数据计算。
在本申请的一个实施例中,计算单元605,进一步用于当目标数据视图对应的当前层目标DS节点在执行时间范围内未得到与其入参相匹配的数据时,根据目标数据视图对应的当前层目标DS节点的入参,重新执行目标数据视图对应的当前层目标DS节点,当目标数据视图对应的当前层目标DS节点在执行时间范围内得到与其入参相匹配的数据时,根据目标数据视图对应的DAG配置进行数据计算。
在本申请的一个实施例中,当所处环境为在线环境时,执行单元604,用于调用TR服务接口;将当前层目标DS节点的入参提供给TR服务接口,以使TR服务接口获取与当前层目标DS节点的入参相匹配的数据。
在本申请的一个实施例中,当所处环境为离线环境时,执行单元604,用于从离线数据库中筛选出与当前层目标DS节点的入参相匹配的数据。
本申请实施例提供了一种数据计算设备,包括:处理器和存储器;
存储器用于存储执行指令,处理器用于执行存储器存储的执行指令以实现上述任一实施例的方法。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如, 可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable Gate Array,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware Description Language)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(Ruby Hardware Description Language)等,目前最普遍使用的是VHDL(Very-High-Speed Integrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数 据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (12)
- 一种数据计算方法,包括:接收数据计算请求,其中,所述数据计算请求中包括:若干目标数据视图的标识;根据预设的与数据视图相对应的有向无环图DAG配置,确定各个所述目标数据视图的当前层数据源DS节点和所述当前层DS节点的入参;根据各个所述当前层DS节点及其入参,确定若干当前层目标DS节点及其入参,其中,所述若干当前层目标DS节点中不存在第一DS节点和第二DS节点,所述第一DS节点与第二DS节点相同、且所述第一DS节点的入参与所述第二DS节点的入参相同;根据各个所述当前层目标DS节点的入参,执行各个所述当前层目标DS节点;根据各个所述当前层目标DS节点的执行结果和各个所述目标数据视图对应的DAG配置,确定各个所述目标数据视图的当前层的数据计算结果。
- 如权利要求1所述的数据计算方法,所述根据各个所述当前层目标DS节点的执行结果和各个所述目标数据视图对应的DAG配置,确定各个所述目标数据视图的当前层的数据计算结果,包括:根据各个所述当前层目标DS节点的执行结果和各个所述目标数据视图对应的DAG配置,确定各个所述目标数据视图对应的执行结果;根据各个所述目标数据视图对应的执行结果及DAG配置进行数据计算,得到各个所述目标数据视图的当前层的数据计算结果,其中,不同目标数据视图对应的数据计算串行执行。
- 如权利要求2所述的数据计算方法,所述根据各个所述目标数据视图对应的执行结果及DAG配置进行数据计算,包括:当所述目标数据视图对应的当前层目标DS节点在预设的执行时间范围内得到与其入参相匹配的数据时,根据所述数据和所述目标数据视图对应的DAG配置进行数据计算。
- 如权利要求3所述的数据计算方法,进一步包括:当所述目标数据视图对应的当前层目标DS节点在所述执行时间范围内未得到与其入参相匹配的数据时,根据所述目标数据视图对应的当前层目标DS节点的入参,重新执行所述目标数据视图对应的当前层目标DS节点;当所述目标数据视图对应的当前层目标DS节点在所述执行时间范围内得到与其入 参相匹配的数据时,根据所述目标数据视图对应的DAG配置进行数据计算。
- 如权利要求1所述的数据计算方法,当所处环境为在线环境时,所述根据各个所述当前层目标DS节点的入参,执行各个所述当前层目标DS节点,包括:调用TR服务接口;将所述当前层目标DS节点的入参提供给所述TR服务接口,以使所述TR服务接口获取与所述当前层目标DS节点的入参相匹配的数据。
- 如权利要求1-5中任一所述的数据计算方法,当所处环境为离线环境时,所述根据各个所述当前层目标DS节点的入参,执行各个所述当前层目标DS节点,包括:从离线数据库中筛选出与所述当前层目标DS节点的入参相匹配的数据。
- 一种数据计算引擎,包括:接收单元,用于接收数据计算请求,其中,所述数据计算请求中包括:若干目标数据视图的标识;确定单元,用于根据预设的与数据视图相对应的有向无环图DAG配置,确定各个所述目标数据视图的当前层数据源DS节点和所述当前层DS节点的入参;合并单元,用于根据各个所述当前层DS节点及其入参,确定若干当前层目标DS节点及其入参,其中,所述若干当前层目标DS节点中不存在第一DS节点和第二DS节点,所述第一DS节点与第二DS节点相同、且所述第一DS节点的入参与所述第二DS节点的入参相同;执行单元,用于根据各个所述当前层目标DS节点的入参,执行各个所述当前层目标DS节点;计算单元,用于根据各个所述当前层目标DS节点的执行结果和各个所述目标数据视图对应的DAG配置,确定各个所述目标数据视图的当前层的数据计算结果。
- 如权利要求7所述的数据计算引擎,所述计算单元,用于根据各个所述当前层目标DS节点的执行结果和各个所述目标数据视图对应的DAG配置,确定各个所述目标数据视图对应的执行结果;根据各个所述目标数据视图对应的执行结果及DAG配置进行数据计算,得到各个所述目标数据视图的当前层的数据计算结果,其中,不同目标数据视图对应的数据计算串行执行。
- 如权利要求8所述的数据计算引擎,所述计算单元,用于当所述目标数据视图对应的当前层目标DS节点在预设的执行时间范围内得到与其入参相匹配的数据时,根据所述数据和所述目标数据视图对应的DAG配置进行数据计算。
- 如权利要求9所述的数据计算引擎,所述计算单元,进一步用于当所述目标数据视图对应的当前层目标DS节点在所述执行时间范围内未得到与其入参相匹配的数据时,根据所述目标数据视图对应的当前层目标DS节点的入参,重新执行所述目标数据视图对应的当前层目标DS节点,当所述目标数据视图对应的当前层目标DS节点在所述执行时间范围内得到与其入参相匹配的数据时,根据所述目标数据视图对应的DAG配置进行数据计算。
- 如权利要求7所述的数据计算引擎,当所处环境为在线环境时,所述执行单元,用于调用TR服务接口;将所述当前层目标DS节点的入参提供给所述TR服务接口,以使所述TR服务接口获取与所述当前层目标DS节点的入参相匹配的数据。
- 如权利要求7-11中任一所述的数据计算引擎,当所处环境为离线环境时,所述执行单元,用于从离线数据库中筛选出与所述当前层目标DS节点的入参相匹配的数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910125629.1 | 2019-02-19 | ||
CN201910125629.1A CN110020004B (zh) | 2019-02-19 | 2019-02-19 | 一种数据计算方法及引擎 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2020168901A1 true WO2020168901A1 (zh) | 2020-08-27 |
Family
ID=67189027
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2020/073843 WO2020168901A1 (zh) | 2019-02-19 | 2020-01-22 | 一种数据计算方法及引擎 |
Country Status (3)
Country | Link |
---|---|
CN (1) | CN110020004B (zh) |
TW (1) | TWI723535B (zh) |
WO (1) | WO2020168901A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110020004B (zh) * | 2019-02-19 | 2020-08-07 | 阿里巴巴集团控股有限公司 | 一种数据计算方法及引擎 |
CN110781180B (zh) * | 2019-09-05 | 2022-08-30 | 腾讯科技(深圳)有限公司 | 一种数据筛选方法和数据筛选装置 |
TWI814481B (zh) * | 2021-07-20 | 2023-09-01 | 奧義智慧科技股份有限公司 | 用於輔助入侵偵測的資安事件診斷系統與相關的電腦程式產品 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160042033A1 (en) * | 2014-08-07 | 2016-02-11 | Gruter, Inc. | Query execution apparatus and method, and system for processing data employing the same |
CN105677752A (zh) * | 2015-12-30 | 2016-06-15 | 深圳先进技术研究院 | 一种流式计算和批处理计算相结合处理系统及方法 |
CN106960004A (zh) * | 2017-02-15 | 2017-07-18 | 浙江大学 | 一种多维数据的分析方法 |
CN107133257A (zh) * | 2017-03-21 | 2017-09-05 | 华南师范大学 | 一种基于中心连通子图的相似实体识别方法及系统 |
CN109063056A (zh) * | 2018-07-20 | 2018-12-21 | 阿里巴巴集团控股有限公司 | 一种数据查询方法、系统及终端设备 |
CN110020004A (zh) * | 2019-02-19 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 一种数据计算方法及引擎 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8260768B2 (en) * | 2010-01-29 | 2012-09-04 | Hewlett-Packard Development Company, L.P. | Transformation of directed acyclic graph query plans to linear query plans |
US20120158768A1 (en) * | 2010-12-15 | 2012-06-21 | Microsoft Corporation | Decomposing and merging regular expressions |
CN102541875B (zh) * | 2010-12-16 | 2014-04-16 | 北京大学 | 有向无环图的关系型节点数据的存取方法、装置及系统 |
CN102571752B (zh) * | 2011-12-03 | 2014-12-24 | 山东大学 | 基于服务关联索引图的QoS感知Top-k服务组合系统 |
CN103123652A (zh) * | 2013-03-14 | 2013-05-29 | 曙光信息产业(北京)有限公司 | 数据查询方法和集群数据库系统 |
CN103150219B (zh) * | 2013-04-03 | 2016-08-10 | 重庆大学 | 在异构资源系统上避免死锁的快速任务分配方法 |
CN106815027B (zh) * | 2017-01-22 | 2020-06-09 | 山东鲁能软件技术有限公司 | 一种用于电网多维业务复合计算的高弹性计算平台 |
-
2019
- 2019-02-19 CN CN201910125629.1A patent/CN110020004B/zh active Active
- 2019-09-10 TW TW108132569A patent/TWI723535B/zh active
-
2020
- 2020-01-22 WO PCT/CN2020/073843 patent/WO2020168901A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160042033A1 (en) * | 2014-08-07 | 2016-02-11 | Gruter, Inc. | Query execution apparatus and method, and system for processing data employing the same |
CN105677752A (zh) * | 2015-12-30 | 2016-06-15 | 深圳先进技术研究院 | 一种流式计算和批处理计算相结合处理系统及方法 |
CN106960004A (zh) * | 2017-02-15 | 2017-07-18 | 浙江大学 | 一种多维数据的分析方法 |
CN107133257A (zh) * | 2017-03-21 | 2017-09-05 | 华南师范大学 | 一种基于中心连通子图的相似实体识别方法及系统 |
CN109063056A (zh) * | 2018-07-20 | 2018-12-21 | 阿里巴巴集团控股有限公司 | 一种数据查询方法、系统及终端设备 |
CN110020004A (zh) * | 2019-02-19 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 一种数据计算方法及引擎 |
Also Published As
Publication number | Publication date |
---|---|
TWI723535B (zh) | 2021-04-01 |
CN110020004A (zh) | 2019-07-16 |
TW202032395A (zh) | 2020-09-01 |
CN110020004B (zh) | 2020-08-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107450972B (zh) | 一种调度方法、装置以及电子设备 | |
TWI718375B (zh) | 基於區塊鏈的資料處理方法及設備 | |
WO2020168901A1 (zh) | 一种数据计算方法及引擎 | |
TWI680656B (zh) | 基於區塊鏈的資料處理方法及設備 | |
WO2018214897A1 (zh) | 一种数据库状态确定方法、一致性验证方法及装置 | |
WO2018177235A1 (zh) | 一种区块链共识方法及装置 | |
TWI709931B (zh) | 一種指標異常檢測方法、裝置以及電子設備 | |
WO2021000570A1 (zh) | 模型加载方法及系统、控制节点及执行节点 | |
WO2018045753A1 (zh) | 用于分布式图计算的方法与设备 | |
TWI679581B (zh) | 任務執行的方法及裝置 | |
CA3023991A1 (en) | Visual workflow model | |
WO2020199709A1 (zh) | 一种刷新级联缓存的方法、系统及设备 | |
TW201944314A (zh) | 配置支付流程、執行支付流程的方法、裝置及設備 | |
WO2016004814A1 (zh) | 一种业务可视化方法及系统 | |
CN108415695A (zh) | 一种基于可视化组件的数据处理方法、装置和设备 | |
WO2023151436A1 (zh) | Sql语句风险检测 | |
CN112181378B (zh) | 业务流程的实现方法及装置 | |
CN110555038A (zh) | 一种数据处理系统、方法及装置 | |
US10803091B2 (en) | Method and device for determining a category directory, and an automatic classification method and device | |
CN109656946B (zh) | 一种多表关联查询方法、装置及设备 | |
US11176161B2 (en) | Data processing method, apparatus, and device | |
CN117033527B (zh) | 一种知识图谱的构建方法、装置、存储介质及电子设备 | |
CN104731800A (zh) | 数据分析装置 | |
TW201923620A (zh) | 基於叢集的詞向量處理方法、裝置以及設備 | |
CN116432185B (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: 20759038 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: 20759038 Country of ref document: EP Kind code of ref document: A1 |