Program evaluation method and device, electronic equipment and computer readable storage medium
By generating a data flow diagram, the evaluation results of the Hive program are determined based on lineage and object information, which solves the problem of insufficient efficiency and accuracy of Hive program analysis and achieves efficient evaluation and optimization under limited resources.
Patent Information
- Application Number
- CN202310456748.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-04-25
- Publication Date
- 2026-02-06
- Estimated Expiration
- 2043-04-25
AI Technical Summary
The efficiency and accuracy of Hive program analysis in existing technologies cannot be guaranteed, especially when the data quality in development and testing environments is insufficient, making it difficult to effectively optimize data quality.
By obtaining object identification information from the lineage of the program to be evaluated, a data flow graph is generated. The program evaluation result is determined based on the lineage, object information, and program verification results. The data flow graph is used to represent the dependency relationships between object nodes and edges, thereby improving the accuracy and efficiency of the evaluation.
It improves the efficiency and accuracy of Hive program analysis, enabling program verification during the self-testing phase even in the absence of hardware resources and test data support, reducing development costs, and optimizing subsequent processing link design and coding optimization details.
Smart Images

Figure CN116483888B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present disclosure relates to the fields of big data technology, data processing technology and finance, and more particularly, to a program evaluation method and device, electronic equipment, computer readable storage medium and computer program product. BACKGROUND
[0002] With the development of big data technology, user behavior can generate massive data, and how to effectively manage massive data is a problem to be solved.
[0003] By designing a Hive program, data extraction, transformation and loading based on a Hive data warehouse tool can be achieved. The Hive data warehouse tool can map structured data files to database tables and provide Structured Query Language (SQL) query functions.
[0004] In the process of implementing the present disclosure, the inventors found that at least the following problems exist in the related art: the efficiency and accuracy of Hive program analysis cannot be guaranteed. SUMMARY
[0005] Therefore, the present disclosure provides a program evaluation method and device, electronic equipment, computer readable storage medium and computer program product.
[0006] According to one aspect of the present disclosure, a program evaluation method is provided, comprising:
[0007] According to N object identifiers in a blood relationship corresponding to the program to be evaluated, N object information is obtained, wherein N is a positive integer;
[0008] According to the association information in the above blood relationship and the above N object information, a program verification result is determined;
[0009] According to the above blood relationship, the above N object information and the above program verification result, a data flow direction graph is generated, wherein the data flow direction graph includes object nodes corresponding to the N object identifiers respectively and directed edges between the N object nodes; and
[0010] According to the above data flow direction graph, a program evaluation result corresponding to the program to be evaluated is determined.
[0011] According to an embodiment of the present disclosure, the above obtaining N object information according to N object identifiers in a blood relationship corresponding to the program to be evaluated comprises:
[0012] According to the above N object identifiers, storage path information corresponding to the N object identifiers respectively is determined; and
[0013] The target interface is called to obtain the N pieces of object information from the data lake according to storage path information corresponding to the N object identifiers respectively.
[0014] According to an embodiment of the present disclosure, the object information includes object data and time information, and the program verification result includes object verification results corresponding to the N object identifiers respectively.
[0015] According to an embodiment of the present disclosure, the program verification result is determined according to the association relationship information in the blood relationship and the N pieces of object information.
[0016] The associated object identifier is determined according to the association relationship information.
[0017] The associated object information is determined according to the associated object identifier, wherein the associated object information includes associated object data and associated time information.
[0018] The query scale information corresponding to the object identifier is determined according to the time information and the associated time information.
[0019] The blood relationship is verified according to the query scale information to obtain a verification result.
[0020] In a case where the verification result represents that the blood relationship is abnormal, the object verification result representing that the object data fails to pass the evaluation is determined.
[0021] In a case where the verification result represents that the blood relationship is normal, the object verification result representing that the object data passes the evaluation is determined.
[0022] According to an embodiment of the present disclosure, the object information further includes a verification rule.
[0023] According to an embodiment of the present disclosure, the associated object information is determined according to the associated object identifier.
[0024] The candidate associated object information is determined according to the associated object identifier, wherein the candidate associated object information includes candidate associated object data and candidate associated time information.
[0025] The candidate associated object data is subjected to integrity verification according to the verification rule to obtain an integrity verification result.
[0026] In response to the integrity verification result representing that the candidate associated object data passes the integrity verification, the candidate associated object information is determined as the associated object information.
[0027] According to embodiments of this disclosure, generating the data flow diagram based on the aforementioned blood relations, the information of the N objects, and the program verification results includes:
[0028] Based on the object information and the above object verification results, construct the object node corresponding to the above object identifier;
[0029] Based on the aforementioned relationship information, construct directed edges corresponding to the aforementioned object identifiers; and
[0030] Based on the object nodes corresponding to the object identifiers and the directed edges, the data flow graph is generated.
[0031] According to embodiments of this disclosure, the above-described program evaluation results include object evaluation results corresponding to each of the above-described N object identifiers.
[0032] According to embodiments of this disclosure, determining the program evaluation result corresponding to the program to be evaluated based on the data flow diagram includes:
[0033] Determine the target object node, M associated object nodes, and P target directed edges corresponding to the above object identifier, where M and P are both positive integers;
[0034] According to the preset evaluation rules, the target object data corresponding to the above target object node and the associated object data corresponding to each of the above M associated object nodes are evaluated.
[0035] If it is determined that there is abnormal data in the target object data and the M related object data, the object evaluation result representing that the object data failed the evaluation is obtained; and
[0036] Assuming that the target object data and the M related object data are all normal data, the object evaluation result is obtained, which indicates that the object data has passed the evaluation.
[0037] According to embodiments of this disclosure, the above-described program evaluation method further includes, after determining the program evaluation result corresponding to the program to be evaluated based on the above-described data flow diagram:
[0038] If the object evaluation result corresponding to the above object identifier indicates that the object data has failed the evaluation, the object evaluation result is displayed based on a first predetermined pattern using the above target object node, the above M associated object nodes, and the above P target directed edges; and
[0039] When the object evaluation result corresponding to the above object identifier indicates that the above object data has passed the evaluation, the above object evaluation result is displayed based on the second predetermined mode using the above target object node, the above M associated object nodes and the above P target directed edges.
[0040] According to an embodiment of the present disclosure, the program evaluation method further comprises, before the N object information is obtained according to the N object identifiers in the blood relationship corresponding to the program to be evaluated:
[0041] In response to receiving the program evaluation request, the program to be evaluated indicated by the program evaluation request is obtained;
[0042] The program to be evaluated is parsed to obtain the N object identifiers and the association relationship information; and
[0043] The blood relationship is determined according to the N object identifiers and the association relationship information.
[0044] According to another aspect of the present disclosure, a program evaluation device is provided, comprising:
[0045] A first obtaining module is configured to obtain N object information according to N object identifiers in a blood relationship corresponding to a program to be evaluated, wherein N is a positive integer;
[0046] A first determining module is configured to determine a program verification result according to association relationship information in the blood relationship and the N object information;
[0047] A generating module is configured to generate a data flow direction graph according to the blood relationship, the N object information, and the program verification result, wherein the data flow direction graph comprises object nodes corresponding to the N object identifiers respectively and directed edges between the N object nodes; and
[0048] A second determining module is configured to determine a program evaluation result corresponding to the program to be evaluated according to the data flow direction graph.
[0049] According to another aspect of the present disclosure, an electronic device is provided, comprising:
[0050] One or more processors;
[0051] A memory configured to store one or more instructions,
[0052] When the one or more instructions are executed by the one or more processors, the one or more processors implement the method as described in the present disclosure.
[0053] According to another aspect of the present disclosure, a computer readable storage medium having stored executable instructions is provided, wherein the executable instructions are executed by a processor to implement the method as described in the present disclosure.
[0054] According to another aspect of the present disclosure, a computer program product is provided, which includes computer executable instructions for implementing the method as described in the present disclosure when executed.
[0055] According to an embodiment of the present disclosure, since the data flow graph is generated according to the blood relationship corresponding to the program to be evaluated, the object information and the program verification result, the object information is obtained according to the blood relationship, and the program verification result is determined according to the association relationship information in the blood relationship and the object information, the directed edge in the data flow graph can represent the data dependency relationship between each two object nodes. On this basis, by determining the program evaluation result corresponding to the program to be evaluated according to the data flow graph, at least part of the technical problems that the efficiency and accuracy of Hive program analysis cannot be guaranteed in the related art are overcome. Since the program evaluation result is automatically determined according to the data flow graph, the efficiency of program evaluation is improved. Since the data flow graph is automatically generated according to the blood relationship corresponding to the program to be evaluated, the object information and the program verification result, the accuracy of program evaluation is improved. BRIEF DESCRIPTION OF DRAWINGS
[0056] The above and other objects, features and advantages of the present disclosure will become more apparent from the following description of embodiments of the present disclosure taken in conjunction with the accompanying drawings, in which:
[0057] Figure 1 A system architecture to which a program evaluation method according to an embodiment of the present disclosure can be applied is schematically shown;
[0058] Figure 2 A flowchart of a program evaluation method according to an embodiment of the present disclosure is schematically shown;
[0059] Figure 3 An example schematic diagram of a process of obtaining N pieces of object information according to N object identifiers in a blood relationship corresponding to a program to be evaluated according to an embodiment of the present disclosure is schematically shown;
[0060] Figure 4 A flowchart of a method of determining a program verification result according to association relationship information in a blood relationship and N pieces of object information according to an embodiment of the present disclosure is schematically shown;
[0061] Figure 5 An example schematic diagram of a process of determining association object information according to an association object identifier according to an embodiment of the present disclosure is schematically shown;
[0062] Figure 6 An example schematic diagram of a process of generating a data flow graph according to a blood relationship, N pieces of object information and a program verification result according to an embodiment of the present disclosure is schematically shown;
[0063] Figure 7 An example schematic diagram of a process of determining a program evaluation result corresponding to a program to be evaluated according to a data flow graph is illustratively shown according to an embodiment of the present disclosure;
[0064] Figure 8 An example schematic diagram of a program evaluation process is illustratively shown according to an embodiment of the present disclosure;
[0065] Figure 9 A block diagram of a program evaluation apparatus is illustratively shown according to an embodiment of the present disclosure; and
[0066] Figure 10 A block diagram of an electronic device adapted to implement a program evaluation method is illustratively shown according to an embodiment of the present disclosure. DETAILED DESCRIPTION
[0067] Hereinafter, embodiments of the present disclosure will be described with reference to the accompanying drawings. It should be understood, however, that the description which follows is merely illustrative and is not intended to limit the scope of the present disclosure. In the following detailed description of embodiments of the present disclosure, numerous specific details are set forth in order to provide a thorough understanding of the present disclosure. However, it would be apparent to one skilled in the art that one or more embodiments of the present disclosure can be practiced without these specific details. In other instances, well-known structures and functions have not been described in detail in order to avoid obscuring aspects of the present disclosure.
[0068] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the present disclosure. As used herein, the term "includes" and tautological expressions thereof, such as "including," means the inclusion of but not limited to, such that there can be additional items which are not also listed after such term. As used herein, the term "comprises" and tautological expressions thereof, such as "comprising," means the inclusion of but not limited to, such that there can be additional items which are not also listed after such term.
[0069] All terms used herein (including technical and scientific terms) have the meanings that are commonly understood by one of ordinary skill in the art unless otherwise defined. It should be noted that the terms used herein are defined as having a meaning that is consistent with the context of the specification in which the terms are utilized, and the terms should not be interpreted in an idealized or overly formal way.
[0070] In the case where expressions such as "at least one of A, B, and C, etc." are used, it generally means that the "at least one of A, B, and C" is used in the normal sense, and also covers the case where any combination of A, B, and C is used. In the case where expressions such as "at least one of A, B, or C, etc." are used, it generally means that the "at least one of A, B, or C" is used in the normal sense, and also covers the case where any combination of A, B, and C is used.
[0071] In the technical solutions of the present disclosure, the acquisition, storage, and application of user personal information comply with relevant laws and regulations, necessary security measures are taken, and the public order and good customs are not violated.
[0072] In the technical solutions of the present disclosure, the authorization or consent of the user is obtained before the acquisition or collection of user personal information.
[0073] Since in the analysis and processing process of the Hive program, from the data source to the generation of the final data, there may be a data quality problem at each link. For example, in the case where the data quality of the data source itself is low, if the data quality detection and processing are not performed in the subsequent processing link, the data quality of the Hive table will also be low when the data finally flows to the Hive table. Alternatively, in the data processing process of a certain link, the data may be improperly processed, resulting in low data quality in the subsequent link.
[0074] Therefore, how to determine the data blood relationship is a problem to be solved. The data blood relationship can refer to finding the connection between related data in the data traceability process. However, since the development and test environment is difficult to provide test verification data of sufficient order of magnitude, the efficiency and accuracy of Hive program analysis and optimization cannot be guaranteed.
[0075] To at least partially solve the technical problems existing in the related art, the present disclosure provides a program evaluation method and device, an electronic device, and a computer readable storage medium, which can be applied in the fields of big data technology, data processing technology, and finance. The program evaluation method comprises: obtaining object information corresponding to each of N object identifiers in a blood relationship according to the blood relationship corresponding to a program to be evaluated, wherein N is a positive integer; determining a program verification result according to association relationship information in the blood relationship and the object information corresponding to each of the N object identifiers; generating a data flow direction graph according to the blood relationship, the object information corresponding to each of the N object identifiers, and the program verification result, wherein the data flow direction graph comprises object nodes corresponding to each of the N object identifiers and directed edges between the N object nodes; and determining a program evaluation result corresponding to the program to be evaluated according to the data flow direction graph.
[0076] It should be noted that the program evaluation method and device provided by the embodiments of the present disclosure can be applied in the fields of big data technology, data processing technology, and finance, for example, in the field of data governance technology. The program evaluation method and device provided by the embodiments of the present disclosure can also be applied in any field other than the fields of big data technology, data processing technology, and finance, for example, in the field of software development technology. The application field of the program evaluation method and device provided by the embodiments of the present disclosure is not limited.
[0077] Figure 1 The system architecture to which the program evaluation method according to the embodiments of the present disclosure can be applied is schematically shown. It should be noted that, Figure 1 The system architecture shown is only an example of the system architecture to which the embodiments of the present disclosure can be applied, to help those skilled in the art understand the technical content of the present disclosure, but does not mean that the embodiments of the present disclosure cannot be applied to other devices, systems, environments, or scenarios.
[0078] As Figure 1 shown, the system architecture 100 according to the embodiment can include a first terminal device 101, a second terminal device 102, a third terminal device 103, a network 104, and a server 105. The network 104 is a medium for providing a communication link between the first terminal device 101, the second terminal device 102, the third terminal device 103, and the server 105. The network 104 can include various connection types, such as wired, wireless communication links, or optical fiber cables, etc.
[0079] A user can use at least one of the first terminal device 101, the second terminal device 102, and the third terminal device 103 to interact with the server 105 through the network 104 to receive or send messages, etc. Various communication client applications can be installed on the first terminal device 101, the second terminal device 102, and the third terminal device 103, such as shopping applications, web browser applications, search applications, instant messaging tools, email clients, social platform software, etc. (only as examples).
[0080] The first terminal device 101, the second terminal device 102, and the third terminal device 103 can be various electronic devices with display screens and supporting web browsing, including but not limited to smartphones, tablet computers, laptop computers, desktop computers, etc.
[0081] The server 105 can be a server providing various services, such as a background management server providing support for websites browsed by users using the first terminal device 101, the second terminal device 102, and the third terminal device 103 (only as an example). The background management server can analyze and process received user requests and other data, and feed back the processing results (such as web pages, information, or data, etc. obtained or generated according to user requests) to the terminal devices.
[0082] It should be noted that the program evaluation method provided by the embodiments of the present disclosure can generally be executed by the server 105. Correspondingly, the program evaluation apparatus provided by the embodiments of the present disclosure can generally be arranged in the server 105. The program evaluation method provided by the embodiments of the present disclosure can also be executed by a server or a server cluster different from the server 105 and capable of communicating with the first terminal device 101, the second terminal device 102, the third terminal device 103, and / or the server 105. Correspondingly, the program evaluation apparatus provided by the embodiments of the present disclosure can also be arranged in a server or a server cluster different from the server 105 and capable of communicating with the first terminal device 101, the second terminal device 102, the third terminal device 103, and / or the server 105.
[0083] Alternatively, the program evaluation method provided by the embodiments of the present disclosure can also be executed by the first terminal device 101, the second terminal device 102, or the third terminal device 103, or by other terminal devices different from the first terminal device 101, the second terminal device 102, or the third terminal device 103. Correspondingly, the program evaluation apparatus provided by the embodiments of the present disclosure can also be arranged in the first terminal device 101, the second terminal device 102, or the third terminal device 103, or in other terminal devices different from the first terminal device 101, the second terminal device 102, or the third terminal device 103.
[0084] It should be understood that, Figure 1The number of terminal devices, networks and servers in the figure is only illustrative. According to the implementation needs, there can be any number of terminal devices, networks and servers.
[0085] It should be noted that the serial numbers of the various operations in the following method are only used as a representation of the operation in order to describe, and should not be regarded as representing the execution order of the various operations. The method does not need to be executed in the order shown unless explicitly indicated.
[0086] Figure 2 A flowchart of a program evaluation method according to an embodiment of the disclosure is illustratively shown.
[0087] As Figure 2 shown, the program evaluation method 200 includes operations S210-S240.
[0088] At operation S210, N object information is obtained according to N object identifiers in a blood relationship corresponding to a program to be evaluated. N is a positive integer.
[0089] At operation S220, a program verification result is determined according to the association relationship information in the blood relationship and the N object information.
[0090] At operation S230, a data flow graph is generated according to the blood relationship, the N object information and the program verification result, wherein the data flow graph includes object nodes corresponding to the N object identifiers respectively and directed edges between the N object nodes.
[0091] At operation S240, a program evaluation result corresponding to the program to be evaluated is determined according to the data flow graph.
[0092] According to an embodiment of the disclosure, the application scenarios of the program evaluation method can be set according to actual business needs, which are not limited here. For example, the program evaluation method can be applied to at least one of the following scenarios: a topic aggregation scenario and a data asset modeling development scenario.
[0093] According to an embodiment of the disclosure, since the above scenarios need to extract, transform and load data related to the program to be evaluated based on the hive data warehouse tool of the big data platform, a hive development program is used for modeling, there are a large number of structured query language association actions, and there are a large number of association operations of hive tables. The hive data warehouse tool can map structured data files to database tables, provide SQL query functions, and can convert SQL statements into MapReduce tasks for execution.
[0094] According to an embodiment of the present disclosure, the blood relationship can refer to various relationships formed between data in the whole life cycle of the data. The blood relationship corresponding to the program to be evaluated can be obtained by processing the metadata corresponding to the program to be evaluated.
[0095] According to an embodiment of the present disclosure, after obtaining the blood relationship corresponding to the program to be evaluated, the object information corresponding to each of the N object identifiers in the blood relationship can be obtained according to the blood relationship corresponding to the program to be evaluated. The object information can include the program code segment and the metadata information corresponding to the object identifier. The manner of obtaining the object information can be set according to actual business requirements, which is not limited herein. For example, the object information can be obtained by real-time collection. For example, the original object information corresponding to each of the N object identifiers can be obtained, and the object information can be obtained by processing the original object information. Alternatively, the object information can be obtained from a data source. The data source can include at least one of a local database, a cloud database, a data lake, and a network resource. For example, a data interface can be called to obtain the object information from the data source. Alternatively, the object information can be received from another terminal device.
[0096] According to an embodiment of the present disclosure, after obtaining the object information corresponding to each of the N object identifiers, the program verification result can be determined according to the association relationship information in the blood relationship and the object information corresponding to each of the N object identifiers. The program verification result can include the object verification result corresponding to each of the N object identifiers. The object verification result can be used to represent whether the object data corresponding to each of the N object identifiers passes the evaluation. The object verification result can be determined according to the object information corresponding to the object identifier and the associated object information. The associated object information can be determined according to the relationship information.
[0097] According to an embodiment of the present disclosure, after obtaining the program verification result corresponding to each of the N object identifiers, the data flow graph can be generated according to the blood relationship, the object information corresponding to each of the N object identifiers, and the program verification result. The data flow graph can include a Directed Acyclic Graph (DAG). The data flow graph can include object nodes corresponding to each of the N object identifiers and directed edges between the N object nodes. The object node can be used to represent a subprogram task. The subprogram task can refer to a program code segment. The directed edge can be used to represent the dependency relationship between the subprogram tasks. The dependency relationship can refer to the target subprogram task can be executed only when the preceding subprogram task is executed successfully.
[0098] According to an embodiment of the present disclosure, an object node and a directed edge corresponding to an object identifier can be constructed according to object information corresponding to the object identifier, an object verification result, and association relationship information.
[0099] According to an embodiment of the present disclosure, after obtaining the data flow graph, a program evaluation result corresponding to the program to be evaluated can be determined according to the data flow graph. The program evaluation result can include object evaluation results corresponding to the N object identifiers respectively. The object evaluation result can be used to represent whether the object data corresponding to the object identifier passes the evaluation.
[0100] According to an embodiment of the present disclosure, since the data flow graph is generated according to the blood relationship corresponding to the program to be evaluated, the object information, and the program verification result, the object information is obtained according to the blood relationship, and the program verification result is determined according to the association relationship information and the object information in the blood relationship, the directed edge in the data flow graph can represent the data dependency relationship between each two object nodes. On this basis, by determining the program evaluation result corresponding to the program to be evaluated according to the data flow graph, at least part of the technical problems that the efficiency and accuracy of Hive program analysis cannot be guaranteed in the related art are overcome. Since the program evaluation result is automatically determined according to the data flow graph, the efficiency of program evaluation is improved. Since the data flow graph is automatically generated according to the blood relationship corresponding to the program to be evaluated, the object information, and the program verification result, the accuracy of program evaluation is improved.
[0101] Reference will be made to the following description Figures 3-8 Further description will be made to the program evaluation method 200 according to an embodiment of the present disclosure.
[0102] According to an embodiment of the present disclosure, operation S210 can include the following operations.
[0103] According to the N object identifiers, storage path information corresponding to the N object identifiers respectively is determined. A target interface is called to obtain N object information from the data lake according to the storage path information corresponding to the N object identifiers respectively.
[0104] According to an embodiment of the present disclosure, the project corresponding to the program to be evaluated can have a development environment (i.e., development), a production environment (i.e., production), and a test environment (i.e., test). A development environment file corresponding to the development environment, a production environment file corresponding to the production environment, and a test environment file corresponding to the test environment can be created under the root directory of the project.
[0105] According to embodiments of this disclosure, a target environment file corresponding to the target environment can be determined by selecting a target environment. Based on N object identifiers in the program to be evaluated, storage path information corresponding to each of the N object identifiers is determined. A target interface is determined based on the target environment file. On this basis, the target interface can be called to retrieve object information corresponding to each of the N object identifiers from the data lake, based on the storage path information. The object information may include at least one of object data, time information, and verification rules.
[0106] Figure 3 The illustration shows an example of a process for obtaining object information corresponding to N object identifiers in a blood relationship based on the blood relationship corresponding to the program to be evaluated, according to an embodiment of the present disclosure.
[0107] like Figure 3 As shown in step 300, the storage path information 302 corresponding to object identifier 301 can be determined based on object identifier 301. The target interface 303 is called to retrieve object information 304 from the data lake based on the storage path information 302.
[0108] Figure 4 The flowchart illustrates a method for determining a program verification result based on blood relation information and information about N objects, according to an embodiment of the present disclosure.
[0109] like Figure 4 As shown, the method 400 may include operations S421 to S426.
[0110] In operation S421, the associated object identifier is determined based on the association relationship information.
[0111] In operation S422, the associated object information is determined based on the associated object identifier, wherein the associated object information includes associated object data and associated time information.
[0112] In operation S423, the query scale information corresponding to the object identifier is determined based on the time information and associated time information.
[0113] In operation S424, the blood relationship is verified based on the query scale information, and the verification result is obtained.
[0114] If the verification results indicate an anomaly in the bloodline relationship, operation S425 can be executed. Operation S425 determines the verification results for objects whose data failed the evaluation.
[0115] If the verification result indicates that the blood relationship is normal, operation S426 can be executed. In operation S426, it is determined that the data representing the object passes the object verification result being evaluated.
[0116] According to an embodiment of the present disclosure, the object information can comprise object data and time information. The program verification result can comprise object verification results corresponding to the N object identifiers respectively.
[0117] According to an embodiment of the present disclosure, the object information corresponding to the object identifier A can comprise object data a1 and time information a2. After obtaining the object information corresponding to the N object identifiers respectively, the associated object identifiers can be determined according to the association relationship information corresponding to the object identifiers. For example, the association relationship information corresponding to the object identifier A can comprise object identifier A->object identifier B and object identifier A->object identifier C, in which case, the associated object identifiers can be determined to comprise the object identifier B and the object identifier C.
[0118] According to an embodiment of the present disclosure, after obtaining the associated object identifiers, the associated object information can be determined according to the associated object identifiers. The associated object information can comprise associated object data and associated time information. For example, the associated object information corresponding to the object identifier B can comprise associated object data b1 and associated time information b2. The associated object information corresponding to the object identifier C can comprise associated object data c1 and associated time information c2.
[0119] According to an embodiment of the present disclosure, after obtaining the associated object information, the query scale information corresponding to the object identifiers can be determined according to the time information and the associated time information. The query scale information can be used to represent the query data size of each association action. For example, the query scale information can be determined according to the object data a1, the associated object data b1 and the associated object data c1. The determination manner of the query scale information can be set according to actual business requirements, which is not limited herein. For example, the cumulative value of the time information and the associated time information can be determined, and the query scale information can be determined according to the cumulative value. Alternatively, the time information and the associated time information can be weighted according to a predetermined coefficient to obtain the query scale information.
[0120] According to an embodiment of the present disclosure, after obtaining the query scale information, the blood relationship can be verified according to the query scale information to obtain a verification result. The verification result can be used to represent whether the blood relationship is abnormal. For example, whether the blood relationship is abnormal can be determined by judging whether the association condition produces data inflation.
[0121] According to an embodiment of the present disclosure, the operation S422 can comprise the following operations.
[0122] According to the association object identifier, candidate association object information is determined, wherein the candidate association object information includes candidate association object data and candidate association time information. According to the verification rule, integrity verification is performed on the candidate association object data to obtain an integrity verification result. In response to the integrity verification result representing that the candidate association object data passes the integrity verification, the candidate association object information is determined as the association object information.
[0123] According to an embodiment of the present disclosure, the object information can further include a verification rule.
[0124] According to an embodiment of the present disclosure, the integrity verification can be performed on the candidate association object data according to the verification rule in the object information. The verification rule can include at least one of a type verification rule and a field verification rule. The integrity verification can include at least one of data type verification and data integrity verification. The data type verification can be performed on the candidate association object data according to the type verification rule to obtain a data type verification result. In a case where the data type verification result represents that the data type verification passes, the data integrity verification can be performed on the candidate association object data according to the field verification rule to obtain an integrity verification result.
[0125] According to an embodiment of the present disclosure, since the object verification result is obtained by verifying the blood relationship according to the query scale information corresponding to the object identifier, the query scale information is determined according to the time information in the object information and the association time information in the association object information, and the association object information is determined by performing integrity verification on the candidate association object data, the automatic determination of the object verification result is realized. On this basis, since the program verification result includes the object verification result corresponding to each of the N object identifiers, the efficiency of determining the program verification result is improved.
[0126] Figure 5 An example schematic diagram of a process of determining association object information according to an association object identifier is schematically shown according to an embodiment of the present disclosure.
[0127] As shown in FIG. 5, in 500, candidate association object information 502 can be determined according to an association object identifier 501. The candidate association object information 502 can include candidate association object data 5021 and candidate association time information 5022. Figure 5 Integrity verification can be performed on the candidate association object data 5021 according to a verification rule 503 to obtain an integrity verification result 504. In response to the integrity verification result 504 representing that the candidate association object data 5021 passes the integrity verification, the candidate association object information 502 can be determined as association object information 505.
[0128]
[0129] According to an embodiment of the present disclosure, operation S230 can include the following operations.
[0130] According to the object information and the object verification result, an object node corresponding to the object identifier is constructed. According to the association relationship information, a directed edge corresponding to the object identifier is constructed. According to the object node corresponding to the object identifier and the directed edge, a data flow graph is generated.
[0131] According to an embodiment of the present disclosure, the data flow graph can include object nodes corresponding to N object identifiers respectively and directed edges between the N object nodes. The object node can be used to represent a subprogram task. The subprogram task can refer to a program code segment. The directed edge can be used to represent the dependency relationship between the subprogram tasks. The data flow graph can be used to show the data processing process corresponding to the program to be evaluated.
[0132] According to an embodiment of the present disclosure, since the data flow graph is generated according to the object node corresponding to the object identifier and the directed edge, the object node is constructed according to the object information corresponding to the object identifier and the object verification result, and the directed edge is constructed according to the association relationship information, it is beneficial for subsequent evaluation of the program to be evaluated based on the directed acyclic graph principle, thereby improving the accuracy of program evaluation.
[0133] Figure 6 An example schematic diagram of a process of generating a data flow graph according to blood relationship, N object information and program verification result according to an embodiment of the present disclosure is schematically shown.
[0134] As shown in Figure 6 In 600, for each object identifier 601 in N object identifiers 601, an object node 605 corresponding to the object identifier 601 can be constructed according to the object information 603 corresponding to the object identifier 601 and the object verification result 604. A directed edge 606 corresponding to the object identifier 601 can be constructed according to the association relationship information 602.
[0135] On this basis, a data flow graph 607 can be generated according to the object node 605 corresponding to the object identifier 601 and the directed edge 606.
[0136] According to an embodiment of the present disclosure, operation S240 can include the following operations.
[0137] Identify the target object node corresponding to the object identifier, M associated object nodes, and P directed edges, where M and P are both positive integers. Evaluate the target object data corresponding to the target object node and the associated object data corresponding to each of the M associated object nodes according to preset evaluation rules. If abnormal data is found in the target object data and the M associated object data, the evaluation result for the represented object data is "not evaluated." If both the target object data and the M associated object data are normal data, the evaluation result for the represented object data is "passed."
[0138] According to embodiments of this disclosure, the program evaluation results may include object evaluation results corresponding to each of the N object identifiers.
[0139] According to embodiments of this disclosure, the object evaluation results corresponding to each of the N object identifiers may have an object evaluation type. The object evaluation type may include at least one of the following: pre-screening logic evaluation, invalid field evaluation, subquery size evaluation, non-primary key join evaluation, structured query language evaluation, Cartesian product evaluation, partitioned table evaluation, statement usage evaluation, execution time evaluation, and disk usage evaluation.
[0140] Figure 7 The illustration shows an example diagram of a process for determining the program evaluation result corresponding to the program to be evaluated based on a data flow diagram according to an embodiment of the present disclosure.
[0141] like Figure 7 As shown in 700, for each of the N object identifiers 701, the target object node 702, M associated object nodes 703, and P target directed edges 704 corresponding to the object identifier 701 can be determined.
[0142] According to the preset evaluation rule 707, the target object data 705 corresponding to the target object node 702 and the associated object data 706 corresponding to each of the M associated object nodes 703 are evaluated.
[0143] In operation S710, is it determined that there is abnormal data in the target object data and the data of M related objects?
[0144] If so, then the evaluation result 708 for the object whose data failed the evaluation can be obtained.
[0145] If not, then the object evaluation result 709 can be obtained by representing the object data through the evaluation.
[0146] According to embodiments of this disclosure, the program evaluation method 200 may further include the following operations.
[0147] In a case where the object evaluation result corresponding to the object identifier indicates that the object data fails to pass the evaluation, the object evaluation result is displayed based on a first predetermined mode by using the target object node, the M associated object nodes, and the P target directed edges.
[0148] According to an embodiment of the present disclosure, in a case where the object evaluation result corresponding to the object identifier indicates that the object data passes the evaluation, the object evaluation result can be displayed based on a second predetermined mode. The second predetermined mode can be set according to actual business requirements, which is not limited herein. For example, the second predetermined mode can include a second predetermined color and / or a second predetermined icon.
[0149] According to an embodiment of the present disclosure, taking the object evaluation type as structured query language evaluation as an example, the splittable associated table included in the structured query language can be displayed by using the first predetermined color. Alternatively, the complex splittable structured query language can be identified by using the first predetermined icon.
[0150] According to an embodiment of the present disclosure, taking the object evaluation type as statement usage evaluation as an example, the nuion all statement in the object data can be identified by using the first predetermined icon, and the nuion all statement can be transformed into the form of insert into temporary table by using the first predetermined color.
[0151] According to an embodiment of the present disclosure, taking the object evaluation type as execution time consumption evaluation as an example, the COUNT(DISTINCT) in the object data and the most time-consuming step in the overall execution process can be identified by using the first predetermined icon, and the processing step that can enable local mode or parallel mode execution can be displayed by using the first predetermined color.
[0152] According to an embodiment of the present disclosure, taking the object evaluation type as disk occupancy evaluation as an example, the disk occupancy estimation of the processed data table in the HDFS storage system can be displayed by using the first predetermined color. Alternatively, the disk occupancy estimation can be identified by using the first predetermined icon.
[0153] According to an embodiment of the present disclosure, in a case where the object evaluation result corresponding to the object identifier indicates that the object data passes the evaluation, the object evaluation result can be displayed based on a second predetermined mode. The second predetermined mode can be set according to actual business requirements, which is not limited herein. For example, the second predetermined mode can include a second predetermined color and / or a second predetermined icon.
[0154] According to an embodiment of the present disclosure, since the object evaluation result is obtained by evaluating the target object data corresponding to the target object node and the associated object data corresponding to each of the M associated object nodes according to the preset evaluation rule, the developer can complete the program verification in the early self-test stage without the support of hardware resources and test data, thereby reducing the development cost and shortening the research and development process. On this basis, the object evaluation result is displayed based on the predetermined mode, which helps the developer to optimize the subsequent processing link design and coding optimization details, thereby improving the evaluation efficiency of the to-be-evaluated program.
[0155] According to an embodiment of the present disclosure, the program evaluation method 200 can further include the following operations.
[0156] In response to receiving the program evaluation request, the to-be-evaluated program indicated by the program evaluation request is obtained. The to-be-evaluated program is parsed to obtain N object identifiers and association relationship information. The blood relationship is determined according to the N object identifiers and the association relationship information.
[0157] According to an embodiment of the present disclosure, the code for generating the program evaluation request can be written in a script in advance. In response to detecting a program evaluation operation performed by a target user using a user terminal, the target terminal can run the script to generate a program evaluation request message, and can send the program evaluation request message to the server, so that the server evaluates the to-be-evaluated program corresponding to the program evaluation operation according to the program evaluation request message.
[0158] According to an embodiment of the present disclosure, after the server receives the program evaluation request, the to-be-evaluated program indicated by the program evaluation request can be obtained. By parsing the to-be-evaluated program, N object identifiers and association relationship information included in the to-be-evaluated program can be obtained. The N object identifiers can each correspond to a program code segment. The association relationship information can be used to represent the association relationship between the program code segments corresponding to the N object identifiers. After obtaining the N object identifiers and the association relationship information, the blood relationship can be determined according to the N object identifiers and the association relationship information.
[0159] Figure 8 An example schematic diagram of a program evaluation process according to an embodiment of the present disclosure is schematically shown.
[0160] As shown in Figure 8 In 800, in response to receiving a program evaluation request 801, a to-be-evaluated program 802 indicated by the program evaluation request 801 can be obtained. The to-be-evaluated program 801 is parsed to obtain N object identifiers 8031 and association relationship information 8032. The blood relationship 804 can be determined according to the N object identifiers 8031 and the association relationship information 8032.
[0161] N pieces of object information 805 can be acquired according to N pieces of object identification 8031 in the blood relationship 804 corresponding to the program to be evaluated 802. The program verification result 806 is determined according to the blood relationship 804 and the N pieces of object information 805.
[0162] According to the N pieces of object information 805 corresponding to the N pieces of object identification respectively and the program verification result 806, the object node 807 is constructed. According to the association relationship information 8032, the directed edge 808 is constructed. According to the object node 807 and the directed edge 808, the data flow graph 809 is generated. According to the data flow graph 809, the program evaluation result 810 corresponding to the program to be evaluated 802 is determined.
[0163] The above is only an exemplary embodiment, but is not limited thereto, and other program evaluation methods known in the art can also be included, as long as the efficiency and accuracy of program evaluation can be improved.
[0164] Figure 9 A block diagram of a program evaluation apparatus according to an embodiment of the present disclosure is schematically shown.
[0165] As shown in Figure 9 The program evaluation apparatus 900 can include a first acquisition module 910, a first determination module 920, a generation module 930, and a second determination module 940.
[0166] The first acquisition module 910 is configured to acquire N pieces of object information according to N pieces of object identification in a blood relationship corresponding to a program to be evaluated. N is a positive integer.
[0167] The first determination module 920 is configured to determine a program verification result according to association relationship information in the blood relationship and the N pieces of object information.
[0168] The generation module 930 is configured to generate a data flow graph according to the blood relationship, the N pieces of object information, and the program verification result, wherein the data flow graph includes object nodes corresponding to the N pieces of object identification respectively and directed edges between the N pieces of object nodes.
[0169] The second determination module 940 is configured to determine a program evaluation result corresponding to the program to be evaluated according to the data flow graph.
[0170] According to an embodiment of the present disclosure, the first acquisition module 910 can include a first determination unit and a first acquisition unit.
[0171] The first determination unit is configured to determine storage path information corresponding to the N pieces of object identification respectively according to the N pieces of object identification.
[0172] The first acquisition unit is configured to call a target interface to acquire the N pieces of object information from a data lake according to the storage path information corresponding to the N pieces of object identification respectively.
[0173] According to an embodiment of the present disclosure, the object information comprises object data and time information, and the program verification result comprises object verification results corresponding to the N object identifiers respectively.
[0174] According to an embodiment of the present disclosure, the first determination module 920 can comprise a second determination unit, a third determination unit, a fourth determination unit, a verification unit, a fifth determination unit and a sixth determination unit.
[0175] The second determination unit is configured to determine the associated object identifier according to the association relationship information.
[0176] The third determination unit is configured to determine the associated object information according to the associated object identifier, wherein the associated object information comprises associated object data and associated time information.
[0177] The fourth determination unit is configured to determine the query scale information corresponding to the object identifier according to the time information and the associated time information.
[0178] The verification unit is configured to verify the blood relationship according to the query scale information to obtain a verification result.
[0179] The fifth determination unit is configured to determine an object verification result representing that the object data fails to pass the evaluation when the verification result represents that the blood relationship is abnormal.
[0180] The sixth determination unit is configured to determine an object verification result representing that the object data passes the evaluation when the verification result represents that the blood relationship is normal.
[0181] According to an embodiment of the present disclosure, the object information further comprises a verification rule.
[0182] According to an embodiment of the present disclosure, the third determination unit can comprise a first determination sub-unit, an integrity verification sub-unit and a second determination sub-unit.
[0183] The first determination sub-unit is configured to determine candidate associated object information according to the associated object identifier, wherein the candidate associated object information comprises candidate associated object data and candidate associated time information.
[0184] The integrity verification sub-unit is configured to perform integrity verification on the candidate associated object data according to the verification rule to obtain an integrity verification result.
[0185] The second determination sub-unit is configured to determine the candidate associated object information as the associated object information in response to the integrity verification result representing that the candidate associated object data passes the integrity verification.
[0186] According to an embodiment of the present disclosure, the generation module 930 can comprise a first construction unit, a second construction unit and a generation unit.
[0187] The first construction unit is configured to construct an object node corresponding to the object identifier according to the object information and the object verification result.
[0188] The second construction unit is configured to construct a directed edge corresponding to the object identifier according to the association relationship information.
[0189] The generation unit is configured to generate a data flow graph according to the object node corresponding to the object identifier and the directed edge.
[0190] According to an embodiment of the present disclosure, the program evaluation result includes an object evaluation result corresponding to each of the N object identifiers.
[0191] According to an embodiment of the present disclosure, the second determination module 940 can include a seventh determination unit, an evaluation unit, an eighth determination unit, and a ninth determination unit.
[0192] The seventh determination unit is configured to determine a target object node corresponding to the object identifier, M associated object nodes, and P target directed edges.
[0193] The evaluation unit is configured to evaluate target object data corresponding to the target object node and associated object data corresponding to each of the M associated object nodes according to a preset evaluation rule.
[0194] The eighth determination unit is configured to obtain an object evaluation result indicating that the object data fails the evaluation when it is determined that there is abnormal data in the target object data and the M associated object data.
[0195] The ninth determination unit is configured to obtain an object evaluation result indicating that the object data passes the evaluation when it is determined that the target object data and the M associated object data are both normal data.
[0196] According to an embodiment of the present disclosure, the program evaluation device 900 can further include a first display module and a second display module.
[0197] The first display module is configured to display the object evaluation result based on a first predetermined mode using the target object node, the M associated object nodes, and the P target directed edges when the object evaluation result corresponding to the object identifier indicates that the object data fails the evaluation.
[0198] The second display module is configured to display the object evaluation result based on a second predetermined mode using the target object node, the M associated object nodes, and the P target directed edges when the object evaluation result corresponding to the object identifier indicates that the object data passes the evaluation.
[0199] According to an embodiment of the present disclosure, the program evaluation device 900 can further include a second acquisition module, an analysis processing module, and a third determination module.
[0200] The second obtaining module is configured to, in response to receiving the program evaluation request, obtain a program to be evaluated indicated by the program evaluation request.
[0201] The parsing processing module is configured to perform parsing processing on the program to be evaluated to obtain N object identifiers and association relationship information.
[0202] The third determining module is configured to determine the blood relationship according to the N object identifiers and the association relationship information.
[0203] Any one or more of the modules, sub-modules, units, sub-units according to the embodiments of the present disclosure, or at least part of the functions of any one or more of the modules, sub-modules, units, sub-units can be implemented in one module. Any one or more of the modules, sub-modules, units, sub-units according to the embodiments of the present disclosure can be split into multiple modules for implementation. Any one or more of the modules, sub-modules, units, sub-units according to the embodiments of the present disclosure can be at least partially implemented as a hardware circuit, such as a field programmable gate array (FPGA), a programmable logic array (PLA), a system on chip, a system on substrate, a system on package, an application specific integrated circuit (ASIC), or any other reasonable way of hardware or firmware through integration or packaging of circuits, or in any one of software, hardware and firmware or in an appropriate combination of any one or more of them. Alternatively, one or more of the modules, sub-modules, units, sub-units according to the embodiments of the present disclosure can be at least partially implemented as computer program modules that can perform corresponding functions when the computer program modules are run.
[0204] For example, any multiple of the first obtaining module 910, the first determining module 920, the generating module 930 and the second determining module 940 can be combined in one module / unit / sub-unit, or any one module / unit / sub-unit can be split into multiple modules / units / sub-units. Or, at least part of the function of one or more of the modules / units / sub-units can be combined with at least part of the function of other modules / units / sub-units, and implemented in one module / unit / sub-unit. According to an embodiment of the present disclosure, at least one of the first obtaining module 910, the first determining module 920, the generating module 930 and the second determining module 940 can be at least partially implemented as a hardware circuit, such as a field programmable gate array (FPGA), a programmable logic array (PLA), a system on chip, a system on board, a system on package, an application specific integrated circuit (ASIC), or any other reasonable manner of hardware or firmware that can be integrated or packaged on a circuit, or implemented in any one of software, hardware and firmware or in a proper combination of any of them. Or, at least one of the first obtaining module 910, the first determining module 920, the generating module 930 and the second determining module 940 can be at least partially implemented as a computer program module that can perform corresponding functions when the computer program module is run.
[0205] It should be noted that the program evaluation device part in the embodiments of the present disclosure corresponds to the program evaluation method part in the embodiments of the present disclosure, and the description of the program evaluation device part is specifically referred to the program evaluation method part, which will not be repeated here.
[0206] Figure 10 A block diagram of an electronic device suitable for implementing the program evaluation method according to an embodiment of the present disclosure is schematically shown. Figure 10 The electronic device shown is only an example, and should not bring any limitation to the functions and use range of the embodiments of the present disclosure.
[0207] As Figure 10 shown, the computer electronic device 1000 according to an embodiment of the present disclosure includes a processor 1001, which can perform various appropriate actions and processes according to programs stored in a read-only memory (ROM) 1002 or programs loaded from a storage part 1009 to a random access memory (RAM) 1003. The processor 1001 may, for example, include a general-purpose microprocessor (such as a CPU), an instruction set processor and / or a related chipset, and / or a special-purpose microprocessor (such as an application specific integrated circuit (ASIC)), etc. The processor 1001 can also include an on-board memory for cache use. The processor 1001 can include a single processing unit or multiple processing units for performing different actions of the method processes according to the embodiments of the present disclosure.
[0208] In the RAM 1003, various programs and data required for the operation of the electronic device 1000 are stored. The processor 1001, the ROM 1002, and the RAM 1003 are connected to each other via the bus 1004. The processor 1001 performs various operations of the method flow according to the embodiments of the present disclosure by executing the programs in the ROM 1002 and / or the RAM 1003. It is to be noted that the programs can also be stored in one or more memories other than the ROM 1002 and the RAM 1003. The processor 1001 can also perform various operations of the method flow according to the embodiments of the present disclosure by executing the programs stored in the one or more memories.
[0209] According to an embodiment of the present disclosure, the electronic device 1000 can further include an input / output (I / O) interface 1005, which is also connected to the bus 1004. The electronic device 1000 can further include one or more of the following components connected to the input / output (I / O) interface 1005: an input part 1006 including a keyboard, a mouse, etc.; an output part 1007 including a display such as a cathode ray tube (CRT), a liquid crystal display (LCD), etc., and a speaker, etc.; a storage part 1008 including a hard disk, etc.; and a communication part 1009 including a network interface card such as a LAN card, a modem, etc. The communication part 1009 performs communication processing via a network such as the Internet. A drive 1010 is also connected to the input / output (I / O) interface 1005 as necessary. A removable medium 1011 such as a magnetic disk, an optical disk, a magneto-optical disk, a semiconductor memory, etc. is attached to the drive 1010 as necessary, so that a computer program read therefrom is installed in the storage part 1008 as necessary.
[0210] According to an embodiment of the present disclosure, the method flow according to the embodiments of the present disclosure can be implemented as a computer software program. For example, the embodiments of the present disclosure include a computer program product comprising a computer program carried on a computer-readable storage medium, the computer program containing program codes for executing the methods shown in the flowcharts. In such embodiments, the computer program can be downloaded and installed from a network by the communication part 1009, and / or installed from the removable medium 1011. When the computer program is executed by the processor 1001, the above-described functions defined in the system of the embodiments of the present disclosure are performed. According to an embodiment of the present disclosure, the system, the device, the apparatus, the module, the unit, etc. described above can be implemented by computer program modules.
[0211] The present disclosure also provides a computer readable storage medium, which can be included in the device / apparatus / system described in the above embodiments, or can exist independently without being assembled into the device / apparatus / system. The above computer readable storage medium carries one or more programs, which, when executed, implement the method according to the embodiments of the present disclosure.
[0212] According to embodiments of the present disclosure, the computer readable storage medium can be a non-volatile computer readable storage medium. For example, it can include, but is not limited to: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the present disclosure, the computer readable storage medium can be any tangible medium that contains or stores a program, which can be used by or in connection with an instruction execution system, apparatus, or device.
[0213] For example, according to embodiments of the present disclosure, the computer readable storage medium can include one or more memories of the ROM 1002 and / or the RAM 1003 described above and / or one or more memories other than the ROM 1002 and the RAM 1003.
[0214] Embodiments of the present disclosure also include a computer program product, which includes a computer program containing program codes for executing the method provided by the embodiments of the present disclosure, and when the computer program product is run on an electronic device, the program codes are used to make the electronic device implement the program evaluation method provided by the embodiments of the present disclosure.
[0215] When the computer program is executed by the processor 1001, the above functions defined in the system / apparatus of the embodiments of the present disclosure are performed. According to embodiments of the present disclosure, the system, apparatus, module, unit, etc. described above can be implemented by computer program modules.
[0216] In one embodiment, the computer program can rely on tangible storage media such as optical storage media, magnetic storage media, etc. In another embodiment, the computer program can also be transmitted, distributed, and downloaded in the form of a signal on a network medium. The computer program contains program codes, which can be transmitted by any appropriate network medium, including but not limited to wireless, wired, etc., or any suitable combination of the foregoing.
[0217] According to embodiments of the present disclosure, program code of a computer program provided by embodiments of the present disclosure can be written in any combination of one or more programming languages, and specifically, can be implemented using a high-level procedural and / or object-oriented programming language, and / or an assembly / machine language. Programming languages include, but are not limited to, Java, C++, python, "C" language, or similar programming languages. Program code can execute entirely on a user's computing device, partly on a user device, partly on a remote computing device, or entirely on a remote computing device or server. In the latter scenario, the remote computing device can be connected to the user's computing device through any kind of network, including a local area network (LAN) or a wide area network (WAN), or the connection can be made to an external computing device, such as through the Internet using an Internet Service Provider.
[0218] The flow diagrams and the block diagrams in the drawings are illustrations of architectures, functionalities, and operations of possible implementations of systems, methods, and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flow diagrams or block diagrams can represent a module, a segment, or a portion of code, which comprises one or more executable instructions for implementing the specified logical functions. It should also be noted that in some alternative implementations, the functions noted in the blocks can occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and / or flow diagrams, and combinations thereof, can be implemented by special purpose hardware-based systems that perform the specified functions or operations, or combinations of special purpose hardware and computer instructions.
[0219] Embodiments of the present disclosure have been described above. However, these embodiments are merely intended to illustrate the present disclosure, and are not intended to limit the scope of the present disclosure. Although each of the embodiments is described above separately, this does not mean that the measures in each of the embodiments cannot be used advantageously in combination. The scope of the present disclosure is defined by the appended claims and their equivalents. Without departing from the scope of the present disclosure, those skilled in the art can make various substitutions and modifications, and these substitutions and modifications should all fall within the scope of the present disclosure.
Claims
1. A program evaluation method, comprising: obtaining N object information according to N object identifiers in a blood relationship corresponding to a program to be evaluated, wherein the object information comprises object data and time information, and N is a positive integer; determining an associated object identifier according to association relationship information in the blood relationship; determining associated object information according to the associated object identifier, wherein the associated object information comprises associated object data and associated time information; determining query scale information corresponding to the object identifier according to the time information and the associated time information, wherein the query scale information is used to represent the query data size of each association action, and the query scale information is determined according to the cumulative value of the time information and the associated time information, or is obtained by weighting the time information and the associated time information according to a predetermined coefficient; verifying the blood relationship by judging whether an association condition produces data inflation according to the query scale information, to obtain a verification result, wherein the verification result is used to represent whether the blood relationship is abnormal; determining a program verification result according to the verification result, wherein the program verification result comprises object verification results corresponding to the N object identifiers respectively; generating a data flow direction graph according to the blood relationship, the N object information and the program verification result, wherein the data flow direction graph comprises object nodes corresponding to the N object identifiers respectively and directed edges between the N object nodes; and determining a program evaluation result corresponding to the program to be evaluated according to the data flow direction graph. The obtaining N object information according to N object identifiers in a blood relationship corresponding to a program to be evaluated comprises:
2. The method of claim 1, wherein, determining storage path information corresponding to the N object identifiers respectively according to the N object identifiers; and calling a target interface to obtain the N object information from a data lake according to the storage path information corresponding to the N object identifiers respectively.
3. The method of claim 1, wherein the determining a program verification result according to the verification result comprises: in a case where the verification result represents that the blood relationship is abnormal, determining the object verification result representing that the object data fails to pass evaluation; and in a case where the verification result represents that the blood relationship is normal, determining the object verification result representing that the object data passes evaluation. The object information further comprises a verification rule; 4. The method of claim 3, wherein, the determining associated object information according to the associated object identifier comprises: determining candidate associated object information according to the associated object identifier, wherein the candidate associated object information comprises candidate associated object data and candidate associated time information; performing integrity verification on the candidate associated object data according to the verification rule to obtain an integrity verification result; and in response to the integrity verification result representing that the candidate associated object data passes integrity verification, determining the candidate associated object information as the associated object information. The generating a data flow direction graph according to the blood relationship, the N object information and the program verification result comprises:
5. The method of any one of claims 1 to 4, wherein, construct an object node corresponding to the object identifier according to the object information and the object verification result; construct a directed edge corresponding to the object identifier according to the association relationship information; and generate the data flow graph according to the object node and the directed edge corresponding to the object identifier.
6. The method of any one of claims 1 to 4, wherein, The program evaluation result includes an object evaluation result corresponding to each of the N object identifiers; The program evaluation result corresponding to the program to be evaluated is determined according to the data flow graph, which includes: determining a target object node, M associated object nodes and P target directed edges corresponding to the object identifier, wherein M and P are positive integers; According to a preset evaluation rule, the target object data corresponding to the target object node and the associated object data corresponding to each of the M associated object nodes are evaluated; In a case where it is determined that the target object data and the M associated object data exist abnormal data, the object evaluation result indicating that the object data fails to pass the evaluation is obtained; and In a case where it is determined that the target object data and the M associated object data are normal data, the object evaluation result indicating that the object data passes the evaluation is obtained.
7. The method of claim 6, further comprising, after determining the program evaluation result corresponding to the program to be evaluated according to the data flow graph: in a case where the object evaluation result corresponding to the object identifier indicates that the object data fails to pass the evaluation, displaying the object evaluation result based on a first predetermined mode using the target object node, the M associated object nodes and the P target directed edges; and in a case where the object evaluation result corresponding to the object identifier indicates that the object data passes the evaluation, displaying the object evaluation result based on a second predetermined mode using the target object node, the M associated object nodes and the P target directed edges.
8. The method of any one of claims 1 to 4, further comprising, before obtaining the object information corresponding to the N object identifiers in the blood relationship corresponding to the program to be evaluated: in response to receiving a program evaluation request, obtaining the program to be evaluated indicated by the program evaluation request; performing parsing processing on the program to be evaluated to obtain the N object identifiers and the association relationship information; and determining the blood relationship according to the N object identifiers and the association relationship information.
9. A program evaluation apparatus, comprising: a first obtaining module configured to obtain N object information according to N object identifiers in a blood relationship corresponding to a program to be evaluated, wherein the object information includes object data and time information, and N is a positive integer; a first determining module configured to determine a program verification result according to association relationship information in the blood relationship and the N object information; The generation module is configured to generate a data flow graph based on the bloodline relationship, the information of the N objects, and the program verification result, wherein the data flow graph includes object nodes corresponding to the respective identifiers of the N objects and directed edges between the N object nodes; and The second determining module is used to determine the program evaluation result corresponding to the program to be evaluated based on the data flow diagram. The first determining module includes: a second determining unit, configured to determine an associated object identifier based on the association relationship information in the bloodline relationship; a third determining unit, configured to determine associated object information based on the associated object identifier, wherein the associated object information includes associated object data and association time information; a fourth determining unit, configured to determine query scale information corresponding to the object identifier based on the time information and the association time information, wherein the query scale information is used to characterize the amount of query data for each association action, and the query scale information is determined based on the cumulative value of the time information and the association time information, or by weighting the time information and the association time information according to a predetermined coefficient; a verification unit, configured to verify the bloodline relationship based on the query scale information by judging whether the association condition causes data inflation, and obtain a verification result, wherein the verification result is used to characterize whether there is an anomaly in the bloodline relationship; and to determine a program verification result based on the verification result, wherein the program verification result includes the object verification result corresponding to each of the N object identifiers.
10. An electronic device, comprising: One or more processors; Memory, used to store one or more instructions. When the one or more instructions are executed by the one or more processors, the one or more processors cause the one or more processors to implement the method of any one of claims 1 to 8.
11. A computer-readable storage medium having executable instructions stored thereon, which, when executed by a processor, cause the processor to perform the method of any one of claims 1 to 8.
12. A computer program product comprising computer-executable instructions, which, when executed, are used to implement the method of any one of claims 1 to 8.
Citation Information
Patent Citations
Evaluation method and device of application program, computer device and storage medium
CN110008390A
Data consanguinity analysis method, device and equipment and computer readable storage medium
CN111694858A