A data joint analysis method and related device

By building a DAG execution plan and dividing SQL operators, the problems of high data transmission cost and computing power consumption in joint analysis of privacy data of multiple parties are solved, and more efficient joint data analysis is achieved.

CN119759951APending Publication Date: 2025-04-04WEBANK (CHINA)
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411835154.2
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-12-13
Publication Date
2025-04-04

AI Technical Summary

Technical Problem

In the joint analysis of privacy data of multiple institutions, the MPC protocol leads to high data transmission costs and computing power consumption.

Method used

By constructing a DAG execution plan, the SQL operators of multiple nodes in the SQL query statement are divided into joint execution operators and local plaintext operators, and the operations are performed on the MPC node and the local data processing system respectively.

Benefits of technology

It reduces data transmission costs and computing power consumption, and improves the efficiency of joint data analysis.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119759951A_ABST
    Figure CN119759951A_ABST
Patent Text Reader

Abstract

The present application provides a data joint analysis method and related devices, the method comprising: obtaining a target SQL query statement; constructing a DAG execution plan according to the target SQL query statement; dividing multiple SQL operators of multiple nodes in the DAG execution plan into joint execution operators and local plaintext operators; sending local plaintext operators in a first execution queue to a first data processing system, and sending joint execution operators in a second execution queue to a first MPC node. By constructing a DAG execution plan according to the SQL query statement, multiple SQL operators of multiple nodes in the DAG execution plan are divided into joint execution operators and local plaintext operators, local plaintext operators are operated in the local first data processing system, and joint execution operators are jointly operated in the MPC node, which is beneficial to reducing data transmission costs and saving computing power compared to all SQL operators operating in the MPC node.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application belongs to the field of data joint analysis, and specifically relates to a data joint analysis method and related devices. Background Art

[0002] At present, multi-party joint analysis of privacy data is mainly achieved through the MPC (Multi-Party Computation) privacy computing protocol. However, since the MPC protocol calculation requires the participation of multiple institutions, each institution needs to perform certain calculations, and data transmission is frequent, if all SQL operators corresponding to the SQL statements are allocated to MPC nodes for calculation, it will consume more data transmission costs and computing power. Summary of the invention

[0003] The embodiment of the present application provides a data joint analysis method and related devices, which can build a DAG execution plan according to SQL query statements, divide multiple SQL operators of multiple nodes in the DAG execution plan into joint execution operators and local plaintext operators, and the local plaintext operators are operated in the local first data processing system, and the joint execution operators are jointly operated in the MPC nodes. Compared with all SQL operators operating on the MPC nodes, this is beneficial to reducing data transmission costs and saving computing power.

[0004] In a first aspect, an embodiment of the present application provides a data joint analysis method, which is applied to a first scheduler in a joint analysis system, wherein the joint analysis system includes a first scheduler, a first data processing system, and a first MPC node of a first organization, and a second scheduler, a second data processing system, and a second MPC node of a second organization, and a processing device of a third organization, wherein the first scheduler is respectively connected to the first data processing system, the first MPC node, and the second scheduler, the second scheduler is respectively connected to the second data processing system and the second MPC node, and the processing device is respectively connected to the first data processing system, the first MPC node, the second data processing system, and the second MPC node; the method includes:

[0005] Get the target SQL query statement;

[0006] Sending the target SQL query statement to the second scheduler;

[0007] Build a DAG execution plan according to the target SQL query statement;

[0008] Dividing multiple SQL operators of multiple nodes in the DAG execution plan into joint execution operators and local plaintext operators;

[0009] adding the local plaintext operator operating on the first input data of the first mechanism to a first execution queue, and adding the joint execution operator to a second execution queue;

[0010] The local plaintext operators in the first execution queue are sent to the first data processing system, and the joint execution operators in the second execution queue are sent to the first MPC node.

[0011] In a second aspect, an embodiment of the present application provides a data joint analysis device, which is applied to a first scheduler in a joint analysis system, wherein the joint analysis system includes a first scheduler, a first data processing system and a first MPC node of a first organization, and a second scheduler, a second data processing system and a second MPC node of a second organization, and a processing device of a third organization, wherein the first scheduler is respectively connected to the first data processing system, the first MPC node and the second scheduler, the second scheduler is respectively connected to the second data processing system and the second MPC node, and the processing device is respectively connected to the first data processing system, the first MPC node, the second data processing system and the second MPC node; the data joint analysis device includes: an acquisition unit, a transmission unit, a construction unit, a division unit and an addition unit, wherein,

[0012] The acquisition unit is used to acquire the target SQL query statement;

[0013] The transmission unit is used to send the target SQL query statement to the second scheduler;

[0014] The construction unit is used to construct a DAG execution plan according to the target SQL query statement;

[0015] The division unit is used to divide multiple SQL operators of multiple nodes in the DAG execution plan into joint execution operators and local plaintext operators;

[0016] The adding unit is used to add the local plaintext operator whose operation involves the first input data of the first mechanism to the first execution queue, and to add the joint execution operator to the second execution queue;

[0017] The transmission unit is used to send the local plaintext operator in the first execution queue to the first data processing system, and send the joint execution operator in the second execution queue to the first MPC node.

[0018] In a third aspect, an embodiment of the present application provides an electronic device, comprising a processor, a memory, and one or more programs, wherein the one or more programs are stored in the memory and configured to be executed by the processor, and the program includes instructions for executing the steps in the first aspect of the embodiment of the present application.

[0019] In a fourth aspect, an embodiment of the present application provides a computer-readable storage medium having a computer program / instructions stored thereon, which, when executed by a processor, implement the steps in the first aspect of the embodiment of the present application.

[0020] In a fifth aspect, an embodiment of the present application provides a computer program product, wherein the computer program product includes a non-transitory computer-readable storage medium storing a computer program, and the computer program is operable to enable a computer to execute part or all of the steps described in the first aspect of the embodiment of the present application.

[0021] It can be seen that in the embodiment of the present application, the first scheduler first obtains the target SQL query statement, then sends the target SQL query statement to the second scheduler, and then builds a DAG execution plan according to the target SQL query statement, and further, divides the multiple SQL operators of multiple nodes in the DAG execution plan into joint execution operators and local plaintext operators, and further, adds the local plaintext operators to the first execution queue, and adds the joint execution operators to the second execution queue, sends the local plaintext operators in the first execution queue to the first data processing system, and sends the joint execution operators in the second execution queue to the first MPC node. By building a DAG execution plan according to the SQL query statement, the multiple SQL operators of multiple nodes in the DAG execution plan are divided into joint execution operators and local plaintext operators, the local plaintext operators are operated in the local first data processing system, and the joint execution operators are jointly operated in the MPC node. Compared with all SQL operators operating on the MPC node, it is beneficial to reduce data transmission costs and save computing power. BRIEF DESCRIPTION OF THE DRAWINGS

[0022] In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the drawings required for use in the embodiments or the prior art descriptions are briefly introduced below. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without creative work. Among them,

[0023] Figure 1 It is a schematic diagram of the architecture of a data joint analysis system provided in an embodiment of the present application;

[0024] Figure 2It is a flowchart of a data joint analysis method provided in an embodiment of the present application;

[0025] Figure 3 is a schematic diagram of a syntax tree provided in an embodiment of the present application;

[0026] Figure 4 It is a DAG graph provided in an embodiment of the present application;

[0027] Figure 5 is a schematic diagram of a DAG execution plan provided in an embodiment of the present application;

[0028] Figure 6 It is a flowchart of another data joint analysis method provided in an embodiment of the present application;

[0029] Figure 7 A schematic diagram of the structure of an electronic device provided in an embodiment of the present application;

[0030] Figure 8 It is a block diagram of the functional units of a data joint analysis device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0031] In order to enable those skilled in the art to better understand the solution of the present application, the technical solution in the embodiments of the present application will be clearly and completely described below in conjunction with the drawings in the embodiments of the present application. Obviously, the described embodiments are only part of the embodiments of the present application, not all of the embodiments. Based on the embodiments in the present application, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of this application.

[0032] The terms "first", "second", etc. in the specification and claims of this application and the above-mentioned drawings are used to distinguish different objects, rather than to describe a specific order. In addition, the terms "including" and "having" and any variations thereof are intended to cover non-exclusive inclusions. For example, a process, method, system, product or device that includes a series of steps or units is not limited to the listed steps or units, but optionally includes steps or units that are not listed, or optionally includes other steps or units inherent to these processes, methods, products or devices.

[0033] Reference to "embodiments" herein means that a particular feature, structure, or characteristic described in conjunction with the embodiments may be included in at least one embodiment of the present application. The appearance of the phrase in various locations in the specification does not necessarily refer to the same embodiment, nor is it an independent or alternative embodiment that is mutually exclusive with other embodiments. It is explicitly and implicitly understood by those skilled in the art that the embodiments described herein may be combined with other embodiments.

[0034] In the embodiments of the present application, "and / or" describes the association relationship of the associated objects, indicating that three relationships may exist. For example, A and / or B can represent the following three situations: A exists alone; A and B exist at the same time; B exists alone. Among them, A and B can be singular or plural.

[0035] In the embodiment of the present application, the symbol " / " can indicate that the objects associated with each other are in an "or" relationship. In addition, the symbol " / " can also indicate a division sign, that is, performing a division operation. For example, A / B can indicate A divided by B.

[0036] In the embodiments of the present application, "at least one item" or similar expressions refer to any combination of these items, including any combination of single items or plural items, and refer to one or more, and multiple refers to two or more. For example, at least one item of a, b, or c can represent the following seven situations: a, b, c, a and b, a and c, b and c, a, b, and c. Among them, each of a, b, and c can be an element or a set containing one or more elements.

[0037] In the embodiments of the present application, "equal to" can be used in conjunction with greater than, and is applicable to the technical solution adopted when greater than, and can also be used in conjunction with less than, and is applicable to the technical solution adopted when less than. When equal to is used in conjunction with greater than, it is not used in conjunction with less than; when equal to is used in conjunction with less than, it is not used in conjunction with greater than.

[0038] In order to better understand the solutions of the embodiments of the present application, the electronic devices that may be involved in the embodiments of the present application are first introduced below.

[0039] The electronic devices involved in the embodiments of the present application may include various handheld devices with wireless communication functions, vehicle-mounted devices, wearable devices, computing devices or other processing devices connected to a wireless modem, as well as various forms of user equipment (UE), mobile stations (MS), electronic devices (terminal devices), etc. For the convenience of description, the above-mentioned devices are collectively referred to as electronic devices. The electronic device may be a scheduler.

[0040] See also Figure 1 , Figure 1 It is an architectural diagram of a data joint analysis system provided in an embodiment of the present application. The data joint analysis system includes a terminal device 10 used by a user, a first scheduler 20, a first data processing system 30 and a first MPC node 40 of a first institution, a second scheduler 50, a second data processing system 60 and a second MPC node 70 of a second institution, and a processing device 80 of a third institution.

[0041] Among them, the terminal device 10 is connected to the first scheduler 20, the first scheduler 20 is respectively connected to the first data processing system 30, the first MPC node 40 and the second scheduler 50, the second scheduler 50 is respectively connected to the second data processing system 60 and the second MPC node 70, and the processing device 80 is respectively connected to the first data processing system 30, the first MPC node 40, the second data processing system 60 and the second MPC node 70.

[0042] Among them, the first scheduler 20 can accept the SQL statement transmitted by the user through the terminal device, and synchronize the SQL statement to the second scheduler 50 of the second organization.

[0043] The first MPC node 40 and the second MPC node 70 run the MPC protocol to provide an operating environment for designing a joint execution operator of a multi-party data set.

[0044] The first data processing system 30 calculates a local plaintext operator that only involves the first input data of the first organization, and the second data processing system 60 calculates a local plaintext operator that only involves the second input data of the second organization.

[0045] The first input data includes a first table, and the second input data includes a second table.

[0046] In a possible example, the first scheduler 20 first obtains the target SQL query statement, then sends the target SQL query statement to the second scheduler 50, and then builds a DAG execution plan according to the target SQL query statement, further, divides multiple SQL operators of multiple nodes in the DAG execution plan into joint execution operators and local plaintext operators, further, adds local plaintext operators to the first execution queue, and adds joint execution operators to the second execution queue, sends the local plaintext operators in the first execution queue to the first data processing system 30, and sends the joint execution operators in the second execution queue to the first MPC node 40. By building a DAG execution plan according to the SQL query statement, multiple SQL operators of multiple nodes in the DAG execution plan are divided into joint execution operators and local plaintext operators, local plaintext operators are operated in the local first data processing system 30, and joint execution operators are jointly operated in the MPC node, which is beneficial to reducing data transmission costs and saving computing power compared to all SQL operators operating on the MPC node.

[0047] See also Figure 2 , Figure 2It is a flow chart of a data joint analysis method provided by an embodiment of the present application, which is applied to a first scheduler in a joint analysis system, wherein the joint analysis system includes a first scheduler, a first data processing system and a first MPC node of a first institution, and a second scheduler, a second data processing system and a second MPC node of a second institution, and a processing device of a third institution, wherein the first scheduler is respectively connected to the first data processing system, the first MPC node and the second scheduler, the second scheduler is respectively connected to the second data processing system and the second MPC node, the processing device is respectively connected to the first data processing system, the first MPC node, the second data processing system and the second MPC node, and the method includes:

[0048] Step S201, obtaining a target SQL query statement.

[0049] The first scheduler is connected to a terminal device used by a user, and the first scheduler can receive a target SQL query statement from the terminal device.

[0050] Among them, the third institution is a third-party institution that does not own the input data set for the joint analysis, and the first institution and the second institution are institutions that own the input data set for the joint analysis.

[0051] The first data processing system and the second data processing system may be parallel data processing systems such as Spark / Hive.

[0052] Among them, the institutions that provide input data sets are not limited to two, but can also be multiple. For example, if the data joint analysis involves the first institution, the second institution and the fourth institution, the fourth institution is the institution that has the input data set for the joint analysis, and the joint analysis system also includes a third scheduler, a third data processing system and a third MPC node of the fourth structure. The first scheduler is connected to the third scheduler, the third scheduler is connected to the third data processing system and the third MPC node respectively, and the processing equipment is connected to the third data processing system and the third MPC node respectively; these three institutions respectively have data sets DatasetA, DatasetB, and DatasetC of the prices of a certain type of goods of each company, and each data set contains the average price information of goods of each company in each month of a year, that is, it contains three fields: company ID, product price, and month. The user of institution A counts the average price of this type of goods of each company in the past year based on these three data sets, and the corresponding SQL query statement is as follows:

[0053] select avg(price)

[0054] from DatasetA

[0055] left join DatasetB

[0056] on DatasetA.CompanyID=DatasetB.CompanyID

[0057] left join DatasetC

[0058] on DatasetA.CompanyID=DatasetC.CompanyID

[0059] where datediff(now(),DatasetA.time)≤365

[0060] and datediff(now(),DatasetB.time)≤365

[0061] and deatediff(now(),DatasetC.time)≤365

[0062] group by DatasetA.CompanyID.

[0063] Step S202: Send the target SQL query statement to the second scheduler.

[0064] Step S203: construct a DAG execution plan according to the target SQL query statement.

[0065] The DAG execution plan includes an input layer, an SQL operator layer, and an output layer. The input layer corresponds to the input data set, the SQL operator layer includes multiple SQL operators, and the output layer includes the final execution result of the SQL query statement. The SQL operator layer includes multiple nodes, each of which corresponds to an SQL operator.

[0066] Step S204: divide the multiple SQL operators of the multiple nodes in the DAG execution plan into joint execution operators and local plaintext operators.

[0067] Among them, executing the joint execution operator requires input data from multiple institutions, while executing the local plaintext operator only requires input data from a single institution.

[0068] Step S205: adding the local plaintext operator that operates on the first input data of the first mechanism to a first execution queue, and adding the joint execution operator to a second execution queue.

[0069] Among them, the second scheduler also builds a DAG execution plan according to the target SQL query statement, divides multiple SQL operators of multiple nodes in the DAG execution plan into joint execution operators and local plaintext operators, adds the local plaintext operator involving the second input data of the second organization to the fourth execution queue of the second scheduler, and adds the joint execution operator to the fifth execution queue of the second scheduler.

[0070] Step S206: Send the local plaintext operator in the first execution queue to the first data processing system, and send the joint execution operator in the second execution queue to the first MPC node.

[0071] Among them, the local plaintext operator is executed in the first data processing system, which reduces the number of data transmission times and does not require the equipment of the second organization to perform operations. The joint execution operator is executed in the MPC node.

[0072] It can be seen that in the embodiment of the present application, the first scheduler first obtains the target SQL query statement, then sends the target SQL query statement to the second scheduler, and then builds a DAG execution plan according to the target SQL query statement, and further, divides the multiple SQL operators of multiple nodes in the DAG execution plan into joint execution operators and local plaintext operators, and further, adds the local plaintext operators to the first execution queue, and adds the joint execution operators to the second execution queue, sends the local plaintext operators in the first execution queue to the first data processing system, and sends the joint execution operators in the second execution queue to the first MPC node. By building a DAG execution plan according to the SQL query statement, the multiple SQL operators of multiple nodes in the DAG execution plan are divided into joint execution operators and local plaintext operators, the local plaintext operators are operated in the local first data processing system, and the joint execution operators are jointly operated in the MPC node. Compared with all SQL operators operating on the MPC node, it is beneficial to reduce data transmission costs and save computing power.

[0073] In a possible example, after sending the joint execution operator in the second execution queue to the first MPC node, the method may further include the following steps: obtaining the execution result of the first joint execution operator in the first MPC node; if it is determined that the second joint execution operator in the second execution queue does not need to be jointly executed based on the execution result, adding the second joint execution operator to the first execution queue.

[0074] For example, table A of the first institution and table B of the second institution both contain ID and price columns. Table A contains an exchange rate column exchange. The ID column is used as the aggregate primary key. The aggregate average of the price column of the intersection elements of the ID columns of the two tables is multiplied by the exchange column of table A. In this case, the first scheduler will initially mark all SQL operators as joint execution operators, but after calculating the aggregate average of the intersection elements of tables A and B, the operation of multiplying this value by the exchange column only involves the input data of a single institution (table A or table B). Therefore, the joint analysis operator corresponding to the operation of multiplying the aggregate average by the exchange column is optimized to a local plaintext operator to operate in the local data processing system, which can further reduce the number of data transmissions.

[0075] Among them, if the operation of the second joint execution operator based on the execution result only requires the input data of a single organization, that is, the input data of the first organization or the input data of the second organization, then it is determined that the second joint execution operator does not need to be jointly executed, and the second joint execution operator can be optimized into a local plaintext operator and added to the execution queue of the local plaintext operator for execution.

[0076] It can be seen that in this example, the first scheduler can determine whether the second joint execution operator that has not been executed in the second execution queue needs to be jointly executed based on the execution result of the first joint execution operator in the first MPC node, and optimize the second joint execution operator that does not need to be jointly executed to a local execution operator, and add it to the execution queue of the local plaintext operator, and further execute it in the local data processing system, which is conducive to reducing data transmission costs and saving computing power.

[0077] In a possible example, in terms of constructing a DAG execution plan according to the target SQL query statement, the method may further include the following steps: constructing a target syntax tree according to the target SQL statement; traversing the nodes of the target syntax tree and marking the input and output of each node to obtain a plurality of SQL operators; adding the plurality of SQL operators to a third execution queue, traversing the plurality of SQL operators, establishing a unidirectional connection between the plurality of SQL operators, and obtaining the DAG graph; determining the DAG execution plan according to the DAG graph, the first input data of the first mechanism, and the second input data of the second mechanism.

[0078] Among them, see Figure 3 , Figure 3 It is a schematic diagram of a syntax tree provided in an embodiment of the present application. The root node of the target syntax tree is the entire SQL query statement; the child nodes are different parts of the query, including the SELECT clause, FROM clause, WHERE condition and GROUP BY clause; the leaf nodes are the most basic elements, including table names, column names, constant values ​​and keywords, etc.

[0079] Among them, traverse each node of the syntax tree, mark the input and output of each leaf node, and the input and output of each SQL operator are as follows: AVG(JoinedTable2.price), input: the price field of the temporary table JoinedTable2 after grouping by, output: the final result of the SQL query statement; DatasetA.CompanyID, input: the CompanyID field of the DatasetA table after condition filtering, output: the left table of JoinedTable1; DatasetB.CompanyID, input: the CompanyID field of the DatasetB table after condition filtering, output: the right table of JoinedTable1; JoinedTable1: input: DatasetA.CompanyID and DatasetB.CompanyID, output: the right table of JoinedTable2; DatasetC.CompanyID, input: the CompanyID field of the DatasetC table after condition filtering , output: the left table of JoinedTable2; JoinedTable2, input: JoinedTable1 and DatasetC.CompanyID, output: the table of conditional query, used to calculate AVG(JoinedTable2.price); Datediff(now(),DatasetA.time)<=365, input: DatasetA, output: DatasetA table after conditional filtering; Datediff(now(),DatasetB.time)<=365, input: DatasetB, output: DatasetB table after conditional filtering; Datediff(now(),DatasetC.time)<=365, input: DatasetC, output: DatasetC table after filtering; Group by JoinedTable2.CompanyID, input: JoinedTable2, output: JoinedTable2 after grouping.

[0080] Among them, see Figure 4 , Figure 4It is a DAG graph provided in an embodiment of the present application. The DAG graph includes multiple nodes, each node includes a SQL operator or a final result, and the DAG graph includes AVG(JoinedTable2.price), JoinedTable2, Joined Table1, DatasetC.CompanyID, DatasetA.CompanyID, DatasetB.CompanyID, Datediff(now(),DatasetA.time), Datediff(now(),DatasetB.time), Datediff(now(),DatasetC.time) multiple operators, and multiple SQL operators are unidirectionally connected.

[0081] Among them, see Figure 5 , Figure 5 It is a schematic diagram of a DAG execution plan provided in an embodiment of the present application, which shows an input layer, an SQL operator layer and an output layer. The input layer includes the input data DatasetA of the first organization, the input data DatasetB of the second organization and the input data DatasetC of the fourth organization. The SQL operator layer includes Joined Table2, Joined Table1, DatasetC.CompanyID, DatasetA.CompanyID, DatasetB.CompanyID, Datediff(now(),DatasetA.time), Datediff(now(),DatasetB.time), Datediff(now(),DatasetC.time) operators, and the output layer includes AVG(JoinedTable2.price).

[0082] It can be seen that in this example, by building a DAG execution plan, the nodes of the subsequent steps that schedule the DAG execution plan divide the SQL operators into local plaintext operators and joint execution operators, and add them to different execution queues respectively, which is conducive to improving scheduling efficiency.

[0083] In a possible example, in terms of dividing the multiple SQL operators of the multiple nodes in the DAG execution plan into joint execution operators and local plaintext operators, the above method may further include the following steps: performing the following operations on each SQL operator to realize the division of the multiple SQL operators into the joint execution operators and the local plaintext operators: determining whether the calculation of the SQL operator currently being processed requires both the first input data and the second input data; if it is determined that the SQL operator currently being processed requires both the first input data and the second input data, then using the SQL operator currently being processed as the joint execution operator; if it is determined that the SQL operator currently being processed only requires the first input data or only requires the second input data, then using the SQL operator currently being processed as the local plaintext operator.

[0084] It can be seen that in this example, by dividing multiple SQL operators of multiple nodes in the DAG execution plan into joint execution operators and local plaintext operators, the local plaintext operators are operated in the local first data processing system, and the joint execution operators are jointly operated in the MPC nodes. Compared with all SQL operators operating in the MPC nodes, this is beneficial to reducing data transmission costs and saving computing power.

[0085] In one possible example, the first MPC node is used to transmit the first aggregated primary key data of the first table to the processing device in a secret sharing manner when executing the target SQL operator, and the second MPC node is used to transmit the second aggregated primary key data of the second table to the processing device in a secret sharing manner when executing the target SQL operator; the processing device obtains the first aggregated primary key data from the first table of the first MPC node, and obtains the second aggregated primary key data from the second table of the second MPC node; adds a first index column to the first aggregated primary key data to obtain a third table, and adds a second index column to the second aggregated primary key data to obtain a fourth table, wherein the first index column is used to record the first aggregated primary key data in the The second index column is used to record the index of the second aggregate primary key data in the second table; based on the target aggregate primary key, a join table query is performed on the third table and the fourth table to obtain an intermediate table, wherein the intermediate table includes the third index column, the fourth index column and the target aggregate primary key column; the first index data of the third index column is sent to the first data processing system, and the second index data of the fourth index column is sent to the second data processing system; the first data processing system is used to perform a join table query on the first index data and the first table to obtain a target data set that intersects the first table and the second table, and the second data processing system is used to perform a join table query on the second index data and the second table to obtain the target data set.

[0086] The target SQL operator includes at least one of the following: a join table query operator (Join) and an aggregate grouping operator (group by).

