CN111061763B - Method and device for generating rule execution plan of rule engine - Google Patents

Method and device for generating rule execution plan of rule engine Download PDF

Info

Publication number
CN111061763B
CN111061763B CN201911109250.8A CN201911109250A CN111061763B CN 111061763 B CN111061763 B CN 111061763B CN 201911109250 A CN201911109250 A CN 201911109250A CN 111061763 B CN111061763 B CN 111061763B
Authority
CN
China
Prior art keywords
rule
execution
unit
overhead
tree
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201911109250.8A
Other languages
Chinese (zh)
Other versions
CN111061763A (en
Inventor
成强
吉亚霖
贾茜
伍连海
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alipay Hangzhou Information Technology Co Ltd
Original Assignee
Alipay Hangzhou Information Technology Co Ltd
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 Alipay Hangzhou Information Technology Co Ltd filed Critical Alipay Hangzhou Information Technology Co Ltd
Priority to CN201911109250.8A priority Critical patent/CN111061763B/en
Publication of CN111061763A publication Critical patent/CN111061763A/en
Application granted granted Critical
Publication of CN111061763B publication Critical patent/CN111061763B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24564Applying rules; Deductive queries
    • 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

Abstract

Embodiments of the present description provide methods and apparatus for generating a rule execution plan for a rule engine. In the method, hierarchical analysis is carried out on a rule tree based on a logical operation relation in the rule tree so as to obtain hierarchical structure information of the rule tree, wherein the hierarchical structure information comprises a logical composition relation of each layer of hierarchical structure and a hierarchical relation of each layer of hierarchical structure; determining the execution overhead of each rule unit; determining the execution sequence of each rule unit based on the execution overhead of each rule unit and the hierarchical structure information of the rule tree; and generating a rule execution plan of the rule according to the determined execution sequence of each rule unit.

Description

Method and device for generating rule execution plan of rule engine
Technical Field
Embodiments of the present specification relate generally to the field of computers and, more particularly, relate to a method and apparatus for generating a rule execution plan for a rule engine.
Background
In data security kiosks, rules engines are required to conduct online traffic, e.g., to identify risks in traffic data. The execution efficiency of the rule engine directly affects the processing efficiency of the online service.
A rule in a rule engine may generally be subdivided into a plurality of rule units, each rule unit being an atomic node in the rule, the rule units being not further subdivided, and the plurality of rule units forming the rule via an and, or, non-logical operation. Each rule engine typically has a rule execution plan that specifies the order of execution of the plurality of rule units in the rule engine.
When the rule engine executes, each rule unit is scheduled to execute according to the execution sequence in the rule execution plan, and each scheduled rule unit loads association data from one or more external data sources for association analysis. Then, the execution results of the plurality of rule units are logically operated according to the operation logic specified in the rule to obtain a rule engine processing result.
The transactions to be processed and the data sources accessed are different for each rule unit, such that the computational overhead and I/O overhead may be different for each rule unit. The rule execution plan of the rule engine determines the execution order of the individual rule units, whereby the execution efficiency of the rule engine depends on the efficiency of the rule execution plan. How to make the rule execution plan of the generated rule engine efficient becomes a problem to be solved.
Disclosure of Invention
In view of the above, embodiments of the present specification provide a rule execution plan generating method, apparatus, and rule execution system for generating a rule engine. By using the method and the system, a high-efficiency rule execution plan can be generated.
According to an aspect of embodiments of the present specification, there is provided a method for generating a rule execution plan of a rule engine, comprising: performing hierarchical analysis on the rule tree based on a logical operation relation in the rule tree to obtain hierarchical structure information of the rule tree, wherein the hierarchical structure information comprises a logical composition relation of each layer of hierarchical structure and a hierarchical relation of each layer of hierarchical structure; determining the execution overhead of each rule unit; determining the execution sequence of each rule unit based on the execution overhead of each rule unit and the hierarchical structure information of the rule tree; and generating a rule execution plan of the rule according to the determined execution sequence of each rule unit.
Optionally, in one example of the above aspect, determining the execution order of the respective rule units based on the execution overhead of the respective rule units and the hierarchical structure information of the rule tree may include: determining the execution sequence of each rule unit in the belonging hierarchical structure based on the execution overhead of the rule unit; determining the execution sequence of each level of layered structure in the upper layered structure based on the execution overhead of each level of layered structure; and determining the execution sequence of each rule unit based on the execution sequence of the rule unit in the affiliated layered structure and the execution sequence of each layered structure of each level of the rule unit in the respective upper layered structure.
Alternatively, in one example of the above aspect, the execution overhead of each hierarchical structure may be determined according to the execution overhead and the logical relationship of each constituent element of the hierarchical structure.
Optionally, in one example of the above aspect, the execution overhead may include a computation overhead and/or an IO overhead.
Alternatively, in one example of the above aspect, the logical operation in the rule tree may include and logic, or logic and/or non-logic, where a lower level node of the logical node forms a same hierarchy as a lower level node of the logical node, or the lower level node of the logical node forms a lower level hierarchy of the hierarchy in which the logical node is located, and the lower level node of the non-logical node is layered in a hierarchy in which an upper level node of the non-logical node is located.
Optionally, in one example of the above aspect, before generating the rule execution plan of the rule, the method may further include: and carrying out logical operation conversion processing on each rule unit based on the logical operation relation in the rule tree.
Alternatively, in one example of the above aspect, the execution order of the constituent elements in the hierarchical structure constituted by the nodes of the lower layers of the logical nodes is exchangeable.
Optionally, in one example of the above aspect, the method may further include: the generated rule execution plan is sent to a rule execution device to execute the rule at the rule execution device according to the rule execution plan.
Optionally, in one example of the above aspect, the method may further include: a rule execution request is received, wherein the hierarchical analysis of the rule tree is initiated in response to receiving the rule execution request based on logical operational relationships in the rule tree.
According to another aspect of embodiments of the present specification, there is provided an apparatus for generating a rule execution plan of a rule engine, comprising: the hierarchical analysis unit is used for performing hierarchical analysis on the rule tree based on the logical operation relation in the rule tree to obtain hierarchical structure information of the rule tree, wherein the hierarchical structure information comprises the logical composition relation of each layer of hierarchical structure and the hierarchical relation of each layer of hierarchical structure; an overhead determining unit configured to determine an execution overhead of each rule unit; an execution order determining unit that determines an execution order of the respective rule units based on an execution overhead of the respective rule units and hierarchical structure information of the rule tree; and a plan generation unit that generates a rule execution plan for the rule according to the determined execution order of each rule unit.
Alternatively, in one example of the above aspect, for each rule unit, the execution order determining unit may determine, based on an execution overhead of each rule unit, an execution order of the rule unit in the hierarchical structure to which the rule unit belongs; determining the execution sequence of each level of layered structure in the upper layered structure based on the execution overhead of each level of layered structure; and determining the execution sequence of each rule unit based on the execution sequence of the rule unit in the affiliated layered structure and the execution sequence of each layered structure of each level of the rule unit in the respective upper layered structure.
Optionally, in one example of the above aspect, the overhead determining unit determines the execution overhead of the hierarchy according to the execution overhead and the logical relationship of the respective constituent elements of the hierarchy.
Optionally, in one example of the above aspect, the apparatus may further include: and the logic conversion unit is used for carrying out logic operation conversion processing on each rule unit based on the logic operation relation in the rule tree before the rule execution plan of the rule is generated.
Optionally, in one example of the above aspect, the apparatus may further include: and a plan transmitting unit that transmits the generated rule execution plan to a rule execution device to execute the rule according to the rule execution plan at the rule execution device.
Optionally, in one example of the above aspect, the apparatus may further include: and the request receiving unit is used for receiving a rule execution request, wherein the hierarchical analysis unit is used for initiating hierarchical analysis on the rule tree in response to receiving the rule execution request.
According to another aspect of embodiments of the present specification, there is provided a rule execution system including: means for generating a rule execution plan for a rule engine as described above; rule execution means.
According to another aspect of embodiments of the present specification, there is provided an electronic device including: one or more processors, and a memory coupled with the one or more processors, the memory storing instructions that, when executed by the one or more processors, cause the one or more processors to perform a method for generating a rule execution plan for a rule engine as described above.
According to another aspect of embodiments of the present description, there is provided a machine-readable storage medium storing executable instructions that, when executed, cause the machine to perform a method for generating a rule execution plan for a rule engine as described above.
Drawings
A further understanding of the nature and advantages of the embodiments herein may be realized by reference to the following drawings. In the drawings, similar components or features may have the same reference numerals.
FIG. 1 shows an architectural diagram of a rules engine;
FIG. 2 illustrates an example schematic diagram of generating a rule execution plan based on depth-first search;
FIG. 3 shows a block diagram of a rule enforcement system according to an embodiment of the present specification;
FIG. 4 illustrates a flow chart of a method for generating a rule execution plan for a rule engine according to an embodiment of the present specification;
FIG. 5 shows a flowchart of a process for determining an execution order of rule elements according to an embodiment of the present description;
FIG. 6 shows a schematic diagram of one example of a rule tree according to an embodiment of the present description;
FIG. 7 shows a schematic diagram of a rule unit execution order generated based on the rule tree of FIG. 6;
FIG. 8 shows a schematic diagram of another example of a rule tree according to an embodiment of the present description;
FIG. 9 shows a schematic diagram of a rule unit execution order generated based on the rule tree of FIG. 8;
fig. 10 shows a block diagram of a rule execution plan generation apparatus according to an embodiment of the present specification;
FIG. 11 illustrates a block diagram of an electronic device for generating a rule execution plan in a rule engine according to an embodiment of the present specification.
Detailed Description
The subject matter described herein will now be discussed with reference to example embodiments. It should be appreciated that these embodiments are discussed only to enable a person skilled in the art to better understand and thereby practice the subject matter described herein, and are not limiting of the scope, applicability, or examples set forth in the claims. Changes may be made in the function and arrangement of elements discussed without departing from the scope of the embodiments herein. Various examples may omit, replace, or add various procedures or components as desired. For example, the described methods may be performed in a different order than described, and various steps may be added, omitted, or combined. In addition, features described with respect to some examples may be combined in other examples as well.
As used herein, the term "comprising" and variations thereof mean open-ended terms, meaning "including, but not limited to. The term "based on" means "based at least in part on". The terms "one embodiment" and "an embodiment" mean "at least one embodiment. The term "another embodiment" means "at least one other embodiment". The terms "first," "second," and the like, may refer to different or the same object. Other definitions, whether explicit or implicit, may be included below. Unless the context clearly indicates otherwise, the definition of a term is consistent throughout this specification.
Fig. 1 shows a schematic structural diagram of a rule engine architecture. As shown in fig. 1, the rule engine architecture may include an information element, an information service, a rule set, a queue manager, and a rule engine.
An Information element (Information Unit) may be an object containing all Information of a specific event. Such information may include: messages, application identifications of events generated, information element types, related rule sets, general methods, general attributes, some system related information, and so forth.
The information service (Information Services) generates an information element object. Each information service generates an information element object corresponding to its own type. In other words, the information element objects generated by a particular information service have the same format, but may have different properties and rule sets. It should be noted that many different information services may be run on one machine, as well as different instances of the same information service.
Rule Set (Rule Set) is a collection of many rules. Each rule contains a condition filter and a plurality of actions. The condition filter may comprise a plurality of filter conditions. For example, the condition filter may be a combination of a plurality of boolean expressions, the combination of which results in boolean types. When a rule is executed, the action will be executed if the conditional filter value is true. A Queue Manager (Queue Manager) is used to receive information element objects from different information services and to place the received information element objects in a Queue for management.
When the rule engine works, the information service receives the event and converts the event into information elements, the information elements are then transmitted to the queue manager, and finally the rule engine receives the information elements and executes the information elements by applying rules carried by the rule engine until the information elements are no longer in the queue manager.
After the rule engine receives the information elements from the queue manager, the rules in the rule set of the information elements are checked in accordance with the defined order of the rules. Specifically, the rule engine examines the first rule and evaluates its conditional filter, and if the value is false, all actions associated with that rule are ignored and the next rule is continued. If the filter value of the second rule is true, all actions related to the rule are sequentially executed according to the rule execution plan, and the next rule is continued after the execution is finished. After all rules in the information element are executed, the information element is destroyed, and then the next information element is received from the queue manager.
Typically, rules executed in a rule engine are expressed as a tree structure, i.e., a rule is expressed as a rule tree. In the rule tree, the rule is divided into a plurality of rule units, and the rule units constitute the rule through logical operations, which may include and logic, or logic and non-logic, for example. In other words, in the rule tree, the leaf nodes are rule units, and the non-leaf nodes are logical operations between lower nodes, and the rule units serve only as leaf nodes, as shown in the upper-half drawing in fig. 2.
Furthermore, the rule execution plan may be predetermined, e.g., the rule engine may traverse the leaf nodes of the rule, typically using a tree depth-first search traversal, with the results passed up, thereby yielding the rule execution plan. FIG. 2 illustrates an example schematic diagram of generating a rule execution plan based on depth-first search.
However, the rule execution plan generated based on the tree depth-first search is obtained by sequentially traversing the leaf nodes of the rule. In such a rule execution plan, the execution order of rule units depends on the node configuration of the rule tree. Because the execution costs of different rule units are different, according to the rule execution plan generation mode, the rule units with large execution costs can be executed first, and the rule units with small execution costs can be executed later. In this case, since the amount of data that the rule unit executed first needs to process may be larger than the amount of data of the rule unit executed later, more resources may be consumed, and rule execution efficiency of the rule engine is reduced.
In view of the above, the embodiments of the present specification provide a rule execution plan generation method in which a rule tree is hierarchically analyzed based on a logical relation of the rule tree to obtain hierarchical structure information of the rule tree, and an execution order of rule units is determined based on execution overhead of each rule unit and the hierarchical structure information of a rule book, thereby generating a rule execution plan. In the rule execution plan generated in this way, the execution order of rule units with small execution overhead is planned earlier than the execution order of rule units with large execution overhead, thereby saving resources and improving rule execution efficiency of the rule engine.
Methods and apparatuses for generating a rule execution plan of a rule engine according to embodiments of the present specification will be described in detail with reference to the accompanying drawings.
Fig. 3 shows a block diagram of a rule execution system 300 according to an embodiment of the present specification. As shown in fig. 3, the rule execution system 300 includes a rule execution plan generation means 310 and a rule execution means 320.
The rule execution plan generation means 310 is configured to generate a corresponding rule execution plan for each rule in the rule set. The rule execution plan generated by the rule execution plan generating means 310 may be transmitted to the rule execution means 320. Alternatively, the generated rule execution plan may be stored in a storage device for retrieval by rule execution means 320 when executing the corresponding rule. The operation and structure of the rule execution plan generation apparatus 310 will be described in detail later with reference to the drawings.
The rule execution means 320 is configured to execute the corresponding rule according to a rule execution plan. In the embodiment of the present specification, the rule execution device 320 may be a rule engine, or may be a rule execution component in the rule engine.
Further, it is to be noted that in the example shown in fig. 3, the rule execution plan generating means 310 and the rule executing means 320 are shown as two independent components, but in other embodiments, the rule execution plan generating means 310 and the rule executing means 320 may be integrated together. For example, the rule execution plan generation apparatus 310 may be included as a component in a rule execution apparatus (e.g., a rule engine).
FIG. 4 illustrates a flow chart of a method 400 for generating a rule execution plan for a rule engine according to an embodiment of the present specification.
As shown in fig. 4, at block 410, for each rule in the rule set, the rule tree is hierarchically analyzed based on logical operational relationships in the rule tree to obtain hierarchical structure information of the rule tree, the hierarchical structure information including logical composition relationships of each layer of the hierarchical structure and hierarchical relationships of each layer of the hierarchical structure. Here, the logical composition relation of the hierarchical structure may include which composition elements the hierarchical structure is composed of, and what logical operation relation the composition elements use is combined into the hierarchical structure. In the present specification, each layer of the hierarchical structure may be constituted by a plurality of rule units, a plurality of hierarchical structures, or a combination of a plurality of rule units and hierarchical structures through logical operations. For different constituent elements in the same hierarchical structure, the execution order of the respective constituent elements can be adjusted according to the logical operation relation of the rule tree, and such adjustment of the execution order does not affect the execution result of the rule. For example, for each constituent element that operates upward by a logical relationship, each constituent element is executed, and the execution result of each constituent element obtains a final result by a logical operation, whereby the execution order of each constituent element does not affect the execution result of the rule, so that the execution order of each constituent element can be determined according to the execution overhead of each constituent element for rule execution plan optimization.
In one example of the present description, logical operational relationships in a rule tree may include AND logic, OR logic, and NOT logic. When the hierarchical structure analysis of the rule tree is carried out, the lower node of the rule tree and the lower node of the logic node form the same hierarchical structure, or the lower node of the logic node forms the lower hierarchical structure of the hierarchical structure where the logic node is positioned, and the lower node of the non-logic node is layered in the hierarchical structure where the upper node of the non-logic node is positioned.
As shown in fig. 6, the rule tree is formed by combining rule units "Http (C1) >1", "Odps (C2) <5", "Hbase (C3) = 5", "Http (C4) >10", "C5>10", AND "Hbase (C6) = 10", via AND logic "AND" OR "with logic" OR ". Specifically, a first or logic operation is performed between "Http (C1) >1" and "Odps (C2) <5" to obtain a first or logic result, a first and logic operation is performed between "Http (C4) >10" and "C5>10" to obtain a first and logic result, a second or logic operation is performed between the first and logic result and "Hbase (C6) = 10" to obtain a second or logic result, and a second and logic operation is performed between the first or logic result, "Hbase (C3) = 5" and the second or logic result, thereby obtaining a rule tree.
After the hierarchical analysis of the rule tree shown in fig. 6, hierarchical structure information of the rule tree can be obtained. Specifically, the rule tree includes a 3-layer hierarchical structure, wherein the first-layer hierarchical structure is composed of respective constituent elements of the second and logic operation, that is, the first-layer hierarchical structure is composed of and logic between "Http (C1) >1OR Odps (C2) <5", "Hbase (C3) = 5", and "(Http (C4) >10and C5> 10) OR Hbase (C6) = 10". In the first layer hierarchy, "Hbase (C3) = 5" is a regular unit, and "Http (C1) >1OR Odps (C2) <5" and "(Http (C4) >10and C5> 10) OR Hbase (C6) = 10" is a hierarchy that can be further subdivided (i.e., a lower layer hierarchy of the first layer hierarchy). "Http (C1) >1OR Odps (C2) <5" and "(Http (C4) >10and C5> 10) OR Hbase (C6) = 10" each constitute a second layer hierarchy, and each of "Http (C1) >1OR Odps (C2) <5" and "(Http (C4) >10and C5> 10) OR Hbase (C6) = 10" is a different second layer hierarchy. Here, the second layer hierarchical structure "Http (C1) >1OR Odps (C2) <5" is formed by OR logic between the rule unit "Http (C1) >1" and the rule unit "Odps (C2) < 5". The second layer hierarchy "(Http (C4) >10and C5> 10) OR Hbase (C6) = 10" is OR-logically constituted between "(Http (C4) >10and C5> 10)" and "Hbase (C6) = 10", where "(Http (C4) >10and C5> 10)" is a third layer hierarchy (i.e., the second layer hierarchy "(Http (C4) >10and C5> 10) OR Hbase (C6) = = 10") that can be further subdivided, and "Hbase (C6) = 10" is a regular unit. The third hierarchical structure "(Http (C4) >10and C5> 10)" is constituted by and operation of the rule unit "Http (C4) >10" and the rule unit "C5> 10". According to the above analysis, hierarchical structure information of the rule tree in fig. 6 is obtained.
It is to be noted here that the above is a hierarchical analysis example based on the logic operation being and logic and or logic. In case the logical operation is other suitable logic, a corresponding hierarchical analysis approach may be employed, with the hierarchical layers being stepped down from the root node of the rule tree, and in each hierarchy, if there is a sub-hierarchy that can be further subdivided, further down until all the constituent elements in the hierarchy are not further subdivided, i.e. all the constituent elements are rule units. Furthermore, the order of execution of constituent elements layered in the same layered structure may be adjusted, and such adjustment of the order of execution does not affect the execution result of the rule.
At block 420, the execution overhead of each rule unit in the rule tree is determined. The execution overhead of the rule unit may include computation overhead and IO overhead. The computational overhead may be determined based on the size of the data volume of the task performed by the rule unit and the complexity of the task. The larger the amount of data, the greater the task complexity (i.e., the more complex the computational logic), and the greater the computational overhead. IO overhead may be determined based on data loading time. The slower the data loading, the greater the IO overhead, for the same amount of data. Also at load speed, the larger the data load, the greater the IO overhead. The computational overhead is typically smaller than the IO type overhead, and the IO type is limited to external services.
For example, as shown in FIG. 6, rule element "C5>10" is a pure computational element with minimal execution overhead. The regular units "Hbase (C3) = 5" and "Hbase (C3) = 10" load data from Hbase by primary key, performing overhead times. The rule units 'Http (C1) > 1' call external services to acquire data through an Http interface, and the execution overhead is higher than the rule units 'Hbase (C3) = 5' and 'Hbase (C3) = 10'. The rule unit 'Odps (C2) < 5' queries Odps data through the Odps task, and the execution overhead is highest.
After the execution overhead of each rule unit is obtained as above, the execution order of each rule unit is determined based on the execution overhead of each rule unit and the hierarchical structure information of the rule tree at block 430.
Fig. 5 shows a flowchart of one example of a process for determining the execution order of rule units according to an embodiment of the present specification.
As shown in FIG. 5, at block 510, an order of execution of each rule unit in the belonging hierarchy is determined based on the execution overhead of each rule unit. For example, for the rule units "Http (C1) >1", "Odps (C2) <5", "Hbase (C3) = 5", "Http (C4) >10", "C5>10" and "Hbase (C6) = 10" in fig. 6. The execution order of the rule units "Http (C1) >1" and "Odps (C2) <5" in the second hierarchical structure "Http (C1) >1OR Odps (C2) <5" is determined for the rule units "Http (C1) >1" and "Odps (C2) < 5". For the rule unit "Hbase (C3) = 5", the execution order of "Hbase (C3) = 5" in the first layer hierarchy "(Http (C1) >1OR Odps (C2) < 5) AND (Hbase (C3) = 5) AND ((Http (C4) >10AND C5> 10) OR Hbase (C6) = 10)" is determined. The execution order of "Http (C4) >10" AND "C5>10" in the third layer hierarchy "(Http (C4) > 10) AND (C5 > 10)" is determined for the rule units "Http (C4) >10" AND "C5> 10". For the rule unit "Hbase (C6) = 10", the execution order of "Hbase (C6) = 10" in the second layer hierarchy "(Http (C4) >10and C5> 10) OR Hbase (C6) = 10" is determined. Specifically, for a hierarchical structure where an execution unit is located, an execution overhead of each constituent element of the hierarchical structure may be determined. Then, the execution order of each constituent element (including the execution unit) in the hierarchical structure is determined according to the execution overhead of each constituent element.
For example, for the rule unit "Hbase (C3) = 5", first, the execution overhead of the rule unit "Hbase (C3) = 5", the second layer hierarchy "Http (C1) >1OR Odps (C2) <5", and the second layer hierarchy "(Http (C4) >10and C5> 10) OR Hbase (C6) = 10" is determined. Here, for a hierarchical mechanism capable of further subdivision, the execution overhead of the hierarchical structure may be determined according to the execution overhead and logical relationship of the respective constituent elements of the hierarchical structure. For example, for the second-layer hierarchical structure "Http (C1) >1OR Odps (C2) <5", since its logical relationship is an OR logic, its execution overhead is that of the execution unit having the largest execution overhead among the execution units "Http (C1) >1" and "Odps (C2) <5". Since the execution overhead of the execution unit "Odps (C2) <5" is greater than the execution overhead of the execution unit "Http (C1) >1", the execution overhead of the second-layer hierarchical structure "Http (C1) >1OR Odps (C2) <5" is the execution overhead of the execution unit "Odps (C2) <5". For the second layer hierarchy "(Http (C4) >10and C5> 10) OR Hbase (C6) = 10", since its logical relationship is an OR logic, its execution overhead is the maximum execution overhead among the third layer hierarchy "(Http (C4) >10and C5> 10)" and the execution unit "Hbase (C6) = 10". For the third layer hierarchy "(Http (C4) >10and C5> 10)", since its logical relationship is an and logic, its execution overhead is the sum of the execution overheads of the respective constituent elements, that is, the sum of the execution overheads of the execution units "Http (C4) >10" and "C5> 10". The execution overhead of the third layer hierarchy "(Http (C4) >10and C5> 10)" is greater than the execution overhead of the execution unit "Hbase (C6) = 10", whereby the execution overhead of the second layer hierarchy "(Http (C4) >10and C5> 10) OR Hbase (C6) = 10" is the execution overhead of the third layer hierarchy "(Http (C4) >10and C5> 10)". As can be seen by comparison, the execution overhead of the second-layer hierarchical structure "Http (C1) >1OR Odps (C2) <5" is > the execution overhead of the second-layer hierarchical structure "(Http (C4) >10and C5> 10) OR Hbase (C6) = 10)" the execution overhead of Hbase (C3) = 5", whereby the execution order of the execution units" Hbase (C3) = 5 "in the belonging hierarchical structure ranks first, second-layer hierarchical structure" (Http (C4) >10and C5> 10) OR Hbase (C6) = = 10 "second, and second-layer hierarchical structure" Http (C1) >1OR Odps (C2) <5". The order of execution of the rule elements in the belonging hierarchy can be determined in the same way for other rule elements.
Next, the operations of block 520 and block 530 are performed in a loop. Specifically, at block 520, a determination is made as to whether the current hierarchy has an upper hierarchy. At the first cycle, the current hierarchy is the hierarchy to which the execution unit belongs. If so, at block 530, an order of execution of the current hierarchy in its upper hierarchy is determined based on the execution overhead of the current hierarchy. Then, returning to block 520, it is determined whether the upper hierarchy has an upper hierarchy of a higher level.
If the result of the determination in block 520 is that there is no upper hierarchy, in block 540, the execution order of each rule unit is determined based on the execution order of each rule unit in the hierarchical structure to which the rule unit belongs and the execution order of each hierarchy to which the rule unit belongs in the respective upper hierarchy, as shown in fig. 7.
Here, in the example shown in fig. 5, the execution order of the execution units is determined from the execution units. In another example, the execution order of the execution units may also be determined starting from the root node of the rule tree. For example, for the rule tree shown in fig. 6, the execution order of each constituent element in the first-layer hierarchical structure may be determined first, for example, the execution unit "Hbase (C3) = 5" > the second-layer hierarchical structure "(Http (C4) >10and C5> 10) OR Hbase (C6) = 10" > the second-layer hierarchical structure "Http (C1) >1OR Odps (C2) < 5). Next, the execution order of each constituent element in the second layer hierarchy "(Http (C4) >10and C5> 10) OR Hbase (C6) = 10" and "Http (C1) >1OR Odps (C2) <5" is determined. That is, "Hbase (C6) = 10" > "Http (C4) >" 10and C5>10", and" Http (C1) >1">" Odps (C2) <5". Then, the execution order of each constituent element in the third layer hierarchical structure "Http (C4) >10and C5>10", that is, "C5>10" > "Http (C4) >10", is judged until the execution order of all rule units is determined, whereby the execution order of each rule unit in the rule tree is obtained.
Further, it is to be noted that, in another example of the present specification, the execution order of constituent elements in a hierarchical structure constituted by lower nodes of the logical nodes is exchangeable. For example, for the second layer hierarchy "Http (C1) >1OR Odps (C2) <5", the rule units "Http (C1) >1" and "Odps (C2) <5" may be in order of execution overhead size determination, i.e., "Http (C1) >1" > "Odps (C2) <5", but the execution order between the two is exchangeable. Since the or logic is executed between the rule units "Http (C1) >1" and "Odps (C2) <5", the exchange of the execution order of the two does not affect the rule execution efficiency of the execution engine.
Shown in fig. 6 is a rule tree with root nodes that are "AND" logic. Fig. 8 shows a schematic diagram of another example of a rule tree according to an embodiment of the present description. The rule tree shown in fig. 8 has "OR" logic as a root node, and fig. 9 shows a schematic diagram of an execution order of rule units generated based on the rule tree in fig. 8. The execution order determination process in fig. 9 may refer to the process described above with reference to fig. 7, and will not be described here.
Returning to FIG. 4, after determining the execution order of the rule units as described above, at block 440 a rule execution plan for the rule is generated based on the determined execution order of the rule units. For example, after the execution order of each rule unit is obtained, a rule execution plan may be generated based on the execution order and the logical operation relationship (or the logical operation relationship after the logical conversion) of each rule unit.
Further, optionally, before generating the rule execution plan of the rule, the method may further include: and carrying out logical operation conversion processing on each rule unit based on the logical operation relation in the rule tree. For example, for a hierarchical structure based on AND logic layering, the logic operations of all the constituent elements in the hierarchical structure may be converted to Filter. For example, for the first layered structure divided by the root node "AND" in fig. 6, the constituent elements are "Http (C1) >1OR Odps (C2) <5", "(Http (C4) >10AND C5> 10) OR Hbase (C6) = 10" AND "Hbase (C3) = 5", so that the logic of each constituent element is converted into a Filter, that is, "Filter (Http (C1) >1OR Odps (C2) < 5)", "Filter ((Http (C4) >10AND C5> 10) OR Hbase (C6) = = 10)" AND "Filter (Hbase (C3) = 5)". Further, for constituent elements that need to be further subdivided, for example, "Filter (Http (C1) >1OR Odps (C2) < 5)" and "Filter ((Http (C4) >10and C5> 10) OR Hbase (C6) = 10)", further conversion is performed according to the logical relationship of the constituent elements of the respective second-layer hierarchies. For example, for "OR" logic, it may be converted to "uni on" (i.e., joint operation), for example, the second layer hierarchy "Filter (Http (C1) >1OR Odps (C2) < 5)" may be further converted to "Filter (Http (C1))" and "Filter (Odps (C2) < 5)" between which uni on operation is performed, and the second layer hierarchy "Filter ((Http (C4) >10and C5> 10) OR Hbase (C6) = 10)" may be further converted to "Filter (Http (C4) >10and C5> 10)" and "Filter (Hbase (C6) = =10)" between which uni on operation is performed. Further, for "Filter (Http (C4) >10and C5> 10)", further conversion into "Filter (Http (C4) > 10)" and "Filter (C5 > 10)" is required.
For the NOT logic, the logical operation relation of the non-leaf nodes in the lower hierarchical structure and the expression of the rule unit are modified in a NOT push-down mode. Specifically, if the lower hierarchical structure of the "not" logic is composed of rule units, the expression of the rule units is modified to the opposite logic. For example, as shown in fig. 8, the lower layer of the "NOT" logic has only the rule cell "Hbase (C3) = 5", so that the rule cell "Hbase (C3) = 5" is modified to "Filter (Hbase (C3) +=5)". If the lower layer of the "NOT" logic includes a non-leaf node (i.e., a logical operation), an inverse logical conversion is required for the non-leaf node, for example, if the lower layer of the "NOT" logic includes a hierarchical structure composed of AND operations of rule units a AND B, that is, NOT (a AND B), conversion into (NOT (a)) OR (NOT (B)) is required. If both A and B are rule elements, the expressions for A and B are modified to the opposite logic. If at least one of a AND B is a hierarchical structure (i.e., a non-leaf node), for example, a is constituted of (C AND D), i.e., NOT (a) =not (C AND D), then NOT (C AND D) is processed in the manner of NOT (a AND B) described above until the lower layers are all regular units (leaf nodes).
Further, optionally, after the rule execution plan is generated, in the method 400, the generated rule execution plan may also be sent to the rule execution device 320 to execute the rule according to the rule execution plan at the rule execution device 320.
Further, optionally, in method 400, a rule execution request may also be received. Accordingly, in response to receiving a rule execution request, hierarchical analysis is performed on the rule tree based on logical operation relations in the rule tree to obtain hierarchical structure information of the rule tree. In this way, a rule execution plan may be dynamically generated in response to a rule execution request.
Fig. 10 shows a block diagram of a rule execution plan generation apparatus 1000 according to an embodiment of the present specification. As shown in fig. 10, the rule execution plan generation apparatus 1000 includes a hierarchical analysis unit 1010, an overhead determination unit 1020, an execution order determination unit 1030, and a plan generation unit 1040.
The hierarchical analysis unit 1010 is configured to perform hierarchical analysis on the rule tree based on the logical operation relationship in the rule tree to obtain hierarchical structure information of the rule tree, the hierarchical structure information including a logical composition relationship of each layer of hierarchical structure and a hierarchical relationship of each layer of hierarchical structure. The operation of the hierarchical analysis unit 1010 may refer to the operation of block 410 described above with reference to fig. 4.
The overhead determination unit 1020 is configured to determine an execution overhead of each rule unit in the rule tree. For a hierarchical structure, the overhead determination unit 1020 determines the execution overhead of the hierarchical structure according to the execution overhead and the logical relationship of the respective constituent elements of the hierarchical structure. The operation of the overhead determination unit 1020 may refer to the operation of block 420 described above with reference to fig. 4.
The execution order determination unit 1030 is configured to determine an execution order of each rule unit based on an execution overhead of the rule unit and hierarchical structure information of the rule tree. For example, in one example, the execution order determination unit 1030 may be configured to determine an execution order of each rule unit in the hierarchical structure to which the rule unit belongs based on an execution overhead of the rule unit; determining the execution sequence of each level of layered structure in the upper layered structure based on the execution overhead of each level of layered structure; and determining the execution sequence of each rule unit based on the execution sequence of the rule unit in the affiliated layered structure and the execution sequence of each layered structure of each level of the rule unit in the respective upper layered structure. The operation of the execution order determination unit 1030 may refer to the operation of the block 430 described above with reference to fig. 4 and the operation described with reference to fig. 5.
The plan generation unit 1040 is configured to generate a rule execution plan of the rule according to the determined execution order of the respective rule units. The operation of the plan generation unit 1040 may refer to the operation of block 440 described above with reference to fig. 4.
Further, the rule execution plan generation apparatus 1000 may optionally further include a logic conversion unit (not shown). The logic conversion unit is configured to perform a logic operation conversion process on each rule unit based on a logic operation relationship in the rule tree before a rule execution plan of the rule is generated.
Further, the rule execution plan generation apparatus 1000 may optionally further include a plan transmission unit (not shown). The plan transmitting unit is configured to transmit the generated rule execution plan to the rule execution device to execute the rule according to the rule execution plan at the rule execution device.
Further, the rule execution plan generation apparatus 1000 may optionally further include a request receiving unit (not shown). The request receiving unit is configured to receive a rule execution request, and the hierarchical analysis unit 1010 initiates hierarchical analysis of the rule tree in response to receiving the rule execution request.
Embodiments of a method for generating a rule execution plan of a rule engine and a rule execution plan generating apparatus according to embodiments of the present specification are described above with reference to fig. 1 to 10. The above rule execution plan generation means may be implemented in hardware, or in software, or in a combination of hardware and software.
Fig. 11 shows a block diagram of an electronic device 1100 for generating a rule execution plan for a rule engine according to an embodiment of the present description.
As shown in fig. 11, the electronic device 1100 may include at least one processor 1110, memory (e.g., non-volatile memory) 1120, memory 1130, a communication interface 1140, and an internal bus 1160, with the at least one processor 1110, memory 1120, memory 1130, and communication interface 1140 connected together via the bus 1160. The at least one processor 1110 executes at least one computer-readable instruction (i.e., the elements described above as being implemented in software) stored or encoded in a computer-readable storage medium.
In embodiments of the present description, electronic device 1100 may include, but is not limited to: personal computers, server computers, workstations, desktop computers, laptop computers, notebook computers, mobile computing devices, smart phones, tablet computers, cellular phones, personal Digital Assistants (PDAs), handsets, wearable computing devices, consumer electronic devices, and the like.
In one embodiment, stored in memory are computer-executable instructions that, when executed, cause at least one processor 1110 to: performing hierarchical analysis on the rule tree based on a logical operation relation in the rule tree to obtain hierarchical structure information of the rule tree, wherein the hierarchical structure information comprises a logical composition relation of each layer of hierarchical structure and a hierarchical relation of each layer of hierarchical structure; determining the execution overhead of each rule unit; determining the execution sequence of each rule unit based on the execution overhead of each rule unit and the hierarchical structure information of the rule tree; and generating a rule execution plan of the rule according to the determined execution sequence of each rule unit.
It should be appreciated that computer-executable instructions stored in memory, when executed, cause the at least one processor 1110 to perform various operations and functions as described above in connection with fig. 1-10 in various embodiments of the present specification.
According to one embodiment, a program product, such as a non-transitory machine-readable medium, is provided. The non-transitory machine-readable medium may have instructions (i.e., elements implemented in software as described above) that, when executed by a machine, cause the machine to perform various operations and functions described in various embodiments of the present specification as described above in connection with fig. 1-10.
In particular, a system or apparatus provided with a readable storage medium having stored thereon software program code implementing the functions of any of the above embodiments may be provided, and a computer or processor of the system or apparatus may be caused to read out and execute instructions stored in the readable storage medium.
In this case, the program code itself read from the readable medium may implement the functions of any of the above-described embodiments, and thus the machine-readable code and the readable storage medium storing the machine-readable code form part of the present invention.
Examples of readable storage media include floppy disks, hard disks, magneto-optical disks, optical disks (e.g., CD-ROMs, CD-R, CD-RWs, DVD-ROMs, DVD-RAMs, DVD-RWs), magnetic tapes, nonvolatile memory cards, and ROMs. Alternatively, the program code may be downloaded from a server computer or cloud by a communications network.
It will be appreciated by those skilled in the art that various changes and modifications can be made to the embodiments disclosed above without departing from the spirit of the invention. Accordingly, the scope of the invention should be limited only by the attached claims.
It should be noted that not all the steps and units in the above flowcharts and the system configuration diagrams are necessary, and some steps or units may be omitted according to actual needs. The order of execution of the steps is not fixed and may be determined as desired. The apparatus structures described in the above embodiments may be physical structures or logical structures, that is, some units may be implemented by the same physical entity, or some units may be implemented by multiple physical entities, or may be implemented jointly by some components in multiple independent devices.
In the above embodiments, the hardware units or modules may be implemented mechanically or electrically. For example, a hardware unit, module or processor may include permanently dedicated circuitry or logic (e.g., a dedicated processor, FPGA or ASIC) to perform the corresponding operations. The hardware unit or processor may also include programmable logic or circuitry (e.g., a general purpose processor or other programmable processor) that may be temporarily configured by software to perform the corresponding operations. The specific implementation (mechanical, or dedicated permanent, or temporarily set) may be determined based on cost and time considerations.
The detailed description set forth above in connection with the appended drawings describes exemplary embodiments, but does not represent all embodiments that may be implemented or fall within the scope of the claims. The term "exemplary" used throughout this specification means "serving as an example, instance, or illustration," and does not mean "preferred" or "advantageous over other embodiments. The detailed description includes specific details for the purpose of providing an understanding of the described technology. However, the techniques may be practiced without these specific details. In some instances, well-known structures and devices are shown in block diagram form in order to avoid obscuring the concepts of the described embodiments.
The previous description of the disclosure is provided to enable any person skilled in the art to make or use the disclosure. Various modifications to the disclosure will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other variations without departing from the scope of the disclosure. Thus, the disclosure is not limited to the examples and designs described herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.

Claims (18)

1. A method for generating a rule execution plan for a rule engine, comprising:
performing hierarchical analysis on the rule tree based on a logical operation relation in the rule tree to obtain hierarchical structure information of the rule tree, wherein the hierarchical structure information comprises a logical composition relation of each layer of hierarchical structure and a hierarchical relation of each layer of hierarchical structure, leaf nodes in the rule tree are rule units, and non-leaf nodes in the rule tree are logical operations among lower nodes;
determining the execution overhead of each rule unit;
determining the execution sequence of each rule unit based on the execution overhead of each rule unit and the hierarchical structure information of the rule tree; and
generating a rule execution plan of the rule according to the determined execution sequence of each rule unit;
wherein determining the execution overhead of each rule unit comprises:
the execution overhead of the rule unit for indicating pure computation is smaller than the execution overhead of the rule unit for indicating loading data from Hbase through a main key, the execution overhead of the rule unit for indicating loading data from Hbase through a main key is smaller than the execution overhead of the rule unit for indicating retrieving data by invoking an external service through an http interface, and the execution overhead of the rule unit for indicating retrieving data by invoking an external service through an http interface is smaller than the execution overhead of the rule unit for indicating querying odps data through an odps task.
2. The method of claim 1, wherein determining the order of execution of the respective rule units based on the execution overhead of the respective rule units and the hierarchical structure information of the rule tree comprises:
determining the execution sequence of each rule unit in the belonging hierarchical structure based on the execution overhead of the rule unit;
determining the execution sequence of each level of layered structure in the upper layered structure based on the execution overhead of each level of layered structure; and
for each rule unit, determining the execution sequence of the rule unit based on the execution sequence of the rule unit in the affiliated layered structure and the execution sequence of each layered structure of each level of the rule unit in the respective upper layered structure.
3. The method of claim 2, wherein the execution overhead of each hierarchy is determined based on the execution overhead and logical relationship of each constituent element of the hierarchy.
4. The method of claim 1, wherein the execution overhead comprises a computational overhead and/or an IO overhead.
5. The method of claim 1 wherein the logical operations in the rule tree comprise AND logic, OR logic and/or NOR logic,
The lower nodes of the non-logic nodes are layered in the layered structure of the upper nodes of the non-logic nodes.
6. The method of claim 5, wherein prior to generating the rule execution plan for the rule, the method further comprises:
and carrying out logical operation conversion processing on each rule unit based on the logical operation relation in the rule tree.
7. The method of claim 5, wherein the order of execution of constituent elements in the hierarchy formed by nodes underlying the logical nodes is exchangeable.
8. The method of claim 1, further comprising:
the generated rule execution plan is sent to a rule execution device to execute the rule at the rule execution device according to the rule execution plan.
9. The method of claim 1, further comprising:
a rule execution request is received, wherein the hierarchical analysis of the rule tree is initiated in response to receiving the rule execution request based on logical operational relationships in the rule tree.
10. An apparatus for generating a rule execution plan for a rule engine, comprising:
the hierarchical analysis unit is used for performing hierarchical analysis on the rule tree based on a logical operation relation in the rule tree to obtain hierarchical structure information of the rule tree, wherein the hierarchical structure information comprises a logical composition relation of each layer of hierarchical structure and a hierarchical relation of each layer of hierarchical structure, leaf nodes in the rule tree are rule units, and non-leaf nodes in the rule tree are logical operations among lower nodes;
an overhead determining unit for determining the execution overhead of each rule unit;
an execution order determining unit that determines an execution order of the respective rule units based on an execution overhead of the respective rule units and hierarchical structure information of the rule tree; and
a plan generation unit for generating a rule execution plan of the rule according to the determined execution sequence of each rule unit;
wherein determining the execution overhead of each rule unit comprises:
the execution overhead of the rule unit for indicating pure computation is smaller than the execution overhead of the rule unit for indicating loading data from Hbase through a main key, the execution overhead of the rule unit for indicating loading data from Hbase through a main key is smaller than the execution overhead of the rule unit for indicating retrieving data by invoking an external service through an http interface, and the execution overhead of the rule unit for indicating retrieving data by invoking an external service through an http interface is smaller than the execution overhead of the rule unit for indicating querying odps data through an odps task.
11. The apparatus of claim 10, wherein the execution order determination unit:
determining the execution sequence of each rule unit in the belonging hierarchical structure based on the execution overhead of the rule unit;
determining the execution sequence of each level of layered structure in the upper layered structure based on the execution overhead of each level of layered structure; and
for each rule unit, determining the execution sequence of the rule unit based on the execution sequence of the rule unit in the affiliated layered structure and the execution sequence of each layered structure of each level of the rule unit in the respective upper layered structure.
12. The apparatus of claim 11, wherein the overhead determination unit determines the execution overhead of the hierarchy based on the execution overhead and the logical relationship of the respective constituent elements of the hierarchy.
13. The apparatus of claim 10, further comprising:
and the logic conversion unit is used for carrying out logic operation conversion processing on each rule unit based on the logic operation relation in the rule tree before the rule execution plan of the rule is generated.
14. The apparatus of claim 10, further comprising:
and a plan transmitting unit that transmits the generated rule execution plan to a rule execution device to execute the rule according to the rule execution plan at the rule execution device.
15. The apparatus of claim 10, further comprising:
a request receiving unit that receives a rule execution request,
wherein the hierarchical analysis unit initiates hierarchical analysis of the rule tree in response to receiving a rule execution request.
16. A rule execution system comprising:
the apparatus of any one of claims 10 to 15; and
rule execution means.
17. An electronic device, comprising:
one or more processors
A memory coupled with the one or more processors, the memory storing instructions that, when executed by the one or more processors, cause the one or more processors to perform the method of any of claims 1 to 9.
18. A machine-readable storage medium storing executable instructions that, when executed, cause the machine to perform the method of any one of claims 1 to 9.
CN201911109250.8A 2019-11-13 2019-11-13 Method and device for generating rule execution plan of rule engine Active CN111061763B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911109250.8A CN111061763B (en) 2019-11-13 2019-11-13 Method and device for generating rule execution plan of rule engine

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911109250.8A CN111061763B (en) 2019-11-13 2019-11-13 Method and device for generating rule execution plan of rule engine

Publications (2)

Publication Number Publication Date
CN111061763A CN111061763A (en) 2020-04-24
CN111061763B true CN111061763B (en) 2023-08-04

Family

ID=70297758

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911109250.8A Active CN111061763B (en) 2019-11-13 2019-11-13 Method and device for generating rule execution plan of rule engine

Country Status (1)

Country Link
CN (1) CN111061763B (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111652644A (en) * 2020-06-01 2020-09-11 湖南快乐阳光互动娱乐传媒有限公司 Advertisement strategy configuration method and system
CN112001500B (en) * 2020-08-13 2021-08-03 星环信息科技(上海)股份有限公司 Model training method, device and storage medium based on longitudinal federated learning system
CN112215511A (en) * 2020-10-22 2021-01-12 杭州海康威视系统技术有限公司 Attendance data calculation method, device and equipment

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005038073A (en) * 2003-07-17 2005-02-10 Hitachi Ltd Method, apparatus and program for rule retrieval, and recording medium
CN101739248A (en) * 2008-11-13 2010-06-16 国际商业机器公司 Method and system for executing rule set
CN106022350A (en) * 2015-03-30 2016-10-12 尼尔森(美国)有限公司 Methods and apparatus to improve decision tree execution
CN106775962A (en) * 2015-11-25 2017-05-31 阿里巴巴集团控股有限公司 A kind of rule performs method and device
CN109947401A (en) * 2019-03-15 2019-06-28 第四范式(北京)技术有限公司 The method and device handled by computer executing rule

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10963963B2 (en) * 2016-03-28 2021-03-30 Investcloud Inc Rule based hierarchical configuration
US11188531B2 (en) * 2018-02-27 2021-11-30 Elasticsearch B.V. Systems and methods for converting and resolving structured queries as search queries

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005038073A (en) * 2003-07-17 2005-02-10 Hitachi Ltd Method, apparatus and program for rule retrieval, and recording medium
CN101739248A (en) * 2008-11-13 2010-06-16 国际商业机器公司 Method and system for executing rule set
CN106022350A (en) * 2015-03-30 2016-10-12 尼尔森(美国)有限公司 Methods and apparatus to improve decision tree execution
CN106775962A (en) * 2015-11-25 2017-05-31 阿里巴巴集团控股有限公司 A kind of rule performs method and device
CN109947401A (en) * 2019-03-15 2019-06-28 第四范式(北京)技术有限公司 The method and device handled by computer executing rule

Also Published As

Publication number Publication date
CN111061763A (en) 2020-04-24

Similar Documents

Publication Publication Date Title
US11615087B2 (en) Search time estimate in a data intake and query system
US20220327125A1 (en) Query scheduling based on a query-resource allocation and resource availability
US11593377B2 (en) Assigning processing tasks in a data intake and query system
US11599541B2 (en) Determining records generated by a processing task of a query
US11321321B2 (en) Record expansion and reduction based on a processing task in a data intake and query system
US11442935B2 (en) Determining a record generation estimate of a processing task
CN111061763B (en) Method and device for generating rule execution plan of rule engine
US20190258637A1 (en) Partitioning and reducing records at ingest of a worker node
CN111767143B (en) Transaction data processing method, device, equipment and system
Fischer et al. Assigning tasks for efficiency in Hadoop
US9400700B2 (en) Optimized system for analytics (graphs and sparse matrices) operations
US20160188391A1 (en) Sophisticated run-time system for graph processing
US10453165B1 (en) Computer vision machine learning model execution service
Dai et al. A choreography analysis approach for microservice composition in cyber-physical-social systems
CN111488332B (en) AI service opening middle platform and method
US11157467B2 (en) Reducing response time for queries directed to domain-specific knowledge graph using property graph schema optimization
CN110737425B (en) Method and device for establishing application program of charging platform system
US20220114019A1 (en) Distributed resource-aware training of machine learning pipelines
CN115412401B (en) Method and device for training virtual network embedding model and virtual network embedding
Cao Design and implementation of human-computer interaction system in parallel digital library system based on neural network
Fan Mobile internet of things dynamic grid QoS service matching mechanism and simulation analysis
CN110309848A (en) The method that off-line data and stream data real time fusion calculate
US11609951B2 (en) Digital systems and methods for a consolidated transfer matrix
US11573721B2 (en) Quality-performance optimized identification of duplicate data
CN113779231B (en) Knowledge graph-based big data visual analysis method, device and equipment

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant