Data analysis methods, apparatus, devices, and storage media
The method constructs field query databases from code repositories to analyze data flow direction, addressing the challenge of incomplete data lineage tracking in complex environments, ensuring secure, accurate, and accessible data management.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-12-11
- Publication Date
- 2026-03-13
AI Technical Summary
Current data governance systems lack an effective method to analyze the complete flow direction of specific types of data, particularly in complex data environments, making it difficult to track data lineage at the field level.
A data analysis method and device that constructs field query databases based on code repositories of nodes to determine the flow direction of target type data by executing queries on these databases, utilizing technologies like CodeQL to convert code into databases and analyze service links.
Enables tracking and analyzing the flow of target type data across multiple nodes, providing a comprehensive understanding of data collection, transmission, storage, access, and disposal scenarios, thereby enhancing data governance.
Smart Images

Figure 2026508807000001_ABST
Abstract
Description
Technical Field
[0005] , ,
[0001] This application claims the priority of a Chinese patent application filed on December 16, 2022, with the title "Data Analysis Method, Device, Equipment and Storage Medium" and the application number 202211627335.7, the entire content of which is incorporated herein by reference.
[0002] Exemplary embodiments of the present disclosure generally relate to data analysis, and more specifically, to a data analysis method, device, equipment and computer-readable storage medium.
Background Art
[0003] Data analysis can be applied to various industries such as finance, automotive, catering, communication, and entertainment. By analyzing data, useful information that can guide human production and life can be extracted. Data governance is an important aspect of data analysis. Data governance includes operations such as data collection, transmission, storage, access, sharing, and disposal. Data governance ensures that data is secure, accurate, available, and easy to use. For example, the governance of user data can protect the security of user data throughout its life cycle.
[0004] In the process of data governance, it is always necessary to identify the relationship between data, also known as data lineage. Data lineage can describe the flow behavior of data throughout the system. It is expected to effectively analyze the complete flow direction of data.
Summary of the Invention
Means for Solving the Problems
[0005] A first aspect of this disclosure provides a data analysis method, which includes creating a plurality of corresponding field query databases based on the respective code repositories of a plurality of nodes downstream of a first node, which includes determining that data of a target type has flowed through the first node, querying the fields in the plurality of field query databases that are related to the data of the target type, and determining the direction of flow of the data of the target type from the first node to the plurality of nodes based on the results of the queries.
[0006] A second aspect of this disclosure provides a data analysis device. This device includes a database creation module configured to create a plurality of corresponding field query databases based on the respective code repositories of a plurality of nodes downstream of a first node, the database creation module having data of a target type flowed through the first node, a database query module configured to execute queries on fields related to data of a target type in the plurality of field query databases, and a flow direction determination module configured to determine the flow direction of data of a target type from the first node to the plurality of nodes based on the results of the queries.
[0007] A third aspect of the present disclosure provides an electronic device comprising at least one processing unit and at least one memory coupled to the at least one processing unit and storing instructions to be executed by the at least one processing unit. When the instructions are executed by the at least one processing unit, the electronic device causes to perform the method described in the first aspect of the present disclosure.
[0008] A fourth aspect of this disclosure provides a computer-readable storage medium on which a computer program is stored, and which is executable by a processor to perform the method described in the first aspect of this disclosure.
[0009] It should be understood that the contents described in the summary section of the present invention are not intended to limit the main or important features of the embodiments of this disclosure, nor do they limit the scope of this disclosure. Other features of this disclosure will be readily apparent from the following description. [Brief explanation of the drawing]
[0010] The above and other features, advantages, and aspects of each embodiment disclosed herein will become more apparent upon further detailed description in conjunction with the accompanying drawings. In the accompanying drawings, the same or similar reference numerals indicate the same or similar elements. [Figure 1] A schematic diagram of an exemplary environment in which the embodiments of this disclosure may be implemented is shown. [Figure 2] A flowchart of a data analysis method relating to some embodiments of this disclosure is shown. [Figure 3] A schematic diagram of an exemplary architecture of a data analysis system according to some embodiments of this disclosure is shown. [Figure 4] A schematic diagram illustrating an exemplary operating process of a data analysis system according to some embodiments of this disclosure is shown. [Figure 5] A schematic block diagram of a data analysis device according to some embodiments of this disclosure is shown. [Figure 6] A block diagram of an electronic device that can be used to carry out some embodiments of this disclosure is shown. [Modes for carrying out the invention]
[0011] The embodiments of this disclosure will be described in more detail below with reference to the accompanying drawings. While the accompanying drawings show several embodiments of this disclosure, it should be understood that this disclosure can be realized in various forms and should not be construed as being limited to the embodiments described herein. Rather, these embodiments are provided to allow for a more thorough and complete understanding of this disclosure. It should be understood that the accompanying drawings and embodiments of this disclosure are for illustrative purposes only and are not intended to limit the scope of protection of this disclosure.
[0012] In the description of the embodiments of this disclosure, the term “including” and similar terms should be understood as non-restrictive inclusion, i.e., “including, but not limited to.” The term “based on” should be understood as “based at least in part.” The term “embodiment” or “this embodiment” should be understood as “at least one embodiment.” The term “several embodiments” should be understood as “at least several embodiments.” The following may include other explicit and implicit definitions.
[0013] The term "in response to" indicates that the corresponding event occurs or the condition is met. It should be understood that the timing of subsequent actions performed in response to that event or condition is not necessarily strongly correlated with the time the event occurred or the condition was met. In some cases, the subsequent action may be executed immediately upon the occurrence of the event or the fulfillment of the condition; in other cases, the subsequent action may be executed some time after the event occurred or the condition was met.
[0014] Please understand that the data related to this proposed technology (including, but not limited to, the data itself, its acquisition, or its use) must comply with the requirements of the corresponding laws and regulations.
[0015] Before using the technical proposals disclosed in each example of this publication, please understand that you should notify the user of the types of personal information related to this publication, the scope of use, and the usage scenarios through appropriate means in accordance with applicable laws and regulations, and obtain the user's consent.
[0016] For example, in response to receiving an unsolicited request from a user, the system may send a prompt message to the user explicitly informing them that the requested action requires access to and use of the user's personal information. Based on this prompt message, the user can autonomously choose whether or not to provide personal information to software or hardware such as electronic devices, applications, servers, or storage media that perform the actions of the proposed technical demonstration of this disclosure.
[0017] In an optional and non-limiting embodiment, the manner in which a prompt message is sent to the user in response to the receipt of an unconsented request from the user may be, for example, by a pop-up window, in which the prompt message may be presented in text. Furthermore, the pop-up window may include a selection controller for the user to choose whether to "agree" or "disagree" to providing personal information to the electronic device.
[0018] The above notification and user authorization process is merely illustrative and does not limit the embodiments of this disclosure. It should be understood that other methods for complying with applicable laws and regulations may also be applied to the embodiments of this disclosure.
[0019] As used herein, the term "service" refers to an application, program, module, process, thread, etc., that can be configured to implement a specific function or perform a specific action at runtime. A service may implement one or more functions.
[0020] As described above, data governance can ensure that data is secure, accurate, accessible, and easy to use. In the era of big data, data comes from various sources, and as a result of the rapid generation and explosive growth of various types of data, the relationships between data have become increasingly complex. In the process of data governance, it is always necessary to identify the relationships between data (also called "data lineage"). Data lineage can describe the flow behavior of data throughout the system. For example, after data is collected, how it flows to downstream services and storage, how it flows out of storage, and how it is accessed by other services, etc.
[0021] Data lineage analysis technology can analyze data lineage at the service or function granularity. For example, function 1 of service A calls function 2 of service B, and service B calls storage C to write data. However, currently, it is not possible to determine the type of data specifically transmitted from service A to service B. There is no effective method to analyze the complete data flow direction for a certain type of data.
[0022] Embodiments of the present disclosure present a data analysis solution for tracking target type data. In some embodiments, a field lineage analysis solution based on code analysis may be used. For example, a field query database is constructed based on the code repository of each node in the tracking link, and through database queries, the flow of the specified field to downstream services and storage can be analyzed, and finally, the flow direction of the data in the field dimension can be determined. In this way, when an outflow or access by a node of a certain type of data is found, the data can be effectively tracked by constructing a tracking of the outflow scenario of that type of data.
[0023] In this way, it is possible to analyze in what scenarios the target type of data is collected, through which links it is reported to the server, how it flows through the system, in which storages it is stored, from which storages it is derived, in what scenarios it is accessed and / or used, and in what scenarios it is deleted. As a result, the target type of data can be tracked from an overall perspective.
[0024] FIG. 1 shows a schematic diagram of an exemplary environment 100 in which embodiments of the present disclosure may be implemented.
[0025] As shown in FIG. 1, in environment 100, client side 110 may issue a service request to server side 120. The service may include a Remote Procedure Call (RPC) service or any other suitable service.
[0026] Client side 110 may be any type of device including virtual and physical devices. By way of example, client side 110 includes, but is not limited to, mobile terminals, fixed terminals, or portable terminals such as mobile phones, desktop computers, laptop computers, notebook computers, netbook computers, tablet computers, media computers, multimedia tablets, personal communication system (PCS) devices, personal navigation devices, personal digital assistants (PDAs), audio / video players, digital cameras / camcorders, positioning devices, television receivers, radio broadcast receivers, e-books terminals, virtual reality (VR) all-in-one machines, game machines, gaming notebooks, or any combination thereof, and further includes accessories and peripherals of these devices, or any combination thereof. In some embodiments, client side 1 is also capable of supporting any type of user-exclusive interface (such as a "wearable" circuit, etc.).
[0027] The server-side 120 may have multiple nodes, including service nodes with service functions and storage nodes with storage functions. Each node can implement its corresponding function using its code repository. Nodes may be implemented by any type of device, including virtual and physical devices. Examples of such devices include, but are not limited to, mainframes, edge computing nodes, rack servers, router computers, server computers, personal computers, mainframe computers, laptop computers, tablet computers, and desktop computers. In some embodiments, this device may include virtual machines, containers, or bare-metal servers.
[0028] In response to a request from the client-side 110, a first node 125 of the server-side 120 and several downstream nodes 130-1, 130-2, 130-3, ..., 130-N may be invoked, where N is any suitable positive integer. In operation, data of the target type flowed through the first node 125. For example, data of the target type flowed out of the first node 125, or the first node 125 accessed a storage node for data of the target type. In the context of this disclosure, the data type may be associated with any suitable method for classifying data accessed or transmitted in a service. For example, data of the target type may be some type of user data.
[0029] On the server side 120, a dedicated management node (not shown) may be located for data tracking. Alternatively or additionally, one service node or storage node may function as this management node. To determine the flow direction of target type data from the first node 125 to a plurality of downstream nodes 130-1, 130-2, 130-3, ... 130-N, according to an embodiment of the present disclosure, a field query database is created using the code repository of each node 130-1, 130-2, 130-3, ... 130-N, and queries are executed in the field query database for fields related to target type data. As a result, the downstream flow of target type data within the service can be analyzed.
[0030] Figure 2 shows a flowchart of a data analysis method 200 according to some embodiments of this disclosure. Method 200 may be executed by a node used for data tracking on the server side 120. For the sake of discussion, Method 200 will be described in conjunction with Figure 1.
[0031] In box 210, multiple corresponding field query databases are created based on the respective code repositories of multiple downstream nodes 130-1, 130-2, 130-3, ..., 130-N of the first node 125. For example, after the first node 125 determines that it has accessed or sent data of a target type, corresponding field query databases may be created for the downstream nodes 130-1, 130-2, 130-3, ..., 130-N. Field query databases may also be created by constructing a syntax tree based on the code repositories. As an example, the conversion from code to database can be achieved using CodeQL technology. Any suitable currently known and future-developed technologies, algorithms, programming languages, etc., capable of converting code to field query databases may be used herein, and it should be understood that the scope of this disclosure is not limited in this respect.
[0032] The creation of the field query database may be performed for a node after tracking a node downstream of the first node 125. That is, the field query database may be created sequentially for each of the downstream nodes 130-1, 130-2, 130-3, ... 130-N of the first node 125 as the data flows. Alternatively or additionally, the field query database may be created in parallel for each of the downstream nodes 130-1, 130-2, 130-3, ... 130-N of the first node 125 after the service has finished, tracking the entire service link that was called. The service link may be determined by link tracing (e.g., trace). Alternatively or additionally, given that inter-service calls may not convey context information and it is difficult to track the complete link, the service link may be determined by monitoring dotting (e.g., metrics) to further improve the efficiency of link tracing.
[0033] In box 220, a multi-field query database is used to query fields related to data of the target type. In some embodiments, the database query may be based on fields related to data of the target type in the code repository of the first node 125. For example, based on metadata information of the first node 125, such as schema information, it may be determined that a certain field in a certain function of the first node 125 is a field related to data of the target type. Subsequently, the database query is performed on this field.
[0034] In box 230, based on the query results, the flow direction of target type data from the first node 225 to multiple downstream nodes 130-1, 130-2, 130-3, ..., 130-N is determined. For example, if a field related to target type data is found in the field query database of a downstream node (referred to as the "second node," e.g., downstream node 130-1), it may be determined that the target type data has flowed to the second node. In some embodiments, after determining that the target type data has flowed to the second node, the service name of the second node may be obtained. In this way, after querying all databases, the service names of all nodes on the entire data flow link of the target type are obtained, so that a field-granularity data lineage can be obtained.
[0035] In some embodiments, the creation of the field query database, querying, and determination of the data flow direction may be performed based on scheduling. Several embodiments relating to this will be described later with reference to Figures 3 and 4.
[0036] First, refer to Figure 3, which shows a schematic diagram of an exemplary architecture of a data analysis system 300 according to some embodiments of this disclosure.
[0037] As shown in Figure 3, the data analysis system 300 may include a business logic layer 305 and a code analysis layer 310. The business logic layer 305 may include a task generation module 315 for converting data lineage analysis tasks of the client-side 110, which is a business user, into code analysis tasks. The code analysis layer 310 may include a task scheduling module 320 and a task execution module 325 for managing the scheduling and execution of code analysis tasks, respectively.
[0038] Figure 4 shows a schematic diagram of an exemplary operating process 400 of a data analysis system 300 according to some embodiments of the present disclosure.
[0039] In process 400, at 402, the task generation module 315 may perform task creation such that it abstracts the data lineage task into a code analysis task. The task generation module 315 may obtain the code repository and metadata information (e.g., schema information) corresponding to the first node 125 and generate a code analysis task that needs to be analyzed. For example, after determining that data of a target type has flowed through the first node 125, the task generation module 315 may, based on the schema information of the first node 125, obtain the fields that need to be analyzed as field A of function A (e.g., denoted as service A) of the first node 125 that carries the data of the target type. In this way, the task generation module 315 can convert the data lineage calculation task of the first node 125 into a field flow task in the code repository.
[0040] In this example, the service in question is an RPC service. As shown in Figure 4, in 404, the task generation module 315 may make an RPC call for the analysis task. The code analysis task may be divided into several steps (also called operations). For example, the analysis task of determining which RPC services flow downstream of service A, function A, and field A may be divided into operations such as creating a database (e.g., CodeQL data), obtaining downstream RPC client-side, function, and field information, and obtaining information about the service names corresponding to the RPC client-side. Each operation may be executed sequentially. After these operations are performed, the result of the entire code analysis task can finally be obtained. The task scheduling module 320 can be used to effectively schedule and manage each operation of the code analysis task.
[0041] The task scheduling module 320 may assign an analysis operation at 406 and issue an analysis operation event to the message queue (MQ) 410 at 408. At 412, the task scheduling module 320 may receive a callback after each operation is completed to obtain the results of the analysis operation. At 414, the task scheduling module 320 may determine the next operation to be performed, thereby completing the execution of the entire code analysis task.
[0042] The task execution module 325 may receive scheduling from the task scheduling module 320. As shown in Figure 4, at 416, the task execution module 325 may consume MQ 410 to obtain analysis operation events. The task execution module 325 may execute CodeQL statements for different code analysis tasks, for example, creating a CodeQL database at 418 and executing a CodeQL query statement at 420. For example, for the analysis task of determining which RPC services flow downstream of service A, function A, and field A, the task execution module may divide it into three task executions. The task execution module 325 may first create a CodeQL database, then execute a CodeQL query statement for the field flow, and finally obtain information about the service names corresponding to the client side.
[0043] The task execution module 325 may save the results in 424 after receiving an RPC callback of the analysis operation results. In 426, the task status may be queried via the application programming interface (API) 428. In 430, the updated task status can be obtained from the task result callback. In this way, analysis of the flow status of a field in a downstream service is achieved.
[0044] In some embodiments, a field lineage analysis solution based on traffic analysis may be used. For example, traffic can be collected from processing and storage nodes that may be involved in service links to obtain data traffic transferred between services, and this data can be analyzed to determine the direction of data flow for data type dimensions. By analyzing the transmission and storage links of the target field, it is possible to determine which interfaces reveal data of the target type, how this data flows, to which storage it ultimately flows, and to which data it derives, thereby providing a reliable data flow direction graph.
[0045] Figure 5 shows a schematic block diagram of a data analysis device 500 according to some embodiments of the present disclosure. The device 500 may be implemented on the server side 120 in Figure 1.
[0046] As shown in Figure 5, the device 500 comprises a database creation module 510, a database query module 520, and a flow direction determination module 530. The database creation module 510 is configured to create a number of corresponding field query databases based on the respective code repositories of a number of nodes downstream of the first node, and target type data flows from the first node. The database query module 520 is configured to execute queries on fields related to target type data in the number of field query databases. The flow direction determination module 530 is configured to determine the flow direction of target type data from the first node to the number of nodes based on the query results.
[0047] In some embodiments, the flow direction determination module 530 may be configured to obtain the service name of a second node among a plurality of nodes through which data of the target type flows.
[0048] In some embodiments, the flow direction determination module 530 may be configured to retrieve the service name of the second node in response to the discovery of a field related to data of the target type in a field query database associated with the second node.
[0049] In some embodiments, the database creation module 510, the database query module 520, and the flow direction determination module 530 may be executed based on scheduling.
[0050] In some embodiments, the device 500 may further include a field determination module configured to determine fields related to data of a target type based on metadata information of a first node.
[0051] In some embodiments, the database creation module 510 may be configured to create a corresponding field query database by constructing a syntax tree based on one of several code repositories for one of those code repositories.
[0052] Please refer to Figures 1 to 4 to understand that the characteristics and corresponding effects related to the data analysis operations described above are also applicable to device 500, and therefore, the explanations described here will not be repeated.
[0053] Figure 6 shows a block diagram of an electronic device 600 that can carry out one or more embodiments of the present disclosure. For example, the electronic device 600 may be used to carry out a data analysis process according to an embodiment of the present disclosure. The electronic device 600 shown in Figure 6 is merely illustrative and should not constitute any limitation on the function and scope of the embodiments described herein.
[0054] As shown in Figure 6, the electronic device 600 is in the form of a general-purpose electronic device. The components of the electronic device 600 may include, but are not limited to, one or more processors or processing units 610, memory 620, storage devices 630, one or more communication units 640, one or more input devices 650, and one or more output devices 660. The processing unit 610 may be an actual processor or a virtual processor and is capable of performing various processes based on a program stored in memory 620. In a multiprocessor system, multiple processing units execute computer-executable instructions in parallel to enhance the parallel processing capability of the electronic device 600.
[0055] The electronic device 600 typically includes a plurality of computer storage media. Such media may include, but are not limited to, volatile and non-volatile media, removable and non-removable media, and may be any available media accessible to the electronic device 600. Memory 620 may be volatile memory (e.g., registers, caches, random access memory (RAM)), non-volatile memory (e.g., read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory), or a combination thereof. Storage device 630 may be removable or non-removable media, and may include machine-readable media such as flash drives, magnetic disks, or any other media that can be used to store information and / or data (e.g., training data for training) and may be accessible within the electronic device 600.
[0056] The electronic device 600 may further include other removable / non-removable, volatile / non-volatile storage media. Not shown in Figure 6, a magnetic disk drive for reading from and writing to removable non-volatile magnetic disks (e.g., “floppy disks”) and an optical disk drive for reading from and writing to removable non-volatile optical disks may be provided. In these cases, each drive may be connected to a bus (not shown) via one or more data media interfaces. The memory 620 may include a computer program product 625 having one or more program modules configured to perform various methods or operations of various embodiments of the present disclosure.
[0057] The communication unit 640 enables communication with other electronic devices via a communication medium. Furthermore, the functionality of the components of the electronic device 600 may be implemented as a single computing cluster or multiple computing machines that can communicate via a communication connection. Thus, the electronic device 600 can use logical connections to one or more other servers, networked personal computers (PCs), or other network nodes to operate in a networked environment.
[0058] The input device 650 may be one or more input devices, such as a mouse, keyboard, or tracking ball. The output device 660 may be one or more output devices, such as a monitor, speaker, or printer. The electronic device 600 may, if necessary, communicate with one or more external devices (not shown), such as a storage device or display device, via the communication unit 640, with one or more devices that enable a user to interact with the electronic device 600, or with any device (e.g., a network card or modem) that enables the electronic device 600 to communicate with one or more other electronic devices. Such communication may be performed via an input / output (I / O) interface (not shown).
[0059] According to exemplary embodiments of the present disclosure, a computer-readable storage medium is provided which stores one or more computer instructions, the one or more of which are executed by a processor to realize the method described above.
[0060] Each aspect of this disclosure is described herein with reference to flowcharts and / or block diagrams of methods, apparatus (systems), and computer program products implemented in accordance with this disclosure. It should be understood that each box in the flowcharts and / or block diagrams, and any combination thereof, can be implemented by computer-readable program instructions.
[0061] These computer-readable program instructions, when provided to a processing unit of a general-purpose computer, a special-purpose computer, or other programmable data processing device, generate a machine that, when executed by the processing unit of the computer or other programmable data processing device, produces a device that performs the functions / operations specified in one or more boxes of a flowchart and / or block diagram. Furthermore, by storing these computer-readable program instructions, which cause computers, programmable data processing devices, and / or other devices to operate in specific manners, on a computer-readable storage medium, the computer-readable medium containing the instructions has a product containing instructions that perform each of the functions / operations specified in one or more boxes of a flowchart and / or block diagram.
[0062] When computer-readable program instructions are loaded onto a computer, other programmable data processing device, or other device, a series of operational steps are executed on the computer, other programmable data processing device, or other device to generate a computer implementation process, thereby enabling the instructions executed on the computer, other programmable data processing device, or other device to implement the functions / operations specified in one or more boxes of a flowchart and / or block diagram.
[0063] The flowcharts and block diagrams in the accompanying drawings illustrate architectures, functions, and operations that may be implemented in several implemented systems, methods, and computer program products relating to this disclosure. In this regard, each box in the flowchart or block diagram may represent a module, program segment, or part of an instruction, and a module, program segment, or part of an instruction may contain one or more executable instructions for implementing a specified logical function. In some alternative implementations, the functions attached to the boxes may occur in a different order than those attached to the accompanying drawings. For example, two consecutive boxes may actually be executed substantially in parallel, or in reverse order depending on the functions involved. Also note that each box in the block diagrams and / or flowcharts, and combinations of boxes in the block diagrams and / or flowcharts, may be implemented in a dedicated hardware-based system that performs a given function or operation, or in a combination of dedicated hardware and computer instructions.
[0064] The above descriptions of the various implementations of this disclosure are illustrative, not exhaustive, and not limited to the disclosed implementations. Many modifications and changes will be apparent to an ordinary art engineer without departing from the scope and spirit of the described implementations. The choice of terms used herein is intended to best describe the principles, practical applications, or improvements in the technology in the market of each implementation, or to enable other ordinary art engineers in the art to understand each implementation disclosed herein.
Claims
1. Creating a corresponding set of field query databases based on the respective code repositories of multiple nodes downstream of the first node, wherein data of the target type has flowed through the first node, In the aforementioned multiple field query databases, a query is executed on the fields related to the data of the target type, Based on the results of the query, the direction of data flow of the target type from the first node to the plurality of nodes is determined, Data analysis methods, including those mentioned above.
2. Determining the flow direction means Obtain the service name of the second node among the aforementioned plurality of nodes through which the target type data flows. The method according to claim 1, including the method described in claim 1.
3. Obtaining the service name of the second node is: In response to finding a field related to data of the target type in the field query database associated with the second node, the service name of the second node is obtained. The method according to claim 2, including the method described in claim 2.
4. The method according to claim 1, wherein the creation of the field query database, the queries in the field query database, and the determination of the flow direction are performed based on scheduling.
5. Based on the metadata information of the first node, determine the fields related to the data of the target type. The method according to claim 1, further comprising:
6. Creating the aforementioned multiple field query databases is, For one of the aforementioned multiple code repositories, By constructing a syntax tree based on the aforementioned code repository, the corresponding field query database is created. The method according to claim 1, including the method described in claim 1.
7. A database creation module configured to create a plurality of corresponding field query databases based on the respective code repositories of a plurality of nodes downstream of a first node, wherein the database creation module receives data of a target type from the first node, A database query module configured to execute queries on fields related to data of the target type in the aforementioned multiple field query databases, A flow direction determination module configured to determine the flow direction of data of the target type from the first node to the plurality of nodes based on the results of the query, A data analysis device equipped with the following features.
8. The aforementioned flow direction determination module is The apparatus according to claim 7, configured to obtain the service name of a second node among the plurality of nodes through which data of the target type flows.
9. The aforementioned flow direction determination module is The apparatus according to claim 8, configured to obtain the service name of the second node in response to the discovery of a field relating to data of the target type in the field query database relating to the second node.
10. The apparatus according to claim 7, wherein the database creation module, the database query module, and the flow direction determination module are executed based on scheduling.
11. The apparatus according to claim 7, further comprising a field determination module configured to determine the field relating to the target type data based on metadata information of the first node.
12. The aforementioned database creation module is For one of the aforementioned multiple code repositories, A corresponding field query database is created by constructing a syntax tree based on the aforementioned code repository. The apparatus according to claim 7, configured as follows.
13. At least one processing unit, The system comprises at least one memory coupled to the at least one processing unit, which stores instructions to be executed by the at least one processing unit, When the instruction is executed by the at least one processing unit, the electronic device performs the method according to any one of claims 1 to 6.
14. A computer-readable storage medium storing a computer program that, when executed by a processor, implements the method described in any one of claims 1 to 6.
Citation Information
Patent Citations
System and method for monitoring the execution of structured query language (SQL) queries
JP2021506043A
System and method of intelligent translation of metadata label names and mapping to natural language understanding
US20210097069A1