[0087] Among them, the first MPC node of the first organization transmits the aggregate primary key column of the first table, that is, the first aggregate primary key data, to the processing equipment of the third organization in the form of secret sharing, and the first aggregate primary key column data is recorded as table AggregateColumnsA{key1}. The second MPC node of the second organization transmits the aggregate primary key column of the second table, that is, the second aggregate primary key data, to the processing equipment of the third organization in the form of secret sharing, which is recorded as table AggregateColumnsB{key2}. The processor of the third organization adds an index column to each of the two aggregate primary key tables, which is used to record the index of each aggregate primary key data in the original table, which are recorded as: the third table AggregateColumnsAWithIndex{key,index}, the fourth table AggregateColumnsBWithIndex{key,index}, respectively. The third organization TrustAgency sorts the third table AggregateColumnsAWithIndex and the fourth table AggregateColumnsBWithIndex. When the join table query is performed based on the target aggregate primary key When querying, the processing device first uses the table AggregateColumnsAWithIndex and the table AggregateColumnsBWithIndex to perform a table join query based on the target aggregate primary key to generate an intermediate table AggregateColumns{key,indexA,indexB}. The processing device sends the indexA column of AggregateColumns, that is, the third index column, to the first data processing system, and sends the indexB column of AggregateColumns, that is, the fourth index column, to the second data processing system. After receiving the indexA column, the first data processing system extends an index column in the first table, and uses the received indexA column and the index column extended from the first table to perform a table join query to obtain a target data set that intersects the input data of the first organization and the input data of the second organization. After receiving the indexB column, the second data processing system extends an index column in the second table, and uses the received indexB column and the index column extended from the second table to perform a table join query to obtain a target data set that intersects the input data of the first organization and the input data of the second organization.

[0088] The target SQL operator performs a join-table aggregate query based on the field fields of the first table and the second table, and the target aggregate primary key is the aggregate primary key used by the target SQL operator for the join-table aggregate query.

[0089] It can be seen that in this example, this solution introduces the processing equipment of a third organization to assist in the execution of the table-joining query operator and the aggregation grouping operator, and shares the aggregate primary key data with the processing equipment of the third organization in a secret manner without exposing any other information, thereby realizing the conversion of joint execution operators such as the table-joining query operator and the aggregation grouping operator into local plaintext operators for execution in the local data processing system, which is conducive to further reducing data transmission costs and saving computing power.

[0090] See also Figure 6 , Figure 6 It is a flow chart of another data joint analysis method provided by an embodiment of the present application, which is applied to a processing device of a third institution in a joint analysis system, wherein the joint analysis system includes a first scheduler, a first data processing system and a first MPC node of a first institution, and a second scheduler, a second data processing system, a second MPC node of a second institution, and the processing device of the third institution, wherein the first scheduler is respectively connected to the first data processing system, the first MPC node and the second scheduler, the second scheduler is respectively connected to the second data processing system and the second MPC node, and the processing device is respectively connected to the first data processing system, the first MPC node, the second data processing system and the second MPC node; the method includes:

[0091] Step S601: Acquire first aggregate primary key data from a first table of the first MPC node, and acquire second aggregate primary key data from a second table of the second MPC node.

[0092] Step S602, add a first index column to the first aggregate primary key data to obtain a third table, and add a second index column to the second aggregate primary key data to obtain a fourth table, wherein the first index column is used to record the index of the first aggregate primary key data in the first table, and the second index column is used to record the index of the second aggregate primary key data in the second table.

[0093] Step S603: perform a join table query on the third table and the fourth table based on the target aggregate primary key to obtain an intermediate table, wherein the intermediate table includes a third index column, a fourth index column, and a target aggregate primary key column.

[0094] Step S604: Send the first index data of the third index column to the first data processing system, and send the second index data of the fourth index column to the second data processing system, the first data processing system is used to perform a table join query on the first index data and the first table to obtain a target data set at the intersection of the first table and the second table, and the second data processing system is used to perform a table join query on the second index data and the second table to obtain the target data set.

[0095] It can be seen that this solution introduces the processing equipment of a third organization to assist in the execution of the table-joining query operator and the aggregation grouping operator, and shares the aggregate primary key data with the processing equipment of the third organization in a secret manner without exposing any other information, thereby realizing the conversion of joint execution operators such as the table-joining query operator and the aggregation grouping operator into local plaintext operators for execution in the local data processing system, which is conducive to further reducing data transmission costs and saving computing power.

[0096] See also Figure 7 , Figure 7 A structural schematic diagram of an electronic device provided in an embodiment of the present application is applied to a first scheduler in a joint analysis system, wherein the joint analysis system includes a first scheduler, a first data processing system, and a first MPC node of a first institution, a second scheduler, a second data processing system, and a second MPC node of a second institution, and a processing device of a third institution, wherein the first scheduler is respectively connected to the first data processing system, the first MPC node, and the second scheduler, the second scheduler is respectively connected to the second data processing system and the second MPC node, and the processing device is respectively connected to the first data processing system, the first MPC node, the second data processing system, and the second MPC node; Figure 7 As shown, the electronic device includes a processor, a memory, a communication interface, and one or more programs, wherein the one or more programs are stored in the memory, and the one or more programs are configured to execute the following steps by the processor:

[0097] Get the target SQL query statement;

[0098] Sending the target SQL query statement to the second scheduler;

[0099] Build a DAG execution plan according to the target SQL query statement;

[0100] Dividing multiple SQL operators of multiple nodes in the DAG execution plan into joint execution operators and local plaintext operators;

[0101] adding the local plaintext operator operating on the first input data of the first mechanism to a first execution queue, and adding the joint execution operator to a second execution queue;

[0102] The local plaintext operators in the first execution queue are sent to the first data processing system, and the joint execution operators in the second execution queue are sent to the first MPC node.

[0103] It can be seen that in the embodiment of the present application, the electronic device first obtains the target SQL query statement, then sends the target SQL query statement to the second scheduler, and then builds a DAG execution plan according to the target SQL query statement, and further divides the multiple SQL operators of multiple nodes in the DAG execution plan into joint execution operators and local plaintext operators, and further adds the local plaintext operators to the first execution queue, and adds the joint execution operators to the second execution queue, sends the local plaintext operators in the first execution queue to the first data processing system, and sends the joint execution operators in the second execution queue to the first MPC node. By building a DAG execution plan according to the SQL query statement, the multiple SQL operators of multiple nodes in the DAG execution plan are divided into joint execution operators and local plaintext operators, the local plaintext operators are operated in the local first data processing system, and the joint execution operators are jointly operated in the MPC node. Compared with all SQL operators operating on the MPC node, it is beneficial to reduce data transmission costs and save computing power.

[0104] In a possible example, after sending the joint execution operator in the second execution queue to the first MPC node, the program further includes instructions for executing the following steps:

[0105] Obtaining an execution result of a first joint execution operator in the first MPC node;

[0106] If it is determined that the second joint execution operator in the second execution queue does not need to be jointly executed based on the execution result, the second joint execution operator is added to the first execution queue.

[0107] In a possible example, in terms of constructing a DAG execution plan according to the target SQL query statement, the program includes instructions for executing the following steps:

[0108] Construct a target syntax tree according to the target SQL statement;

[0109] Traversing the nodes of the target syntax tree and marking the input and output of each node to obtain multiple SQL operators;

[0110] Adding the multiple SQL operators to a third execution queue, traversing the multiple SQL operators, establishing unidirectional connections between the multiple SQL operators, and obtaining the DAG graph;

[0111] The DAG execution plan is determined according to the DAG graph, the first input data of the first mechanism and the second input data of the second mechanism.

[0112] In a possible example, in the aspect of dividing the multiple SQL operators of the multiple nodes in the DAG execution plan into joint execution operators and local plaintext operators, the program includes instructions for executing the following steps:

[0113] The following operations are performed on each SQL operator to divide the multiple SQL operators into the joint execution operator and the local plaintext operator:

[0114] Determine whether the calculation of the SQL operator currently being processed requires both the first input data and the second input data;

[0115] If it is determined that the SQL operator currently being processed requires both the first input data and the second input data, the SQL operator currently being processed is used as the joint execution operator;

[0116] If it is determined that the SQL operator currently being processed only requires the first input data or only requires the second input data, the SQL operator currently being processed is used as the local plaintext operator.

[0117] In one possible example, the first MPC node is used to transmit the first aggregated primary key data of the first table to the processing device in a secret sharing manner when executing the target SQL operator, and the second MPC node is used to transmit the second aggregated primary key data of the second table to the processing device in a secret sharing manner when executing the target SQL operator; the processing device obtains the first aggregated primary key data from the first table of the first MPC node, and obtains the second aggregated primary key data from the second table of the second MPC node; adds a first index column to the first aggregated primary key data to obtain a third table, and adds a second index column to the second aggregated primary key data to obtain a fourth table, wherein the first index column is used to record the first aggregated primary key data in the The second index column is used to record the index of the second aggregate primary key data in the second table; based on the target aggregate primary key, a join table query is performed on the third table and the fourth table to obtain an intermediate table, wherein the intermediate table includes the third index column, the fourth index column and the target aggregate primary key column; the first index data of the third index column is sent to the first data processing system, and the second index data of the fourth index column is sent to the second data processing system; the first data processing system is used to perform a join table query on the first index data and the first table to obtain a target data set that intersects the first table and the second table, and the second data processing system is used to perform a join table query on the second index data and the second table to obtain the target data set.

[0118] In a possible example, the target SQL operator includes at least one of the following: a join table query operator and an aggregation grouping operator.

[0119] The above mainly introduces the scheme of the embodiment of the present application from the perspective of the execution process on the method side. It is understandable that, in order to realize the above functions, the electronic device includes a hardware structure and / or software module corresponding to the execution of each function. Those skilled in the art should easily realize that, in combination with the units and algorithm steps of each example described in the embodiment provided in this article, the present application can be implemented in the form of hardware or a combination of hardware and computer software. Whether a function is executed in the form of hardware or computer software driving hardware depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of this application.

[0120] The embodiment of the present application can divide the electronic device into functional units according to the above method example. For example, each functional unit can be divided according to each function, or two or more functions can be integrated into one processing unit. The above integrated unit can be implemented in the form of hardware or in the form of software functional units. It should be noted that the division of units in the embodiment of the present application is schematic and is only a logical function division. There may be other division methods in actual implementation.

[0121] In the case of dividing each functional module into corresponding functional modules, Figure 8 : is a functional unit composition block diagram of a data joint analysis device provided in an embodiment of the present application, which is applied to a first scheduler in a joint analysis system, wherein the joint analysis system includes a first scheduler, a first data processing system and a first MPC node of a first institution, a second scheduler, a second data processing system and a second MPC node of a second institution, and a processing device of a third institution, wherein the first scheduler is respectively connected to the first data processing system, the first MPC node and the second scheduler, the second scheduler is respectively connected to the second data processing system and the second MPC node, and the processing device is respectively connected to the first data processing system, the first MPC node, the second data processing system and the second MPC node; Figure 8 As shown, the data joint analysis device includes: an acquisition unit 801, a transmission unit 802, a construction unit 803, a division unit 804 and an addition unit 805, wherein:

[0122] The acquisition unit 801 is used to acquire a target SQL query statement;

[0123] The transmission unit 802 is used to send the target SQL query statement to the second scheduler;

[0124] The construction unit 803 is used to construct a DAG execution plan according to the target SQL query statement;

[0125] The division unit 804 is used to divide multiple SQL operators of multiple nodes in the DAG execution plan into joint execution operators and local plaintext operators;

[0126] The adding unit 805 is used to add the local plaintext operator that operates on the first input data of the first mechanism to the first execution queue, and to add the joint execution operator to the second execution queue;

[0127] The transmission unit 802 is used to send the local plaintext operator in the first execution queue to the first data processing system, and send the joint execution operator in the second execution queue to the first MPC node.

[0128] It can be seen that the data joint analysis device described in the embodiment of the present application first obtains the target SQL query statement, then sends the target SQL query statement to the second scheduler, and then builds a DAG execution plan according to the target SQL query statement, and further divides the multiple SQL operators of multiple nodes in the DAG execution plan into joint execution operators and local plaintext operators, and further adds the local plaintext operators to the first execution queue, and adds the joint execution operators to the second execution queue, sends the local plaintext operators in the first execution queue to the first data processing system, and sends the joint execution operators in the second execution queue to the first MPC node. By building a DAG execution plan according to the SQL query statement, the multiple SQL operators of multiple nodes in the DAG execution plan are divided into joint execution operators and local plaintext operators, the local plaintext operators are operated in the local first data processing system, and the joint execution operators are jointly operated in the MPC node. Compared with all SQL operators operating on the MPC node, it is beneficial to reduce data transmission costs and save computing power.

[0129] In a possible example, after sending the joint execution operator in the second execution queue to the first MPC node, the adding unit 805 is specifically configured to:

[0130] Obtaining an execution result of a first joint execution operator in the first MPC node;

[0131] If it is determined that the second joint execution operator in the second execution queue does not need to be jointly executed based on the execution result, the second joint execution operator is added to the first execution queue.

[0132] In a possible example, in terms of constructing a DAG execution plan according to the target SQL query statement, the constructing unit 803 is specifically configured to:

[0133] Construct a target syntax tree according to the target SQL statement;

[0134] Traversing the nodes of the target syntax tree and marking the input and output of each node to obtain multiple SQL operators;

[0135] Adding the multiple SQL operators to a third execution queue, traversing the multiple SQL operators, establishing unidirectional connections between the multiple SQL operators, and obtaining the DAG graph;

[0136] The DAG execution plan is determined according to the DAG graph, the first input data of the first mechanism and the second input data of the second mechanism.

[0137] In a possible example, in the aspect of dividing the multiple SQL operators of the multiple nodes in the DAG execution plan into joint execution operators and local plaintext operators, the determining unit 402 is specifically used to:

[0138] The following operations are performed on each SQL operator to divide the multiple SQL operators into the joint execution operator and the local plaintext operator:

[0139] Determine whether the calculation of the SQL operator currently being processed requires both the first input data and the second input data;

[0140] If it is determined that the SQL operator currently being processed requires both the first input data and the second input data, the SQL operator currently being processed is used as the joint execution operator;

[0141] If it is determined that the SQL operator currently being processed only requires the first input data or only requires the second input data, the SQL operator currently being processed is used as the local plaintext operator.

[0142] In a possible example, the first MPC node is used to transmit the first aggregated primary key data of the first table to the processing device in a secret sharing manner when executing the target SQL operator, and the second MPC node is used to transmit the second aggregated primary key data of the second table to the processing device in a secret sharing manner when executing the target SQL operator;

[0143] The processing device obtains first aggregate primary key data from a first table of the first MPC node, and obtains second aggregate primary key data from a second table of the second MPC node; adds a first index column to the first aggregate primary key data to obtain a third table, and adds a second index column to the second aggregate primary key data to obtain a fourth table, wherein the first index column is used to record an index of the first aggregate primary key data in the first table, and the second index column is used to record an index of the second aggregate primary key data in the second table; performs a join table query on the third table and the fourth table based on a target aggregate primary key to obtain an intermediate table, wherein the intermediate table includes a third index column, a fourth index column, and a target aggregate primary key column; sends the first index data of the third index column to the first data processing system, and sends the second index data of the fourth index column to the second data processing system;

[0144] The first data processing system is used to perform a table join query on the first index data and the first table to obtain a target data set that is the intersection of the first table and the second table. The second data processing system is used to perform a table join query on the second index data and the second table to obtain the target data set.

[0145] It should be noted that all relevant contents of each step involved in the above method embodiment can be referred to the functional description of the corresponding functional module and will not be repeated here.

[0146] The electronic device provided in this embodiment is used to execute the above-mentioned data joint analysis method, and thus can achieve the same effect as the above-mentioned implementation method.

[0147] In the case of an integrated unit, the electronic device may include a processing module, a storage module and a communication module. The processing module may be used to control and manage the actions of the electronic device, for example, it may be used to support the electronic device to execute the steps performed by the above-mentioned functional unit. The storage module may be used to support the electronic device to execute stored program codes and data, etc. The communication module may be used to support the communication between the electronic device and other devices.

[0148] Among them, the processing module can be a processor or a controller. It can implement or execute various exemplary logic boxes, modules and circuits described in conjunction with the disclosure of this application. The processor can also be a combination that implements computing functions, such as a combination of one or more microprocessors, a combination of digital signal processing (DSP) and a microprocessor, etc. The storage module can be a memory. The communication module can specifically be a device that interacts with other electronic devices, such as a radio frequency circuit, a Bluetooth chip, a Wi-Fi chip, etc.

[0149] An embodiment of the present application also provides a computer storage medium, wherein the computer storage medium stores a computer program for electronic data exchange, wherein the computer program enables a computer to execute part or all of the steps of any method described in the above method embodiments, and the above computer includes an electronic device.

[0150] The present application also provides a computer program product, which includes a non-transitory computer-readable storage medium storing a computer program, and the computer program is operable to cause a computer to execute some or all of the steps of any method described in the method embodiment. The computer program product may be a software installation package, and the computer includes a control platform.

[0151] It should be noted that, for the aforementioned method embodiments, for the sake of simplicity, they are all expressed as a series of action combinations, but those skilled in the art should be aware that the present application is not limited by the described order of actions, because according to the present application, certain steps can be performed in other orders or simultaneously. Secondly, those skilled in the art should also be aware that the embodiments described in the specification are all preferred embodiments, and the actions and modules involved are not necessarily required by the present application.

[0152] In the above embodiments, the description of each embodiment has its own emphasis. For parts that are not described in detail in a certain embodiment, reference can be made to the relevant descriptions of other embodiments.

[0153] In the several embodiments provided in the present application, it should be understood that the disclosed device can be implemented in other ways. For example, the device embodiments described above are only schematic, such as the division of the above-mentioned units, which is only a logical function division. There may be other division methods in actual implementation, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, and the indirect coupling or communication connection of devices or units can be electrical or other forms.

[0154] The units described above as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.

[0155] In addition, each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit. The above-mentioned integrated unit may be implemented in the form of hardware or in the form of software functional units.

[0156] If the above-mentioned integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable memory. Based on this understanding, the technical solution of the present application is essentially or the part that contributes to the prior art or all or part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a memory, including a number of instructions to enable a computer device (which can be a personal computer, server or network device, etc.) to perform all or part of the steps of the above-mentioned methods of each embodiment of the present application. The aforementioned memory includes: U disk, read-only memory (ROM, Read-Only Memory), random access memory (RAM, Random Access Memory), mobile hard disk, disk or CD-ROM and other media that can store program codes.

[0157] A person of ordinary skill in the art can understand that all or part of the steps in the various methods of the above embodiments can be completed by instructing related hardware through a program, and the program can be stored in a computer-readable memory, which can include: a flash drive, a read-only memory, a random access memory, a magnetic disk or an optical disk, etc.

[0158] The embodiments of the present application are introduced in detail above. Specific examples are used in this article to illustrate the principles and implementation methods of the present application. The description of the above embodiments is only used to help understand the method and core idea of ​​the present application. At the same time, for general technical personnel in this field, according to the idea of ​​the present application, there will be changes in the specific implementation method and application scope. In summary, the content of this specification should not be understood as a limitation on the present application.

Claims

1. A data joint analysis method, characterized in that: A first scheduler applied to a joint analysis system, the joint analysis system comprising a first scheduler, a first data processing system and a first MPC node of a first institution, a second scheduler, a second data processing system and a second MPC node of a second institution, and a processing device of a third institution, the first scheduler being respectively connected to the first data processing system, the first MPC node and the second scheduler, the second scheduler being respectively connected to the second data processing system and the second MPC node, and the processing device being respectively connected to the first data processing system, the first MPC node, the second data processing system and the second MPC node; the method comprising: Get the target SQL query statement; Sending the target SQL query statement to the second scheduler; Build a DAG execution plan according to the target SQL query statement; Dividing multiple SQL operators of multiple nodes in the DAG execution plan into joint execution operators and local plaintext operators; adding the local plaintext operator operating on the first input data of the first mechanism to a first execution queue, and adding the joint execution operator to a second execution queue; The local plaintext operators in the first execution queue are sent to the first data processing system, and the joint execution operators in the second execution queue are sent to the first MPC node.

2. The method according to claim 1, characterized in that After sending the joint execution operator in the second execution queue to the first MPC node, the method further includes: Obtaining an execution result of a first joint execution operator in the first MPC node; If it is determined that the second joint execution operator in the second execution queue does not need to be jointly executed based on the execution result, the second joint execution operator is added to the first execution queue.

3. The method according to claim 1, characterized in that The step of constructing a DAG execution plan according to the target SQL query statement includes: Construct a target syntax tree according to the target SQL statement; Traversing the nodes of the target syntax tree and marking the input and output of each node to obtain multiple SQL operators; Adding the multiple SQL operators to a third execution queue, traversing the multiple SQL operators, establishing unidirectional connections between the multiple SQL operators, and obtaining a DAG graph; The DAG execution plan is determined according to the DAG graph, the first input data of the first mechanism and the second input data of the second mechanism.

4. The method according to claim 1 or 3, characterized in that: The dividing of the multiple SQL operators of the multiple nodes in the DAG execution plan into joint execution operators and local plaintext operators includes: The following operations are performed on each SQL operator to divide the multiple SQL operators into the joint execution operator and the local plaintext operator: Determine whether the calculation of the SQL operator currently being processed requires both the first input data and the second input data; If it is determined that the SQL operator currently being processed requires both the first input data and the second input data, the SQL operator currently being processed is used as the joint execution operator; If it is determined that the SQL operator currently being processed only requires the first input data or only requires the second input data, the SQL operator currently being processed is used as the local plaintext operator.

5. The method according to claim 1, characterized in that The first MPC node is used to transmit the first aggregated primary key data of the first table to the processing device in a secret sharing manner when executing the target SQL operator, and the second MPC node is used to transmit the second aggregated primary key data of the second table to the processing device in a secret sharing manner when executing the target SQL operator; The processing device is used to add a first index column to the first aggregate primary key data to obtain a third table, and to add a second index column to the second aggregate primary key data to obtain a fourth table, wherein the first index column is used to record an index of the first aggregate primary key data in the first table, and the second index column is used to record an index of the second aggregate primary key data in the second table; Performing a join table query on the third table and the fourth table based on the target aggregate primary key to obtain an intermediate table, wherein the intermediate table includes a third index column, a fourth index column, and a target aggregate primary key column; sending first index data of the third index column to the first data processing system, and sending second index data of the fourth index column to the second data processing system; The first data processing system is used to perform a table join query on the first index data and the first table to obtain a target data set that is the intersection of the first table and the second table. The second data processing system is used to perform a table join query on the second index data and the second table to obtain the target data set.

6. The method according to claim 5, characterized in that The target SQL operator includes at least one of the following: a join table query operator and an aggregation grouping operator.

7. A data joint analysis method, characterized in that: A processing device applied to a third institution in a joint analysis system, the joint analysis system comprising a first scheduler, a first data processing system and a first MPC node of a first institution, a second scheduler, a second data processing system, a second MPC node of a second institution, and the processing device of the third institution, the first scheduler being respectively connected to the first data processing system, the first MPC node and the second scheduler, the second scheduler being respectively connected to the second data processing system and the second MPC node, and the processing device being respectively connected to the first data processing system, the first MPC node, the second data processing system and the second MPC node; the method comprising: Acquire first aggregate primary key data from a first table of the first MPC node, and acquire second aggregate primary key data from a second table of the second MPC node; Adding a first index column to the first aggregate primary key data to obtain a third table, and adding a second index column to the second aggregate primary key data to obtain a fourth table, wherein the first index column is used to record the index of the first aggregate primary key data in the first table, and the second index column is used to record the index of the second aggregate primary key data in the second table; Perform a join table query on the third table and the fourth table based on the target aggregate primary key to obtain an intermediate table, wherein the intermediate table includes the third index column, the fourth index column and the target aggregate primary key column; The first index data of the third index column is sent to the first data processing system, and the second index data of the fourth index column is sent to the second data processing system, the first data processing system is used to perform a table join query on the first index data and the first table to obtain a target data set that intersects the first table and the second table, and the second data processing system is used to perform a table join query on the second index data and the second table to obtain the target data set.

8. A data joint analysis device, characterized in that: A first scheduler applied to a joint analysis system, the joint analysis system comprising a first scheduler, a first data processing system and a first MPC node of a first institution, a second scheduler, a second data processing system and a second MPC node of a second institution, and a processing device of a third institution, the first scheduler is respectively connected to the first data processing system, the first MPC node and the second scheduler, the second scheduler is respectively connected to the second data processing system and the second MPC node, the processing device is respectively connected to the first data processing system, the first MPC node, the second data processing system and the second MPC node; the data joint analysis device comprises: an acquisition unit, a transmission unit, a construction unit, a division unit and an addition unit, wherein, The acquisition unit is used to acquire the target SQL query statement; The transmission unit is used to send the target SQL query statement to the second scheduler; The construction unit is used to construct a DAG execution plan according to the target SQL query statement; The division unit is used to divide multiple SQL operators of multiple nodes in the DAG execution plan into joint execution operators and local plaintext operators; The adding unit is used to add the local plaintext operator whose operation involves the first input data of the first mechanism to the first execution queue, and to add the joint execution operator to the second execution queue; The transmission unit is used to send the local plaintext operator in the first execution queue to the first data processing system, and send the joint execution operator in the second execution queue to the first MPC node.

9. An electronic device, characterized in that: The method comprises a processor, a memory, a communication interface, and one or more programs, wherein the one or more programs are stored in the memory and configured to be executed by the processor, and the programs include instructions for executing the steps in the method according to any one of claims 1 to 6 or claim 7.

10. A computer-readable storage medium, characterized in that: A computer program for electronic data exchange is stored, wherein the computer program enables a computer to execute the method according to any one of claims 1 to 6 or claim 7.