WO2021129498A1 - 一种分布式查询系统的数据处理方法和装置 - Google Patents
一种分布式查询系统的数据处理方法和装置 Download PDFInfo
- Publication number
- WO2021129498A1 WO2021129498A1 PCT/CN2020/137073 CN2020137073W WO2021129498A1 WO 2021129498 A1 WO2021129498 A1 WO 2021129498A1 CN 2020137073 W CN2020137073 W CN 2020137073W WO 2021129498 A1 WO2021129498 A1 WO 2021129498A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- nodes
- node
- distribution information
- range
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
Definitions
- This application relates to the field of data processing technology, and in particular to a data processing method of a distributed query system and a data processing device of a distributed query system.
- cross-database query provides timely related query services for online heterogeneous data sources in different environments. Regardless of whether the database is MySQL, SQLServer, PostgreSQL or Redis, no matter which Region and environment the database instance is deployed in, the associated query between these databases can be realized through a single piece of SQL.
- the technical problem to be solved by the embodiments of the present application is to provide a data query method of a distributed query system to solve the problem of low system performance caused by full reading of large table data and shuffle in the data processing process in the prior art.
- the embodiment of the present application also provides a data query device of a distributed query system to ensure the implementation and application of the above method.
- the present application discloses a data processing method of a distributed query system.
- the distributed query system includes a plurality of first nodes and is connected to at least two data in communication.
- the method includes:
- the second data is extracted from a plurality of second nodes of the second data source in parallel.
- the extracting the second data from multiple second nodes of the second data source in parallel according to the data range includes:
- the configuring the first data in a plurality of the first nodes according to the distribution information of the second data includes:
- the first data are respectively configured in the first nodes corresponding to the second configuration identifiers
- the distribution information includes at least one of a sharding strategy, a partitioning strategy, and a bucketing strategy.
- the first data is small table data
- the configuring the first data in the first node corresponding to the second configuration identifier according to the sequence of the second configuration identifier respectively includes:
- each of the first sub-table data is configured in the target node.
- the data range includes a value range corresponding to each of the first sub-table data
- the second data is large table data
- the large table data includes second data corresponding to each of the second nodes.
- the sub-table data, said obtaining the second data corresponding to the data range from the multiple second nodes in parallel according to the Join connection condition, includes:
- the second sub-table data corresponding to the value range is obtained from the multiple second nodes in parallel.
- the separately calculating each of the distribution information to generate a first configuration identifier for the first data includes:
- the first quantity information and the distribution information are used to calculate a third configuration identifier for the first data
- the second quantity information and the distribution information are used to calculate a fourth configuration identifier for the first data.
- it also includes:
- the node connection results corresponding to each of the first nodes are combined to generate query results for the small table data and the large table data.
- the embodiment of the present application also discloses a data query method of a distributed query system.
- the distributed query system communicates with at least one second data source; the distributed query system includes a plurality of first nodes, so The first node includes first data configured using the distribution information of the second data source; the second data source includes multiple second nodes; the method includes:
- the multiple first nodes send data query requests including the data range to the multiple second nodes in parallel;
- the multiple first nodes sending the data query request including the data range to the multiple second nodes in parallel includes:
- the multiple first nodes send data query requests including the data range to the multiple second nodes in parallel according to the Join connection condition.
- it also includes:
- the first data is arranged in a plurality of the first nodes.
- the configuring the first data in a plurality of the first nodes according to the distribution information of the second data includes:
- the first data are respectively configured in the first nodes corresponding to the second configuration identifiers
- the distribution information includes at least one of a sharding strategy, a partitioning strategy, and a bucketing strategy.
- the first data is small table data
- the configuring the first data in the first node corresponding to the second configuration identifier according to the sequence of the second configuration identifier respectively includes:
- each of the first sub-table data is configured in the target node.
- the data range includes a value range corresponding to each of the first sub-table data
- the second data is large table data
- the large table data includes second data corresponding to each of the second nodes.
- the second sub-table data corresponding to the value range is obtained from the multiple second nodes in parallel.
- the separately calculating each of the distribution information to generate a first configuration identifier for the first data includes:
- the first quantity information and the distribution information are used to calculate a third configuration identifier for the first data
- the second quantity information and the distribution information are used to calculate a fourth configuration identifier for the first data.
- the second data corresponding to the data query request sent by the second node is connected with the first data to generate a query for the first data and the second data
- the results include:
- the node connection results corresponding to each of the first nodes are combined to generate query results for the small table data and the large table data.
- the embodiment of the present application also discloses a data processing device of a distributed query system.
- the distributed query system includes a plurality of first nodes and is connected to at least two data communications.
- the device includes:
- the data and information acquisition module is used to acquire the first data of the first data source and the distribution information of the second data in the second data source;
- a data configuration module configured to configure the first data in a plurality of the first nodes according to the distribution information of the second data
- a data range determining module configured to determine the data range of the first data in the first node
- the data extraction module is configured to extract the second data from multiple second nodes of the second data source in parallel according to the data range.
- the data extraction module includes:
- connection condition determination sub-module is used to determine the Join connection condition between the first data and the second data
- the data extraction sub-module is configured to extract second data corresponding to the data range from the multiple second nodes in parallel according to the Join connection condition.
- the data configuration module includes:
- the first identification generation sub-module is configured to calculate each of the distribution information to generate a first configuration identification for the first data
- a second identifier generation submodule configured to use the first configuration identifier and the Join connection condition to determine a second configuration identifier for the first node;
- a data configuration sub-module configured to configure the first data in the first node corresponding to the second configuration identifier according to the sequence of the second configuration identifier
- the distribution information includes at least one of a sharding strategy, a partitioning strategy, and a bucketing strategy.
- the first data is small table data
- the data configuration submodule is specifically configured to:
- each of the first sub-table data is configured in the target node.
- the data range includes a value range corresponding to each of the first sub-table data
- the second data is large table data
- the large table data includes second data corresponding to each of the second nodes.
- the data extraction sub-module is specifically used for:
- the second sub-table data corresponding to the value range is obtained from the multiple second nodes in parallel.
- the first identifier generation submodule is specifically configured to:
- the first quantity information and the distribution information are used to calculate a third configuration identifier for the first data
- the second quantity information and the distribution information are used to calculate a fourth configuration identifier for the first data.
- it also includes:
- a sub-table data operation module configured to respectively connect the first sub-table data and the second sub-table data in each of the first nodes to generate a node connection result
- connection result combination module is configured to combine the node connection results corresponding to each of the first nodes to generate query results for the small table data and the large table data.
- the embodiment of the present application also discloses a data query device of a distributed query system.
- the distributed query system is in communication connection with at least one second data source; the distributed query system includes a plurality of first nodes, so The first node includes first data configured using the distribution information of the second data source; the second data source includes multiple second nodes; the device includes:
- a data range determining module configured to determine the data range of the first data in the first node
- a query request sending module configured to send data query requests including the data range to the plurality of second nodes in parallel by the plurality of first nodes;
- the query result generation module is configured to connect the second data corresponding to the data query request sent by the plurality of second nodes with the first data, and generate data corresponding to the first data and the second data. Data query results.
- the query request sending module includes:
- connection condition determination sub-module is used to determine the Join connection condition between the first data and the second data
- the query request sending submodule is configured to send the data query request including the data range to the multiple second nodes in parallel by the multiple first nodes according to the Join connection condition.
- it also includes:
- a distribution information obtaining module configured to obtain distribution information of the second data in the second data source
- the data configuration module is configured to configure the first data in a plurality of the first nodes according to the distribution information of the second data.
- the data configuration module includes:
- the first identification generation sub-module is configured to calculate each of the distribution information to generate a first configuration identification for the first data
- a second identifier generation submodule configured to use the first configuration identifier and the Join connection condition to determine a second configuration identifier for the first node;
- a data configuration sub-module configured to configure the first data in the first node corresponding to the second configuration identifier according to the sequence of the second configuration identifier
- the distribution information includes at least one of a sharding strategy, a partitioning strategy, and a bucketing strategy.
- the first data is small table data
- the data configuration submodule is specifically configured to:
- each of the first sub-table data is configured in the target node.
- the data range includes a value range corresponding to each of the first sub-table data
- the second data is large table data
- the large table data includes second data corresponding to each of the second nodes.
- Sub-table data, the query request sending sub-module is specifically used for:
- the second sub-table data corresponding to the value range is obtained from the multiple second nodes in parallel.
- the first identifier generation submodule is specifically configured to:
- the first quantity information and the distribution information are used to calculate a third configuration identifier for the first data
- the second quantity information and the distribution information are used to calculate a fourth configuration identifier for the first data.
- the query result generation module includes:
- the node connection sub-module is used to respectively connect the first sub-table data and the second sub-table data in each of the first nodes to generate a node connection result;
- the system connection sub-module is used to combine the node connection results corresponding to each of the first nodes to generate query results for the small table data and the large table data.
- the embodiment of the present application also discloses a device, including:
- One or more processors are One or more processors.
- One or more machine-readable media having instructions stored thereon, when executed by the one or more processors, cause the apparatus to perform one or more of the methods described above.
- the embodiment of the present application also discloses one or more machine-readable media, on which instructions are stored, which when executed by one or more processors, cause the processors to execute one or more of the methods described above.
- the first data is configured in each first node according to the distribution information of the second data
- the data range of the first data in the first node is determined, and the second data is extracted from multiple second nodes in parallel according to the data range, thereby realizing that the first data is configured in each of the second data according to the distribution information of the second data.
- the distribution of the first data on the first node is consistent with the distribution of the second data on the second node, which avoids distributing the second data in the system, and adjusts the second data according to the data range.
- Data extraction avoids the full extraction of data and improves the efficiency of system operation.
- FIG. 1 is a flowchart of the steps of Embodiment 1 of a data processing method of a distributed query system according to the present application;
- FIG. 2 is a flowchart of the steps of Embodiment 2 of a data processing method of a distributed query system according to the present application;
- Fig. 3 is a schematic diagram of cross-source data processing in an embodiment of the present application.
- Embodiment 4 is a flowchart of the steps of Embodiment 3 of a data query method of a distributed query system according to the present application;
- Embodiment 1 is a structural block diagram of Embodiment 1 of a data processing device of a distributed query system of the present application;
- Fig. 6 is a structural block diagram of a second embodiment of a data query device of a distributed query system according to the present application.
- Embodiment 1 of a data processing method of a distributed query system of the present application.
- the distributed query system includes a plurality of first nodes and is connected to at least two data communication.
- the first data source instance may be an RDS (Relational Database Service) MySQL database instance, etc.
- the second data source The instance can be ADB (Analytic Data Base), etc.
- the former can be used to support users' online business systems, and it can be a stand-alone version, and the amount of first data stored in the first data source is not large; while the latter It can be used for offline decision analysis.
- the second data source can be a distributed database, which needs to be deployed on multiple machines to store a large amount of data.
- the data on ADB is usually scattered by sharding, partitioning, and bucketing. On each second node. When users need to associate offline and online data, they can be implemented through a distributed query system.
- the distributed query system may include multiple first nodes (Node1, Node2...NodeN), where N may be the number of nodes on the distributed query system, and the query system may use JDBC, ODBC ( Open Database Connectivity (Open Database Connectivity), etc., communicate and connect with at least one first data source and at least one second data domain.
- first nodes Node1, Node2...NodeN
- ODBC Open Database Connectivity (Open Database Connectivity), etc.
- the query system can communicate with the first data source and the second data source through a single JDBC (or ODBC), and read the first data on the first data source and the second data on the second data source. Then the query system performs a Shuffle operation on the first data and the second data, so that the data of the same Join Key is distributed on the same computing node, and then each computing node runs a stand-alone Join algorithm, such as hash join Hash Join, sort merge Connect Sort Merge Join, etc., and generate Join results.
- a stand-alone Join algorithm such as hash join Hash Join, sort merge Connect Sort Merge Join, etc.
- the query system also needs to perform a Shuffle operation on the second data, which has a huge network overhead, which further increases the time for data processing and greatly reduces the efficiency of data processing. Therefore, the data processing method of the distributed query system in the embodiment of the present application can effectively solve the above-mentioned problems, which specifically may include the following steps:
- Step 101 Obtain first data of a first data source, and obtain distribution information of second data in a second data source;
- the query system may obtain the first data from the first data source, and obtain the distribution information of the second data in the second data source.
- the first data may be small table data (the small table below), or an intermediate result of a query, and the query system may obtain the first data from the first data source.
- the second data can be large table data (the following large table), which can be distributed in multiple second nodes of the second data source in a specific distribution manner, such as horizontal sharding, bucketing, and partitioning. Distribution, so that the large table can be distributed on multiple machines (Server1, Server2...ServerM) in the second data source, and M can be the number of machines in the second data source.
- corresponding distribution information can be obtained, where the distribution information can be at least one of a sharding strategy, a bucketing strategy, and a partitioning strategy.
- Step 102 According to the distribution information of the second data, configure the first data in a plurality of the first nodes;
- the query system after the query system obtains the distribution information of the large table, it can generate a shuffle strategy for the small table based on the distribution information, and use the shuffle strategy to configure the small table in the multiple first nodes of the query system.
- the shuffle operation is performed on the small table according to the distribution mode of the large table in the second data source, so that the distribution mode of the small table in the query system is consistent with the distribution mode of the large table in the second data source, thereby avoiding
- the query system performs shuffle operations on large tables, which reduces the length of data processing and improves data processing efficiency.
- Step 103 Determine the data range of the first data in the first node
- each first node can obtain the data range of the local medium and small tables.
- the data range may be the value range of the data column of the small table in the node, and/or the value range of the data row, and so on.
- Step 104 Extract the second data from multiple second nodes of the second data source in parallel according to the data range.
- each first node in the query system can generate a filter condition for a large table according to the data range, and then each node extracts from multiple second nodes in the second data source in parallel based on the filter condition Big table of data.
- the data of the small table has been read into the query system, and the shuffle operation is performed in the query system according to the distribution mode of the large table in the second data source. Therefore, when the data of the small table is configured on node 1 of the query system, the data of the large table is also configured on machine 1 of the second data source, so that each first node can pass the filter condition to read and retrieve data from the corresponding second node.
- the data of the large table corresponding to the filter condition avoids shuffle operation on the data of the large table in the data processing process, further reduces the time length of data processing, and improves the efficiency of data processing.
- the first data is configured in each first node according to the distribution information of the second data
- the data range of the first data in the first node is determined, and the second data is extracted from multiple second nodes in parallel according to the data range, so as to realize that according to the distribution information of the second data, the first data is configured in each In the first node, the distribution of the first data on the first node is kept consistent with the distribution of the second data on the second node, which avoids distributing the second data in the system.
- FIG. 2 there is shown a step flow diagram of the second embodiment of a data processing method of a distributed query system of the present application, and is connected to at least two data communications, which specifically may include the following steps:
- Step 201 Obtain first data of a first data source, and obtain distribution information of second data in a second data source;
- the query system can obtain the small table data T1 or an intermediate query result from the first data source S1, and obtain the distribution information of the large table data T2 in the second data source S2, where the distribution information may include fragmentation At least one of a strategy, a partition strategy, and a bucket strategy.
- Step 202 Configure the first data in a plurality of the first nodes according to the distribution information of the second data
- the query system after the query system obtains the distribution information of the large table, it can generate a shuffle strategy for the small table based on the distribution information, and use the shuffle strategy to configure the small table in the multiple first nodes of the query system.
- the shuffle operation is performed on the small table according to the distribution mode of the large table in the second data source, so that the distribution mode of the small table in the query system is consistent with the distribution mode of the large table in the second data source, thereby avoiding
- the query system performs shuffle operations on large tables, which reduces the length of data processing and improves data processing efficiency.
- step 202 may include the following sub-steps:
- Sub-step S11 respectively calculating each of the distribution information to generate a first configuration identifier for the first data
- T1 represents a small table in the first data source, or an intermediate query result
- T2 represents a large table in the second data source
- C1 can be the second configuration identifier, such as the connection key Join Key
- C2 can be the first Configure identification, such as fragmentation strategy, partition strategy, and bucket strategy, etc.
- the distribution information can be calculated to generate the first configuration identifier of the small table.
- the query system may obtain the first quantity information of the first node and the second quantity information of the second node; when the second quantity information is less than or equal to the first quantity information, it uses The first quantity information and the distribution information are used to calculate a third configuration identifier for the first data; when the second quantity information is greater than the first quantity information, the second quantity information and the distribution information are used The distribution information calculates a fourth configuration identifier for the first data.
- the number of first nodes in the query system is N
- the number of second nodes in the second data source is M.
- the first node can be For the quantitative relationship with the second node, the distribution information is used to calculate the first configuration identifier.
- the first quantity information N and the second quantity information M can be subjected to a modulo operation.
- Sub-step S12 respectively adopting the first configuration identifier and the Join connection condition to determine a second configuration identifier for the first node;
- the user can write the Join Key, namely C1, in the input query sentence, and then use the first configuration identifier C2 to connect with the Join condition to determine the The second configuration identifier of a node.
- the Join connection condition when the first quantity information N of the first node in the query system is greater than the second quantity information M of the second node in the second data source, Hash(C2)Mod M, then Hash(C1) Mod M; When the first quantity information N of the first node in the query system is less than the second quantity information M of the second node in the second data source, Hash(C2)ModN, then Hash(C1)ModN, so that The distribution of the first data in the query system is consistent with the distribution of the second data in the second data source.
- Sub-step S13 according to the sequence of the second configuration identifier, the first data is respectively configured in the first node corresponding to the second configuration identifier.
- the query system can configure the small table or an intermediate query result in the node corresponding to C1 according to the sequence of the second configuration identifier C1, so that the first data is redistributed in the query according to the value of the C1 column In each node of the system, the distribution of the first data is consistent with the distribution of the second data in the second data source.
- the query system can split the small table data into the first sub-table data corresponding to each second configuration identifier, and then determine the target node corresponding to each second configuration identifier from the first node, and then according to the first node
- the second is to configure the sequence of identifiers, and to configure the data of each first sub-table in the target node.
- Step 203 Determine the data range of the first data in the first node
- each first node after disposing small tables or intermediate query results on each first node using the distribution information of a large table, each first node can obtain the data range of the local small and medium tables or intermediate query results.
- the data range may be the value range of the data column of the small table in the node or the intermediate query result, and/or the value range of the data row, and so on.
- Step 204 Extract the second data from multiple second nodes of the second data source in parallel according to the data range;
- the query system can extract the first data corresponding to the data range from the multiple second nodes in parallel according to the Join connection condition between the first data and the second data, and then according to the Join connection condition. Two data.
- the data of the small table or the intermediate query result has been read into the query system, and the shuffle operation is performed in the query system according to the distribution mode of the large table in the second data source. Therefore, when the data of the small table or the intermediate query result is configured in node one of the query system, the data of the large table is also configured in machine one of the second data source.
- the data range may include the value range corresponding to each of the first sub-table data.
- the large table uses sharding, partitioning, and bucketing, etc., to generate multiple second sub-table data and distribute them in the second data.
- the query system can use the Join connection condition to extract the second sub-table data corresponding to the value range from the multiple second nodes corresponding to the first node in parallel, so that each first node
- the node can read the data of the large table corresponding to the filter condition from the corresponding second node through the filter condition.
- it avoids shuffle operation on the data of the large table in the data processing process, and further reduces the data processing.
- the length of time which improves the efficiency of data processing, on the other hand, avoids the full extraction of the second data, and improves the extraction efficiency.
- Step 205 Connect the first data and the second data, and generate a connection result for the first data and the second data.
- the first node that has acquired the first data and the second data in the query system can perform a local join operation on the first data and the second data, thereby generating a connection for the first data and the second data result.
- the query system can respectively connect the first sub-table data and the second sub-table data in each first node to generate a node connection result, and then connect each first node The corresponding node connection results are combined to generate query results for small table data and large table data.
- the Join operation process is the same as the Join operation process of the small table, and will not be repeated here.
- FIG. 3 a schematic diagram of cross-source data processing in the embodiment of the present application is shown.
- the query system includes N nodes (Node1, Node2...NodeN), and the second
- the data source includes multiple machine servers.
- the T1 table can be data from a small table in the first data source, or an intermediate result of a query (the small table is used as an example below), and the T2 table can be sharded in a horizontal sharding manner.
- each node Node i on the query system can generate a filter condition of column C2 according to the value range of column C1 locally, and then use this filter condition to extract the data of the T2 table from the second data source.
- the node Node i configured with T1 table data can initiate M query requests to the second data source in parallel, so that the machine Server that receives the query request in the second data source can return the table data corresponding to the filter condition.
- a node Node_i only obtains a part of the data of the T2 table, and the data obtained by all nodes is combined into the complete data of T2, thus avoiding the shuffle operation on the data of the large table in the data processing process, and further reducing the data
- the processing time improves the efficiency of data processing. On the other hand, it avoids the full extraction of the second data and improves the extraction efficiency.
- each node Node_i on the query system performs local Join operations based on part of the local T1 table data and part of the T2 table data, such as Hash Join, Sort Merge Join and other algorithms. And, all nodes execute local Join in parallel. Since the Shuffle strategy of the T1 table is the same as the Sharding strategy of the T2 table, the data with the same Join Key in the two tables will only be distributed on the same node, so only the local Join is needed, and there is no need to shuffle the large table T2.
- the local Join results of all nodes can be combined to generate a complete Join result, thereby greatly alleviating the data skew in the I data processing process, and filtering the second data Extraction avoids the full extraction of data and improves the efficiency of system operation.
- the first data is configured in each first node according to the distribution information of the second data
- the data range of the first data in the first node is determined, and the second data is extracted from multiple second nodes in parallel according to the data range, thereby realizing that the first data is configured in each of the second data according to the distribution information of the second data.
- the distribution of the first data on the first node is consistent with the distribution of the second data on the second node, which avoids distributing the second data in the system, and adjusts the second data according to the data range.
- Data extraction avoids the full extraction of data and improves the efficiency of system operation.
- the distributed query system communicates with at least one second data source; the distributed query The system includes multiple first nodes, and the first node includes first data configured using the distribution information of the second data source; the second data source includes multiple second nodes; specifically, it may include the following step:
- Step 401 Determine the data range of the first data in the first node
- the distributed query system includes a plurality of first nodes, and the first node includes the first data configured by using the distribution information of the second data source.
- the distribution information of the second data in the second data source can be obtained, and then the distribution information of the second data in the second data source is configured to configure the first data in a plurality of the first data.
- the first data may be small table data or an intermediate query structure
- the second data may be large table data.
- the small table and the large table are taken as examples for illustrative description in the following.
- each first node when the small table configured using the distribution information of the second data source has been stored in the first node, each first node can determine the data range of the local small table, and Generate filter conditions for large tables.
- the distribution information can be used to generate a shuffle strategy for the small table, and then according to the shuffle The strategy configures the small table in multiple first nodes.
- the query system may first obtain the distribution information of the large table in the second data source, and then calculate each of the distribution information separately , Generate a first configuration identifier for the small table, and then use the first configuration identifier and the Join connection condition to determine a second configuration identifier for the first node, and then follow the sequence of the second configuration identifier ,
- the small tables are respectively configured in the first node corresponding to the second configuration identifier; wherein the distribution information includes at least one of a fragmentation strategy, a partition strategy, and a bucketing strategy.
- the query system can obtain the first quantity information of the first node and the second quantity information of the second node; when the second quantity information is less than or equal to the first quantity information, Then use the first quantity information and the distribution information to calculate a third configuration identifier for the first data; when the second quantity information is greater than the first quantity information, use the second quantity Information and the distribution information, calculating a fourth configuration identifier for the first data.
- the query system may split the small table data into first sub-table data corresponding to each of the second configuration identifiers; from the first node, it is determined to correspond to each of the second configuration identifiers.
- each first node can determine the data range of the local first data, and generate filter conditions for the large table.
- Step 402 The multiple first nodes send data query requests including the data range to the multiple second nodes in parallel;
- the Join connection condition between the small table and the large table can be determined, and then multiple first nodes will include in parallel according to the Join connection condition
- the data query request of the data range is sent to multiple second nodes to obtain the large table stored in the second node.
- the data range includes the value range corresponding to each first sub-table data
- the second data is large table data
- the large table data includes second sub-table data corresponding to each second node, so multiple first nodes can be
- the Join connection condition is used to obtain the second sub-table data corresponding to the value range from the multiple second nodes in parallel, thereby avoiding the query system from scanning all second nodes or scanning the full amount of data , which greatly improves the efficiency of data acquisition.
- Step 403 Connect the second data corresponding to the data query request sent by the multiple second nodes with the first data to generate query results for the first data and the second data .
- the first node that has acquired the first data and the second data in the query system can perform a local join operation on the first data and the second data, thereby generating a connection for the first data and the second data result.
- the query system can respectively connect the first sub-table data and the second sub-table data in each of the first nodes to generate node connection results, and then connect the node connection results corresponding to each of the first nodes The combination is performed to generate query results for the small table data and the large table data.
- the query system determines the data range of the first data in the first node, and then multiple first nodes send data query requests that include the data range to all of them in parallel.
- the result of the data query avoids the system from distributing the second data in the data processing process, which greatly reduces the network overhead, and extracts the second data according to the data range, avoiding the full data extraction and improving The efficiency of system operation.
- Embodiment 1 of a data processing device of a distributed query system of the present application includes a plurality of first nodes and is in communication connection with at least two data sources. , which can specifically include the following modules:
- the data and information acquisition module 501 is configured to acquire the first data of the first data source and acquire the distribution information of the second data in the second data source;
- a data configuration module 502 configured to configure the first data in a plurality of the first nodes according to the distribution information of the second data
- the data extraction module 504 is configured to extract the second data from multiple second nodes of the second data source in parallel according to the data range.
- the data extraction module 504 includes:
- connection condition determination sub-module is used to determine the Join connection condition between the first data and the second data
- the data extraction sub-module is configured to extract second data corresponding to the data range from the multiple second nodes in parallel according to the Join connection condition.
- the data configuration module 502 includes:
- the first identification generation sub-module is configured to calculate each of the distribution information to generate a first configuration identification for the first data
- a second identifier generation submodule configured to use the first configuration identifier and the Join connection condition to determine a second configuration identifier for the first node;
- a data configuration sub-module configured to configure the first data in the first node corresponding to the second configuration identifier according to the sequence of the second configuration identifier
- the distribution information includes at least one of a sharding strategy, a partitioning strategy, and a bucketing strategy.
- the first data is small table data
- the data configuration submodule is specifically configured to:
- each of the first sub-table data is configured in the target node.
- the data range includes a value range corresponding to each of the first sub-table data
- the second data is large table data
- the large table data includes For the second sub-table data corresponding to each of the second nodes, the data extraction sub-module is specifically configured to:
- the second sub-table data corresponding to the value range is obtained from the multiple second nodes in parallel.
- the first identifier generation submodule is specifically configured to:
- the first quantity information and the distribution information are used to calculate a third configuration identifier for the first data
- the second quantity information and the distribution information are used to calculate a fourth configuration identifier for the first data.
- a sub-table data operation module configured to respectively connect the first sub-table data and the second sub-table data in each of the first nodes to generate a node connection result
- connection result combination module is configured to combine the node connection results corresponding to each of the first nodes to generate query results for the small table data and the large table data.
- Embodiment 2 of a data query device of a distributed query system of the present application is in communication connection with at least one second data source; the distributed query system
- the first node includes multiple first nodes, and the first node includes first data configured using the distribution information of the second data source; the second data source includes multiple second nodes; specifically, it may include the following modules :
- the query request sending module 602 is configured to send data query requests including the data range to the multiple second nodes in parallel by the multiple first nodes;
- the query result generation module 603 is configured to connect the second data corresponding to the data query request sent by the plurality of second nodes with the first data, and generate a response to the first data and the first data. 2. Data query results.
- the query request sending module 602 includes:
- connection condition determination sub-module is used to determine the Join connection condition between the first data and the second data
- the query request sending submodule is configured to send the data query request including the data range to the multiple second nodes in parallel by the multiple first nodes according to the Join connection condition.
- a distribution information obtaining module configured to obtain distribution information of the second data in the second data source
- the data configuration module is configured to configure the first data in a plurality of the first nodes according to the distribution information of the second data.
- the data configuration module includes:
- the first identification generation sub-module is configured to calculate each of the distribution information to generate a first configuration identification for the first data
- a second identifier generation submodule configured to use the first configuration identifier and the Join connection condition to determine a second configuration identifier for the first node;
- a data configuration sub-module configured to configure the first data in the first node corresponding to the second configuration identifier according to the sequence of the second configuration identifier
- the distribution information includes at least one of a sharding strategy, a partitioning strategy, and a bucketing strategy.
- the first data is small table data
- the data configuration submodule is specifically configured to:
- each of the first sub-table data is configured in the target node.
- the data range includes a value range corresponding to each of the first sub-table data
- the second data is large table data
- the large table data includes For the second subtable data corresponding to each of the second nodes, the query request sending submodule is specifically configured to:
- the second sub-table data corresponding to the value range is obtained from the multiple second nodes in parallel.
- the first identifier generation submodule is specifically configured to:
- the first quantity information and the distribution information are used to calculate a third configuration identifier for the first data
- the second quantity information and the distribution information are used to calculate a fourth configuration identifier for the first data.
- the query result generation module 603 includes:
- the node connection sub-module is used to respectively connect the first sub-table data and the second sub-table data in each of the first nodes to generate a node connection result;
- the system connection sub-module is used to combine the node connection results corresponding to each of the first nodes to generate query results for the small table data and the large table data.
- the description is relatively simple, and for related parts, please refer to the part of the description of the method embodiment.
- the embodiment of the present application also provides a device, including:
- One or more processors are One or more processors.
- the embodiments of the present application also provide one or more machine-readable media on which instructions are stored, which when executed by one or more processors, cause the processors to execute the methods described in the embodiments of the present application.
- the embodiments of the embodiments of the present application may be provided as methods, devices, or computer program products. Therefore, the embodiments of the present application may adopt the form of a complete hardware embodiment, a complete software embodiment, or an embodiment combining software and hardware. Moreover, the embodiments of the present application may adopt the form of a computer program product implemented on one or more machine-readable media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer usable program code.
- machine-readable media including but not limited to disk storage, CD-ROM, optical storage, etc.
- These computer program instructions can also be stored in a computer-readable memory that can guide a computer or other programmable data processing terminal equipment to work in a specific manner, so that the instructions stored in the computer-readable memory produce an article of manufacture including the instruction device.
- the instruction device implements the functions specified in one process or multiple processes in the flowchart and/or one block or multiple blocks in the block diagram.
- These computer program instructions can also be loaded on a computer or other programmable data processing terminal equipment, so that a series of operation steps are executed on the computer or other programmable terminal equipment to produce computer-implemented processing, so that the computer or other programmable terminal equipment
- the instructions executed above provide steps for implementing functions specified in a flow or multiple flows in the flowchart and/or a block or multiple blocks in the block diagram.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种分布式查询系统的数据处理方法及装置,该方法包括获取第一数据源的第一数据,以及获取第二数据源中第二数据的分布信息(101),根据第二数据的分布信息,将所述第一数据配置于多个所述第一节点中(102),确定所述第一数据在所述第一节点中的数据范围(103),根据所述数据范围,并行从所述第二数据源的多个第二节点中提取所述第二数据(104),从而实现了根据第二数据的分布信息,将第一数据配置于各个第一节点中,使得第一数据在第一节点上的分布与第二数据在第二节点上的分布保持一致,避免了在系统中对第二数据进行分布配置,并且根据数据范围对第二数据进行提取,避免了进行数据的全量提取,提高了系统运行的效率。
Description
本申请要求2019年12月24日递交的申请号为201911351500.9、发明名称为“一种分布式查询系统的数据处理方法和装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
本申请涉及数据处理技术领域,特别是涉及一种分布式查询系统的数据处理方法和一种分布式查询系统的数据处理装置。
目前,跨数据库查询为不同环境下的在线异构数据源,提供及时的关联查询服务。不论数据库是MySQL、SQLServer、PostgreSQL还是Redis,不论数据库实例部署在哪个Region哪个环境,通过一条SQL就能实现这些数据库之间的关联查询。
其中,跨库查询服务中接入的数据源种类越来越多,当需要获取这些数据源进行Join时,如果以单个JDBC(Java DataBase Connectivity,Java数据库连接)去读取数据,将耗费大量时间。此外,在进行Join运算时,还需要对数据进行Shuffle操作,耗费大量网络开销,Join作业看起来会运行得非常缓慢,甚至可能因为数据量过大导致内存溢出。
发明内容
本申请实施例所要解决的技术问题是提供一种分布式查询系统的数据查询方法,以解决现有技术中数据处理过程中对大表数据进行全量读取和Shuffle导致的系统性能低下的问题。
相应的,本申请实施例还提供了一种分布式查询系统的数据查询装置,用以保证上述方法的实现及应用。
为了解决上述问题,本申请公开了一种分布式查询系统的数据处理方法,所述分布式查询系统包括多个第一节点,并与至少两个数据通信连接,所述方法包括:
获取第一数据源的第一数据,以及获取第二数据源中第二数据的分布信息;
根据所述第二数据的分布信息,将所述第一数据配置于多个所述第一节点中;
确定所述第一数据在所述第一节点中的数据范围;
根据所述数据范围,并行从所述第二数据源的多个第二节点中提取所述第二数据。
可选地,所述根据所述数据范围,并行从所述第二数据源的多个第二节点中提取所述第二数据,包括:
确定所述第一数据与所述第二数据之间的Join连接条件;
按照所述Join连接条件,并行从所述多个第二节点中,提取与所述数据范围对应的第二数据。
可选地,所述根据所述第二数据的分布信息,将所述第一数据配置于多个所述第一节点中,包括:
分别对各个所述分布信息进行计算,生成针对所述第一数据的第一配置标识;
分别采用所述第一配置标识与所述Join连接条件,确定针对所述第一节点的第二配置标识;
按照第二配置标识的序列,将所述第一数据分别配置于与所述第二配置标识对应的第一节点中;
其中,所述分布信息至少包括分片策略、分区策略以及分桶策略中的一种。
可选地,所述第一数据为小表数据,所述按照第二配置标识的序列,将所述第一数据分别配置于与所述第二配置标识对应的第一节点中,包括:
将所述小表数据拆分成与各个所述第二配置标识对应的第一子表数据;
从所述第一节点中,分别确定与各个所述第二配置标识对应的目标节点;
按照所述第二配置标识的序列,将各个所述第一子表数据配置于所述目标节点中。
可选地,所述数据范围包括各个所述第一子表数据对应的取值范围,所述第二数据为大表数据,所述大表数据包括与各个所述第二节点对应的第二子表数据,所述按照所述Join连接条件,并行从所述多个第二节点中,获取与所述数据范围对应的第二数据,包括:
采用所述Join连接条件,并行从所述多个第二节点中,获取与所述取值范围对应的第二子表数据。
可选地,所述分别对各个所述分布信息进行计算,生成针对所述第一数据的第一配置标识,包括:
获取所述第一节点的第一数量信息,以及所述第二节点的第二数量信息;
当所述第二数量信息小于或等于所述第一数量信息时,则采用所述第一数量信息与所述分布信息,计算针对所述第一数据的第三配置标识;
当所述第二数量信息大于所述第一数量信息时,则采用所述第二数量信息与所述分 布信息,计算针对所述第一数据的第四配置标识。
可选地,还包括:
分别对各个所述第一节点中的第一子表数据以及第二子表数据进行连接,生成节点连接结果;
将各个所述第一节点对应的节点连接结果进行组合,生成针对所述小表数据以及所述大表数据的查询结果。
本申请实施例还公开了一种分布式查询系统的数据查询方法,所述分布式查询系统与至少一个第二数据源进行通信连接;所述分布式查询系统中包括多个第一节点,所述第一节点中包括采用所述第二数据源的分布信息进行配置的第一数据;所述第二数据源包括多个第二节点;所述方法包括:
确定所述第一数据在所述第一节点中的数据范围;
多个所述第一节点将包含所述数据范围的数据查询请求,并行发送至所述多个第二节点;
将所述多个第二节点发送的与所述数据查询请求对应的第二数据,与所述第一数据进行连接,生成针对所述第一数据与所述第二数据的查询结果。
可选地,所述多个所述第一节点将包含所述数据范围的数据查询请求,并行发送至所述多个第二节点,包括:
确定所述第一数据与所述第二数据之间的Join连接条件;
多个所述第一节点按照所述Join连接条件,并行将包含所述数据范围的数据查询请求发送至所述多个第二节点。
可选地,还包括:
获取所述第二数据源中第二数据的分布信息;
根据所述第二数据的分布信息,将所述第一数据配置于多个所述第一节点中。
可选地,所述根据所述第二数据的分布信息,将所述第一数据配置于多个所述第一节点中,包括:
分别对各个所述分布信息进行计算,生成针对所述第一数据的第一配置标识;
分别采用所述第一配置标识与所述Join连接条件,确定针对所述第一节点的第二配置标识;
按照第二配置标识的序列,将所述第一数据分别配置于与所述第二配置标识对应的 第一节点中;
其中,所述分布信息至少包括分片策略、分区策略以及分桶策略中的一种。
可选地,所述第一数据为小表数据,所述按照第二配置标识的序列,将所述第一数据分别配置于与所述第二配置标识对应的第一节点中,包括:
将所述小表数据拆分成与各个所述第二配置标识对应的第一子表数据;
从所述第一节点中,分别确定与各个所述第二配置标识对应的目标节点;
按照所述第二配置标识的序列,将各个所述第一子表数据配置于所述目标节点中。
可选地,所述数据范围包括各个所述第一子表数据对应的取值范围,所述第二数据为大表数据,所述大表数据包括与各个所述第二节点对应的第二子表数据,所述多个所述第一节点按照所述Join连接条件,并行将包含所述数据范围的数据查询请求发送至所述多个第二节点,包括:
采用所述Join连接条件,并行从所述多个第二节点中,获取与所述取值范围对应的第二子表数据。
可选地,所述分别对各个所述分布信息进行计算,生成针对所述第一数据的第一配置标识,包括:
获取所述第一节点的第一数量信息,以及所述第二节点的第二数量信息;
当所述第二数量信息小于或等于所述第一数量信息时,则采用所述第一数量信息与所述分布信息,计算针对所述第一数据的第三配置标识;
当所述第二数量信息大于所述第一数量信息时,则采用所述第二数量信息与所述分布信息,计算针对所述第一数据的第四配置标识。
可选地,所述将所述第二节点发送的与所述数据查询请求对应的第二数据,与所述第一数据进行连接,生成针对所述第一数据与所述第二数据的查询结果,包括:
分别对各个所述第一节点中的第一子表数据以及第二子表数据进行连接,生成节点连接结果;
将各个所述第一节点对应的节点连接结果进行组合,生成针对所述小表数据以及所述大表数据的查询结果。
本申请实施例还公开了一种分布式查询系统的数据处理装置,所述分布式查询系统包括多个第一节点,并与至少两个数据通信连接,所述装置包括:
数据与信息获取模块,用于获取第一数据源的第一数据,以及获取第二数据源中第 二数据的分布信息;
数据配置模块,用于根据所述第二数据的分布信息,将所述第一数据配置于多个所述第一节点中;
数据范围确定模块,用于确定所述第一数据在所述第一节点中的数据范围;
数据提取模块,用于根据所述数据范围,并行从所述第二数据源的多个第二节点中提取所述第二数据。
可选地,所述数据提取模块包括:
连接条件确定子模块,用于确定所述第一数据与所述第二数据之间的Join连接条件;
数据提取子模块,用于按照所述Join连接条件,并行从所述多个第二节点中,提取与所述数据范围对应的第二数据。
可选地,所述数据配置模块包括:
第一标识生成子模块,用于分别对各个所述分布信息进行计算,生成针对所述第一数据的第一配置标识;
第二标识生成子模块,用于分别采用所述第一配置标识与所述Join连接条件,确定针对所述第一节点的第二配置标识;
数据配置子模块,用于按照第二配置标识的序列,将所述第一数据分别配置于与所述第二配置标识对应的第一节点中;
其中,所述分布信息至少包括分片策略、分区策略以及分桶策略中的一种。
可选地,所述第一数据为小表数据,所述数据配置子模块具体用于:
将所述小表数据拆分成与各个所述第二配置标识对应的第一子表数据;
从所述第一节点中,分别确定与各个所述第二配置标识对应的目标节点;
按照所述第二配置标识的序列,将各个所述第一子表数据配置于所述目标节点中。
可选地,所述数据范围包括各个所述第一子表数据对应的取值范围,所述第二数据为大表数据,所述大表数据包括与各个所述第二节点对应的第二子表数据,所述数据提取子模块具体用于:
采用所述Join连接条件,并行从所述多个第二节点中,获取与所述取值范围对应的第二子表数据。
可选地,所述第一标识生成子模块具体用于:
获取所述第一节点的第一数量信息,以及所述第二节点的第二数量信息;
当所述第二数量信息小于或等于所述第一数量信息时,则采用所述第一数量信息与 所述分布信息,计算针对所述第一数据的第三配置标识;
当所述第二数量信息大于所述第一数量信息时,则采用所述第二数量信息与所述分布信息,计算针对所述第一数据的第四配置标识。
可选地,还包括:
子表数据运算模块,用于分别对各个所述第一节点中的第一子表数据以及第二子表数据进行连接,生成节点连接结果;
连接结果组合模块,用于将各个所述第一节点对应的节点连接结果进行组合,生成针对所述小表数据以及所述大表数据的查询结果。
本申请实施例还公开了一种分布式查询系统的数据查询装置,所述分布式查询系统与至少一个第二数据源进行通信连接;所述分布式查询系统中包括多个第一节点,所述第一节点中包括采用所述第二数据源的分布信息进行配置的第一数据;所述第二数据源包括多个第二节点;所述装置包括:
数据范围确定模块,用于确定所述第一数据在所述第一节点中的数据范围;
查询请求发送模块,用于多个所述第一节点将包含所述数据范围的数据查询请求,并行发送至所述多个第二节点;
查询结果生成模块,用于将所述多个第二节点发送的与所述数据查询请求对应的第二数据,与所述第一数据进行连接,生成针对所述第一数据与所述第二数据的查询结果。
可选地,所述查询请求发送模块包括:
连接条件确定子模块,用于确定所述第一数据与所述第二数据之间的Join连接条件;
查询请求发送子模块,用于多个所述第一节点按照所述Join连接条件,并行将包含所述数据范围的数据查询请求发送至所述多个第二节点。
可选地,还包括:
分布信息获取模块,用于获取所述第二数据源中第二数据的分布信息;
数据配置模块,用于根据所述第二数据的分布信息,将所述第一数据配置于多个所述第一节点中。
可选地,所述数据配置模块包括:
第一标识生成子模块,用于分别对各个所述分布信息进行计算,生成针对所述第一数据的第一配置标识;
第二标识生成子模块,用于分别采用所述第一配置标识与所述Join连接条件,确定 针对所述第一节点的第二配置标识;
数据配置子模块,用于按照第二配置标识的序列,将所述第一数据分别配置于与所述第二配置标识对应的第一节点中;
其中,所述分布信息至少包括分片策略、分区策略以及分桶策略中的一种。
可选地,所述第一数据为小表数据,所述数据配置子模块具体用于:
将所述小表数据拆分成与各个所述第二配置标识对应的第一子表数据;
从所述第一节点中,分别确定与各个所述第二配置标识对应的目标节点;
按照所述第二配置标识的序列,将各个所述第一子表数据配置于所述目标节点中。
可选地,所述数据范围包括各个所述第一子表数据对应的取值范围,所述第二数据为大表数据,所述大表数据包括与各个所述第二节点对应的第二子表数据,所述查询请求发送子模块具体用于:
采用所述Join连接条件,并行从所述多个第二节点中,获取与所述取值范围对应的第二子表数据。
可选地,所述第一标识生成子模块具体用于:
获取所述第一节点的第一数量信息,以及所述第二节点的第二数量信息;
当所述第二数量信息小于或等于所述第一数量信息时,则采用所述第一数量信息与所述分布信息,计算针对所述第一数据的第三配置标识;
当所述第二数量信息大于所述第一数量信息时,则采用所述第二数量信息与所述分布信息,计算针对所述第一数据的第四配置标识。
可选地,所述查询结果生成模块包括:
节点连接子模块,用于分别对各个所述第一节点中的第一子表数据以及第二子表数据进行连接,生成节点连接结果;
系统连接子模块,用于将各个所述第一节点对应的节点连接结果进行组合,生成针对所述小表数据以及所述大表数据的查询结果。
本申请实施例还公开了一种装置,包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述装置执行如上所述的一个或多个的方法。
本申请实施例还公开了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行如上所述的一个或多个的方法。
本申请实施例包括以下优点:
在本申请实施例中,通过获取第一数据源的第一数据,以及获取第二数据源中第二数据的分布信息,根据第二数据的分布信息,将第一数据配置于各个第一节点中,确定第一数据在第一节点中的数据范围,根据数据范围,并行从多个第二节点中提取第二数据,从而实现了根据第二数据的分布信息,将第一数据配置于各个第一节点中,使得第一数据在第一节点上的分布与第二数据在第二节点上的分布保持一致,避免了在系统中对第二数据进行分布配置,并且根据数据范围对第二数据进行提取,避免了进行数据的全量提取,提高了系统运行的效率。
图1是本申请的一种分布式查询系统的数据处理方法实施例一的步骤流程图;
图2是本申请的一种分布式查询系统的数据处理方法实施例二的步骤流程图;
图3是本申请实施例中跨源数据处理的示意图;
图4是本申请的一种分布式查询系统的数据查询方法实施例三的步骤流程图;
图5是本申请的一种分布式查询系统的数据处理装置实施例一的结构框图;
图6是本申请的一种分布式查询系统的数据查询装置实施例二的结构框图。
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
参照图1,示出了本申请的一种分布式查询系统的数据处理方法实施例一的步骤流程图,所述分布式查询系统包括多个第一节点,并与至少两个数据通信连接。
随着大数据技术的发展,数据源种类越来越多,用户对数据的获取、分析、预测等需求日益增加。并且,用户往往需要对不同类型的数据、不同数据量的数据进行连接、组合以及分析等等,以根据数据的处理结果完成相应的业务服务。
作为一种示例,当用户拥有第一数据源实例以及第二数据源实例时,如第一数据源实例可以为RDS(Relational Database Service,关系型数据库服务)MySQL的数据库实例等,第二数据源实例可以为ADB(Analytic Data Base,分析型数据库)等,则前者可 以用于支撑用户的在线业务系统,可以为单机版本,存储于第一数据源中的第一数据的数量不大;而后者可以用于离线决策分析,第二数据源可以为分布式数据库,需要部署在多台机器上,从而存储大量的数据,并且,在ADB上的数据通常以分片、分区以及分桶等方式分散于各第二节点上。则在用户需要将离线和在线数据需要进行关联时,可以通过分布式查询系统进行实现。
具体的,分布式查询系统(下述查询系统)可以包括多个第一节点(Node1、Node2...NodeN),N可以为分布式查询系统上节点的数量,查询系统可以通过JDBC、ODBC(Open Database Connectivity,开放数据库连接)等方式与至少一个第一数据源以及至少一个第二数据域进行通信连接。
查询系统可以通过单个JDBC(或ODBC)与第一数据源、第二数据源进行通信连接,读取第一数据源上的第一数据,以及第二数据源上的第二数据。接着查询系统对第一数据与第二数据进行Shuffle操作,使得相同的Join Key的数据分布在同一个计算节点上,然后每个计算节点运行单机的Join算法,如散列连接Hash Join、排序合并连接Sort Merge Join等等,并产生Join结果。然而,在该跨源数据处理过程中,第二数据的数据量较大,查询系统通过单个JDBC连接读取第二数据耗时长,而读取数据量较小的第一数据的任务早已完成,并且,查询系统还需要对第二数据进行Shuffle操作,网络开销巨大,进一步增加了数据处理的时长,大大降低了数据处理的效率。因此,通过本申请实施例中分布式查询系统的数据处理方法可以有效解决上述问题,具体可以包括如下步骤:
步骤101,获取第一数据源的第一数据,以及获取第二数据源中第二数据的分布信息;
在本申请实施例中,查询系统可以从第一数据源中获取第一数据,以及获取第二数据源中第二数据的分布信息。
在具体实现中,第一数据可以为小表数据(下述小表),或者某个查询中间结果,则查询系统可以从第一数据源中获取第一数据。第二数据可以为大表数据(下述大表),大表可以以特定分布方式分布于第二数据源的多个第二节点中,如可以按照水平分片、分桶以及分区等当时进行分布,从而大表可以分布在第二数据源中的多个机器上(Server1、Server2...ServerM),M可以为第二数据源的机器数量。当第二数据在第二数据源中分布完毕后,可以得到相应的分布信息,其中,分布信息可以为分片策略、分桶策略以及分区策略中的至少一种。
步骤102,根据所述第二数据的分布信息,将所述第一数据配置于多个所述第一节 点中;
在具体实现中,查询系统获取了大表的分布信息后,可以根据该分布信息,生成针对小表的Shuffle策略,并采用该Shuffle策略将小表配置于查询系统的多个第一节点中,从而实现了根据大表在第二数据源中的分布方式,对小表进行Shuffle操作,使得小表在查询系统的分布方式与大表在第二数据源中的分布方式保持一致,进而避免了查询系统在获取大表的过程中,对大表进行Shuffle操作,降低了数据处理的时长,提高了数据处理效率。
步骤103,确定所述第一数据在所述第一节点中的数据范围;
在具体实现中,采用大表的分布信息将小表配置于各第一节点后,各个第一节点可以获取本地中小表的数据范围。其中,该数据范围可以为节点中小表的数据列取值范围,和/或,数据行取值范围等等。
步骤104,根据所述数据范围,并行从所述第二数据源的多个第二节点中提取所述第二数据。
在具体实现中,查询系统中各个第一节点,可以根据数据范围,生成一个针对大表的过滤条件,然后各个节点依据该过滤条件,并行从第二数据源中的多个第二节点中提取大表的数据。
具体的,由于小表的数据已经读取到了查询系统中,并且按照大表在第二数据源中的分布方式,在查询系统中进行了Shuffle操作。因此,当小表的数据配置在查询系统的节点一,大表的数据也配置在第二数据源的机器一,从而各个第一节点可以通过过滤条件,从对应的第二节点中读取与该过滤条件对应的大表的数据,一方面避免了在数据处理过程中,对大表的数据进行Shuffle操作,进一步降低了数据处理的时长,提高了数据处理效率。
在本申请实施例中,通过获取第一数据源的第一数据,以及获取第二数据源中第二数据的分布信息,根据第二数据的分布信息,将第一数据配置于各个第一节点中,确定第一数据在第一节点中的数据范围,根据数据范围,并行从多个第二节点中提取第二数据,从而实现了根据第二数据的分布信息,将第一数据配置于各个第一节点中,使得第一数据在第一节点上的分布与第二数据在第二节点上的分布保持一致,避免了在系统中对第二数据进行分布配置,在数据处理过程中,大大地缓解了数据倾斜的情况,并且根据数据范围对第二数据进行提取,避免了进行数据的全量提取,提高了系统运行的效率。
参照图2,示出了本申请的一种分布式查询系统的数据处理方法实施例二的步骤流 程图,并与至少两个数据通信连接,具体可以包括如下步骤:
步骤201,获取第一数据源的第一数据,以及获取第二数据源中第二数据的分布信息;
在具体实现中,查询系统可以从第一数据源S1获取小表数据T1或某个中间查询结果,以及获取第二数据源S2中大表数据T2的分布信息,其中,分布信息可以包括分片策略、分区策略以及分桶策略中的至少一种。
步骤202,根据所述第二数据的分布信息,将所述第一数据配置于多个所述第一节点中;
在具体实现中,查询系统获取了大表的分布信息后,可以根据该分布信息,生成针对小表的Shuffle策略,并采用该Shuffle策略将小表配置于查询系统的多个第一节点中,从而实现了根据大表在第二数据源中的分布方式,对小表进行Shuffle操作,使得小表在查询系统的分布方式与大表在第二数据源中的分布方式保持一致,进而避免了查询系统在获取大表的过程中,对大表进行Shuffle操作,降低了数据处理的时长,提高了数据处理效率。
在本申请实施例的一种可选实施例中,步骤202可以包括如下子步骤:
子步骤S11,分别对各个所述分布信息进行计算,生成针对所述第一数据的第一配置标识;
在具体实现中,当用户进行数据处理时,可以在查询系统中输入Join连接条件,该连接条件可以为T1.C1=T2.C2。其中,T1表示第一数据源中的小表,或某个中间查询结果,T2表示第二数据源中的大表,C1可以为第二配置标识,如连接键Join Key,C2可以为第一配置标识,如分片策略、分区策略以及分桶策略等等。
当查询系统得到大表的分布信息后,可以对分布信息进行计算,生成小表的第一配置标识。具体的,查询系统可以获取所述第一节点的第一数量信息,以及所述第二节点的第二数量信息;当所述第二数量信息小于或等于所述第一数量信息时,则采用所述第一数量信息与所述分布信息,计算针对所述第一数据的第三配置标识;当所述第二数量信息大于所述第一数量信息时,则采用所述第二数量信息与所述分布信息,计算针对所述第一数据的第四配置标识。
在本申请实施例的一种示例中,查询系统中第一节点的数量为N,第二数据源中第二节点的数量为M,则查询系统得到大表的分布信息后,可以第一节点与第二节点之间的数量关系,采用分布信息进行第一配置标识的计算。具体的,可以将第一数量信息N 与第二数量信息M进行取模运算,当第一节点的数量大于第二节点的数量时,则取M,接着对大表的某一列的数据进行哈希运算,然后进行取模运算,即Hash(C2)Mod M;当第一节点的数量小于第二节点的数量时,则取N,接着对大表的某一列的数据进行哈希运算,然后进行取模运算,即Hash(C2)Mod N,从而得到针对小表的配置标识。
需要说明的是,本申请实施例包括但不限于上述示例,可以理解的是,在本发明实施例的思想指导下,本领域技术人员还可以采用范围运算Range对配置标识进行运算,本申请对此不作限制。
子步骤S12,分别采用所述第一配置标识与所述Join连接条件,确定针对所述第一节点的第二配置标识;
在具体实现中,由于Join连接条件为T1.C1=T2.C2,则用户可以在输入的查询语句中写好Join Key,即C1,然后采用第一配置标识C2与Join连接条件,确定针对第一节点的第二配置标识。
具体的,根据Join连接条件,当查询系统中第一节点的第一数量信息N大于第二数据源中第二节点的第二数量信息M时,Hash(C2)Mod M,则Hash(C1)Mod M;当查询系统中第一节点的第一数量信息N小于第二数据源中第二节点的第二数量信息M时,Hash(C2)Mod N,则Hash(C1)Mod N,从而使得第一数据在查询系统中的分布与第二数据在第二数据源的分布方式保持一致。
子步骤S13,按照第二配置标识的序列,将所述第一数据分别配置于与所述第二配置标识对应的第一节点中。
在具体实现中,查询系统可以按照第二配置标识C1的序列,将小表或某个中间查询结果分别配置于与C1对应的节点中,从而使得第一数据按照C1列的值重新分布于查询系统的各个节点中,使得第一数据的分布与第二在第二数据源中的分布保持一致。
具体的,查询系统可以将小表数据拆分成与各个第二配置标识对应的第一子表数据,接着从第一节点中,分别确定与各个第二配置标识对应的目标节点,然后按照第二配置标识的序列,将各个第一子表数据配置于目标节点中。
步骤203,确定所述第一数据在所述第一节点中的数据范围;
在具体实现中,采用大表的分布信息将小表,或中间查询结果配置于各第一节点后,各个第一节点可以获取本地中小表或中间查询结果的数据范围。其中,该数据范围可以为节点中小表或中间查询结果的数据列取值范围,和/或,数据行取值范围等等。
步骤204,根据所述数据范围,并行从所述第二数据源的多个第二节点中提取所述 第二数据;
在具体实现中,查询系统可以根据第一数据与第二数据之间的Join连接条件,接着按照该Join连接条件,并行从所述多个第二节点中,提取与所述数据范围对应的第二数据。
具体的,由于小表或中间查询结果的数据已经读取到了查询系统中,并且按照大表在第二数据源中的分布方式,在查询系统中进行了Shuffle操作。因此,当小表或中间查询结果的数据配置在查询系统的节点一,大表的数据也配置在第二数据源的机器一。
其中,数据范围可以包括各个所述第一子表数据对应的取值范围,大表采用了分片、分区以及分桶等方式,生成了多个第二子表数据,并分布于第二数据源的多个第二节点中,则查询系统可以采用Join连接条件,并行从多个与第一节点对应的第二节点中,提取与取值范围对应的第二子表数据,从而各个第一节点可以通过过滤条件,从对应的第二节点中读取与该过滤条件对应的大表的数据,一方面避免了在数据处理过程中,对大表的数据进行Shuffle操作,进一步降低了数据处理的时长,提高了数据处理效率,另一方面避免了对第二数据进行全量提取,提高了提取效率。
步骤205,将所述第一数据与所述第二数据进行连接,生成针对所述第一数据与所述第二数据的连接结果。
在本申请实施例中,查询系统中获取了第一数据与第二数据的第一节点,可以对第一数据与第二数据进行Join本地运算,从而生成针对第一数据与第二数据的连接结果。
在具体实现中,当第一数据为小表时,查询系统可以分别对各个第一节点中的第一子表数据以及第二子表数据进行连接,生成节点连接结果,然后将各个第一节点对应的节点连接结果进行组合,生成针对小表数据以及大表数据的查询结果。需要说明的是,当第一数据为中间查询结果时,其Join运算过程与小表的Join运算过程相同,在此不再赘述。
在本申请实施例的一种示例中,如图3所示,示出了本申请实施例中跨源数据处理的示意图,查询系统包括N个节点(Node1、Node2...NodeN),第二数据源包括多个机器Server。其中,T1表可以为来自第一数据源中的小表数据,或,某个查询中间结果(下述以小表为例进行示例性说明),T2表可以按照水平分片方式进行了分片(还可以为分区、分桶等),如Hash或Range等,从而T2表数据分布在第二数据源的多个机器上,Server1、Server2...ServerM,M为第二数据源的机器数量。此外,在本实施例中,考虑Join Key与T2表数据中的分片策略相同的场景,且Join条件为Equi-Join,即Join 连接条件为T1.C1=T2.C2。
首先,查询系统可以通过JDBC、ODBC等方式从第一数据源中获取T1表,并且从第二数据源中获取T2表的Sharding方式(即分布信息)。接着根据T2表的Sharding方式,生成T1表在查询系统中的Shuffle策略,然后依据该Shuffle策略将T1表的数据按C1列的值重新分布到查询系统的N个节点上,使得C1列数据的分布与C2列在第二数据源中的分布保持一致。例如:C2=10的数据分布在第二数据源的Server1上,则C1=10的数据也应该分布在跨源查询引擎的Node1节点上。
接着,查询系统上各节点Node i可以根据本地的C1列取值范围,生成一个C2列的过滤条件,然后用此过滤条件从第二数据源提取T2表的数据。具体的,配置有T1表数据的节点Node i可以并行发起M个查询请求到第二数据源,从而第二数据源中收到查询请求的机器Server可以返回与该过滤条件对应的表数据,每个节点Node_i仅获取了T2表的一部分数据,所有节点获取的数据组合起来则为T2完整的数据,从而一方面避免了在数据处理过程中,对大表的数据进行Shuffle操作,进一步降低了数据处理的时长,提高了数据处理效率,另一方面避免了对第二数据进行全量提取,提高了提取效率。
然后查询系统上的每个节点Node_i根据本地的部分T1表数据和部分T2表数据进行本地Join运算,如Hash Join、Sort Merge Join等算法。并且,所有节点并行地执行本地Join。由于T1表的Shuffle策略和T2表的Sharding策略一致,两表Join Key相同的数据只会分布在同一个节点上,因此只需要本地Join即可,无需对大表T2进行Shuffle。当各个节点Join运算完毕后,可以将所有节点的本地Join结果组合起来,生成完整的Join结果,从而在I数据处理过程中,大大地缓解了数据倾斜的情况,并且通过过滤条件对第二数据进行提取,避免了进行数据的全量提取,提高了系统运行的效率。
在本申请实施例中,通过获取第一数据源的第一数据,以及获取第二数据源中第二数据的分布信息,根据第二数据的分布信息,将第一数据配置于各个第一节点中,确定第一数据在第一节点中的数据范围,根据数据范围,并行从多个第二节点中提取第二数据,从而实现了根据第二数据的分布信息,将第一数据配置于各个第一节点中,使得第一数据在第一节点上的分布与第二数据在第二节点上的分布保持一致,避免了在系统中对第二数据进行分布配置,并且根据数据范围对第二数据进行提取,避免了进行数据的全量提取,提高了系统运行的效率。
参照图4,示出了本申请的一种分布式查询系统的数据查询方法实施例三的步骤流 程图,所述分布式查询系统与至少一个第二数据源进行通信连接;所述分布式查询系统中包括多个第一节点,所述第一节点中包括采用所述第二数据源的分布信息进行配置的第一数据;所述第二数据源包括多个第二节点;具体可以包括如下步骤:
步骤401,确定所述第一数据在所述第一节点中的数据范围;
在本申请实施例中,分布式查询系统包括多个第一节点,在第一节点中包括采用了第二数据源的分布信息进行配置的第一数据。当第一节点中未配置第一数据时,可以获取第二数据源中第二数据的分布信息,接着第二数据源中第二数据的分布信息,将第一数据配置于多个所述第一节点中。其中,第一数据可以为小表数据,或中间查询结构,第二数据可以为大表数据,以下为了方便描述与理解,以小表和大表为例进行示例性说明。
在本申请实施例的一种示例中,当第一节点中已经存储了采用第二数据源的分布信息进行配置的小表时,则各个第一节点可以确定本地的小表的数据范围,并生成针对大表的过滤条件。
在本申请实施例的另一种示例中,当第一节点中已经存储了小表,以及第二数据源的分布信息时,则可以采用分布信息生成针对小表的Shuffle策略,然后根据该Shuffle策略将小表配置于多个第一节点中。
在本申请实施例的另一种示例中,当第一节点中未存储小表时,则查询系统可以先获取第二数据源中大表的分布信息,然后分别对各个所述分布信息进行计算,生成针对所述小表的第一配置标识,接着分别采用所述第一配置标识与所述Join连接条件,确定针对所述第一节点的第二配置标识,然后按照第二配置标识的序列,将所述小表分别配置于与所述第二配置标识对应的第一节点中;其中,所述分布信息至少包括分片策略、分区策略以及分桶策略中的一种。
在具体实现中,查询系统可以获取所述第一节点的第一数量信息,以及所述第二节点的第二数量信息;当所述第二数量信息小于或等于所述第一数量信息时,则采用所述第一数量信息与所述分布信息,计算针对所述第一数据的第三配置标识;当所述第二数量信息大于所述第一数量信息时,则采用所述第二数量信息与所述分布信息,计算针对所述第一数据的第四配置标识。
具体的,查询系统可以将所述小表数据拆分成与各个所述第二配置标识对应的第一子表数据;从所述第一节点中,分别确定与各个所述第二配置标识对应的目标节点;按照所述第二配置标识的序列,将各个所述第一子表数据配置于所述目标节点中。
当将第一数据配置于多个第一节点后,各个第一节点可以确定本地的第一数据的数据范围,并生成针对大表的过滤条件。
步骤402,多个所述第一节点将包含所述数据范围的数据查询请求,并行发送至所述多个第二节点;
在具体实现中,采用大表的分布信息将第一数据配置于第一节点之后,可以确定小表与大表之间的Join连接条件,然后多个第一节点按照Join连接条件,并行将包含数据范围的数据查询请求发送至多个第二节点,以获取第二节点中存储的大表。
具体的,数据范围包括各个第一子表数据对应的取值范围,第二数据为大表数据,大表数据包括与各个第二节点对应的第二子表数据,则多个第一节点可以采用所述Join连接条件,并行从所述多个第二节点中,获取与所述取值范围对应的第二子表数据,从而避免查询系统对所有第二节点进行扫描,或全量数据的扫描,大大提供了数据获取的效率。
步骤403,将所述多个第二节点发送的与所述数据查询请求对应的第二数据,与所述第一数据进行连接,生成针对所述第一数据与所述第二数据的查询结果。
在本申请实施例中,查询系统中获取了第一数据与第二数据的第一节点,可以对第一数据与第二数据进行Join本地运算,从而生成针对第一数据与第二数据的连接结果。
在具体实现中,查询系统可以分别对各个所述第一节点中的第一子表数据以及第二子表数据进行连接,生成节点连接结果,然后将各个所述第一节点对应的节点连接结果进行组合,生成针对所述小表数据以及所述大表数据的查询结果。
在本申请实施例中,查询系统通过确定所述第一数据在所述第一节点中的数据范围,接着多个所述第一节点将包含所述数据范围的数据查询请求,并行发送至所述多个第二节点;将所述多个第二节点发送的与所述数据查询请求对应的第二数据,与所述第一数据进行连接,生成针对所述第一数据与所述第二数据的查询结果,避免了在数据处理过程中,系统对第二数据进行分布配置,大大地缓解了网络开销,并且根据数据范围对第二数据进行提取,避免了进行数据的全量提取,提高了系统运行的效率。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。
参照图5,示出了本申请的一种分布式查询系统的数据处理装置实施例一的结构框图,所述分布式查询系统包括多个第一节点,并与至少两个数据源进行通信连接,具体可以包括如下模块:
数据与信息获取模块501,用于获取第一数据源的第一数据,以及获取第二数据源中第二数据的分布信息;
数据配置模块502,用于根据所述第二数据的分布信息,将所述第一数据配置于多个所述第一节点中;
数据范围确定模块503,用于确定所述第一数据在所述第一节点中的数据范围;
数据提取模块504,用于根据所述数据范围,并行从所述第二数据源的多个第二节点中提取所述第二数据。
在本申请实施例的一种可选实施例中,所述数据提取模块504包括:
连接条件确定子模块,用于确定所述第一数据与所述第二数据之间的Join连接条件;
数据提取子模块,用于按照所述Join连接条件,并行从所述多个第二节点中,提取与所述数据范围对应的第二数据。
在本申请实施例的一种可选实施例中,所述数据配置模块502包括:
第一标识生成子模块,用于分别对各个所述分布信息进行计算,生成针对所述第一数据的第一配置标识;
第二标识生成子模块,用于分别采用所述第一配置标识与所述Join连接条件,确定针对所述第一节点的第二配置标识;
数据配置子模块,用于按照第二配置标识的序列,将所述第一数据分别配置于与所述第二配置标识对应的第一节点中;
其中,所述分布信息至少包括分片策略、分区策略以及分桶策略中的一种。
在本申请实施例的一种可选实施例中,所述第一数据为小表数据,所述数据配置子模块具体用于:
将所述小表数据拆分成与各个所述第二配置标识对应的第一子表数据;
从所述第一节点中,分别确定与各个所述第二配置标识对应的目标节点;
按照所述第二配置标识的序列,将各个所述第一子表数据配置于所述目标节点中。
在本申请实施例的一种可选实施例中,所述数据范围包括各个所述第一子表数据对应的取值范围,所述第二数据为大表数据,所述大表数据包括与各个所述第二节点对应 的第二子表数据,所述数据提取子模块具体用于:
采用所述Join连接条件,并行从所述多个第二节点中,获取与所述取值范围对应的第二子表数据。
在本申请实施例的一种可选实施例中,所述第一标识生成子模块具体用于:
获取所述第一节点的第一数量信息,以及所述第二节点的第二数量信息;
当所述第二数量信息小于或等于所述第一数量信息时,则采用所述第一数量信息与所述分布信息,计算针对所述第一数据的第三配置标识;
当所述第二数量信息大于所述第一数量信息时,则采用所述第二数量信息与所述分布信息,计算针对所述第一数据的第四配置标识。
在本申请实施例的一种可选实施例中,还包括:
子表数据运算模块,用于分别对各个所述第一节点中的第一子表数据以及第二子表数据进行连接,生成节点连接结果;
连接结果组合模块,用于将各个所述第一节点对应的节点连接结果进行组合,生成针对所述小表数据以及所述大表数据的查询结果。
参照图6,示出了本申请的一种分布式查询系统的数据查询装置实施例二的结构框图,所述分布式查询系统与至少一个第二数据源进行通信连接;所述分布式查询系统中包括多个第一节点,所述第一节点中包括采用所述第二数据源的分布信息进行配置的第一数据;所述第二数据源包括多个第二节点;具体可以包括如下模块:
数据范围确定模块601,用于确定所述第一数据在所述第一节点中的数据范围;
查询请求发送模块602,用于多个所述第一节点将包含所述数据范围的数据查询请求,并行发送至所述多个第二节点;
查询结果生成模块603,用于将所述多个第二节点发送的与所述数据查询请求对应的第二数据,与所述第一数据进行连接,生成针对所述第一数据与所述第二数据的查询结果。
在本申请实施例的一种可选实施例中,所述查询请求发送模块602包括:
连接条件确定子模块,用于确定所述第一数据与所述第二数据之间的Join连接条件;
查询请求发送子模块,用于多个所述第一节点按照所述Join连接条件,并行将包含所述数据范围的数据查询请求发送至所述多个第二节点。
在本申请实施例的一种可选实施例中,还包括:
分布信息获取模块,用于获取所述第二数据源中第二数据的分布信息;
数据配置模块,用于根据所述第二数据的分布信息,将所述第一数据配置于多个所述第一节点中。
在本申请实施例的一种可选实施例中,所述数据配置模块包括:
第一标识生成子模块,用于分别对各个所述分布信息进行计算,生成针对所述第一数据的第一配置标识;
第二标识生成子模块,用于分别采用所述第一配置标识与所述Join连接条件,确定针对所述第一节点的第二配置标识;
数据配置子模块,用于按照第二配置标识的序列,将所述第一数据分别配置于与所述第二配置标识对应的第一节点中;
其中,所述分布信息至少包括分片策略、分区策略以及分桶策略中的一种。
在本申请实施例的一种可选实施例中,所述第一数据为小表数据,所述数据配置子模块具体用于:
将所述小表数据拆分成与各个所述第二配置标识对应的第一子表数据;
从所述第一节点中,分别确定与各个所述第二配置标识对应的目标节点;
按照所述第二配置标识的序列,将各个所述第一子表数据配置于所述目标节点中。
在本申请实施例的一种可选实施例中,所述数据范围包括各个所述第一子表数据对应的取值范围,所述第二数据为大表数据,所述大表数据包括与各个所述第二节点对应的第二子表数据,所述查询请求发送子模块具体用于:
采用所述Join连接条件,并行从所述多个第二节点中,获取与所述取值范围对应的第二子表数据。
在本申请实施例的一种可选实施例中,所述第一标识生成子模块具体用于:
获取所述第一节点的第一数量信息,以及所述第二节点的第二数量信息;
当所述第二数量信息小于或等于所述第一数量信息时,则采用所述第一数量信息与所述分布信息,计算针对所述第一数据的第三配置标识;
当所述第二数量信息大于所述第一数量信息时,则采用所述第二数量信息与所述分布信息,计算针对所述第一数据的第四配置标识。
在本申请实施例的一种可选实施例中,所述查询结果生成模块603包括:
节点连接子模块,用于分别对各个所述第一节点中的第一子表数据以及第二子表数据进行连接,生成节点连接结果;
系统连接子模块,用于将各个所述第一节点对应的节点连接结果进行组合,生成针 对所述小表数据以及所述大表数据的查询结果。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本申请实施例还提供了一种装置,包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述装置执行本申请实施例所述的方法。
本申请实施例还提供了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行本申请实施例所述的方法。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的机器可读介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程 和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种分布式查询系统的数据处理方法和一种分布式查询系统的数据处理装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (19)
- 一种分布式查询系统的数据处理方法,其特征在于,所述分布式查询系统包括多个第一节点,并与至少两个数据源通信连接,所述方法包括:获取第一数据源的第一数据,以及获取第二数据源中第二数据的分布信息;根据所述第二数据的分布信息,将所述第一数据配置于多个所述第一节点中;确定所述第一数据在所述第一节点中的数据范围;根据所述数据范围,并行从所述第二数据源的多个第二节点中提取所述第二数据。
- 根据权利要求1所述的方法,其特征在于,所述根据所述数据范围,并行从所述第二数据源的多个第二节点中提取所述第二数据,包括:确定所述第一数据与所述第二数据之间的Join连接条件;按照所述Join连接条件,并行从所述多个第二节点中,提取与所述数据范围对应的第二数据。
- 根据权利要求2所述的方法,其特征在于,所述根据所述第二数据的分布信息,将所述第一数据配置于多个所述第一节点中,包括:分别对各个所述分布信息进行计算,生成针对所述第一数据的第一配置标识;分别采用所述第一配置标识与所述Join连接条件,确定针对所述第一节点的第二配置标识;按照第二配置标识的序列,将所述第一数据分别配置于与所述第二配置标识对应的第一节点中;其中,所述分布信息至少包括分片策略、分区策略以及分桶策略中的一种。
- 根据权利要求3所述的方法,其特征在于,所述第一数据为小表数据,所述按照第二配置标识的序列,将所述第一数据分别配置于与所述第二配置标识对应的第一节点中,包括:将所述小表数据拆分成与各个所述第二配置标识对应的第一子表数据;从所述第一节点中,分别确定与各个所述第二配置标识对应的目标节点;按照所述第二配置标识的序列,将各个所述第一子表数据配置于所述目标节点中。
- 根据权利要求4所述的方法,其特征在于,所述数据范围包括各个所述第一子表数据对应的取值范围,所述第二数据为大表数据,所述大表数据包括与各个所述第二节点对应的第二子表数据,所述按照所述Join连接条件,并行从所述多个第二节点中,获取与所述数据范围对应的第二数据,包括:采用所述Join连接条件,并行从所述多个第二节点中,获取与所述取值范围对应的第二子表数据。
- 根据权利要求3所述的方法,其特征在于,所述分别对各个所述分布信息进行计算,生成针对所述第一数据的第一配置标识,包括:获取所述第一节点的第一数量信息,以及所述第二节点的第二数量信息;当所述第二数量信息小于或等于所述第一数量信息时,则采用所述第一数量信息与所述分布信息,计算针对所述第一数据的第三配置标识;当所述第二数量信息大于所述第一数量信息时,则采用所述第二数量信息与所述分布信息,计算针对所述第一数据的第四配置标识。
- 根据权利要求5所述的方法,其特征在于,还包括:分别对各个所述第一节点中的第一子表数据以及第二子表数据进行连接,生成节点连接结果;将各个所述第一节点对应的节点连接结果进行组合,生成针对所述小表数据以及所述大表数据的查询结果。
- 一种分布式查询系统的数据查询方法,其特征在于,所述分布式查询系统与至少一个第二数据源进行通信连接;所述分布式查询系统中包括多个第一节点,所述第一节点中包括采用所述第二数据源的分布信息进行配置的第一数据;所述第二数据源包括多个第二节点;所述方法包括:确定所述第一数据在所述第一节点中的数据范围;多个所述第一节点将包含所述数据范围的数据查询请求,并行发送至所述多个第二节点;将所述多个第二节点发送的与所述数据查询请求对应的第二数据,与所述第一数据进行连接,生成针对所述第一数据与所述第二数据的查询结果。
- 根据权利要求8所述的方法,其特征在于,所述多个所述第一节点将包含所述数据范围的数据查询请求,并行发送至所述多个第二节点,包括:确定所述第一数据与所述第二数据之间的Join连接条件;多个所述第一节点按照所述Join连接条件,并行将包含所述数据范围的数据查询请求发送至所述多个第二节点。
- 根据权利要求9所述的方法,其特征在于,还包括:获取所述第二数据源中第二数据的分布信息;根据所述第二数据的分布信息,将所述第一数据配置于多个所述第一节点中。
- 根据权利要求10所述的方法,其特征在于,所述根据所述第二数据的分布信息,将所述第一数据配置于多个所述第一节点中,包括:分别对各个所述分布信息进行计算,生成针对所述第一数据的第一配置标识;分别采用所述第一配置标识与所述Join连接条件,确定针对所述第一节点的第二配置标识;按照第二配置标识的序列,将所述第一数据分别配置于与所述第二配置标识对应的第一节点中;其中,所述分布信息至少包括分片策略、分区策略以及分桶策略中的一种。
- 根据权利要求11所述的方法,其特征在于,所述第一数据为小表数据,所述按照第二配置标识的序列,将所述第一数据分别配置于与所述第二配置标识对应的第一节点中,包括:将所述小表数据拆分成与各个所述第二配置标识对应的第一子表数据;从所述第一节点中,分别确定与各个所述第二配置标识对应的目标节点;按照所述第二配置标识的序列,将各个所述第一子表数据配置于所述目标节点中。
- 根据权利要求12所述的方法,其特征在于,所述数据范围包括各个所述第一子表数据对应的取值范围,所述第二数据为大表数据,所述大表数据包括与各个所述第二节点对应的第二子表数据,所述多个所述第一节点按照所述Join连接条件,并行将包含所述数据范围的数据查询请求发送至所述多个第二节点,包括:采用所述Join连接条件,并行从所述多个第二节点中,获取与所述取值范围对应的第二子表数据。
- 根据权利要求11所述的方法,其特征在于,所述分别对各个所述分布信息进行计算,生成针对所述第一数据的第一配置标识,包括:获取所述第一节点的第一数量信息,以及所述第二节点的第二数量信息;当所述第二数量信息小于或等于所述第一数量信息时,则采用所述第一数量信息与所述分布信息,计算针对所述第一数据的第三配置标识;当所述第二数量信息大于所述第一数量信息时,则采用所述第二数量信息与所述分布信息,计算针对所述第一数据的第四配置标识。
- 根据权利要求13所述的方法,其特征在于,所述将所述第二节点发送的与所述数据查询请求对应的第二数据,与所述第一数据进行连接,生成针对所述第一数据与所 述第二数据的查询结果,包括:分别对各个所述第一节点中的第一子表数据以及第二子表数据进行连接,生成节点连接结果;将各个所述第一节点对应的节点连接结果进行组合,生成针对所述小表数据以及所述大表数据的查询结果。
- 一种分布式查询系统的数据处理装置,其特征在于,所述分布式查询系统包括多个第一节点,并与至少两个数据源通信连接,所述装置包括:数据与信息获取模块,用于获取第一数据源的第一数据,以及获取第二数据源中第二数据的分布信息;数据配置模块,用于根据所述第二数据的分布信息,将所述第一数据配置于多个所述第一节点中;数据范围确定模块,用于确定所述第一数据在所述第一节点中的数据范围;数据提取模块,用于根据所述数据范围,并行从所述第二数据源的多个第二节点中提取所述第二数据。
- 一种分布式查询系统的数据查询装置,其特征在于,所述分布式查询系统与至少一个第二数据源进行通信连接;所述分布式查询系统中包括多个第一节点,所述第一节点中包括采用所述第二数据源的分布信息进行配置的第一数据;所述第二数据源包括多个第二节点;所述装置包括:数据范围确定模块,用于确定所述第一数据在所述第一节点中的数据范围;查询请求发送模块,用于多个所述第一节点将包含所述数据范围的数据查询请求,并行发送至所述多个第二节点;查询结果生成模块,用于将所述多个第二节点发送的与所述数据查询请求对应的第二数据,与所述第一数据进行连接,生成针对所述第一数据与所述第二数据的查询结果。
- 一种分布式查询系统的数据处理装置,其特征在于,包括:一个或多个处理器;和其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述装置执行如权利要求1-7或8-15所述的一个或多个的方法。
- 一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行如权利要求1-7或8-15所述的一个或多个的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911351500.9A CN113032446B (zh) | 2019-12-24 | 2019-12-24 | 一种分布式查询系统的数据处理方法和装置 |
CN201911351500.9 | 2019-12-24 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021129498A1 true WO2021129498A1 (zh) | 2021-07-01 |
Family
ID=76452268
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2020/137073 WO2021129498A1 (zh) | 2019-12-24 | 2020-12-17 | 一种分布式查询系统的数据处理方法和装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113032446B (zh) |
WO (1) | WO2021129498A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113590322A (zh) * | 2021-07-30 | 2021-11-02 | 北京沃东天骏信息技术有限公司 | 一种数据处理方法和装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120317093A1 (en) * | 2011-06-07 | 2012-12-13 | Microsoft Corporation | Performing parallel joins on distributed database data |
CN104731951A (zh) * | 2015-03-31 | 2015-06-24 | 北京奇艺世纪科技有限公司 | 一种数据查询方法及装置 |
CN109165262A (zh) * | 2018-10-16 | 2019-01-08 | 成都索贝数码科技股份有限公司 | 一种关系型大表的分片集群系统及其分片方法 |
CN110019231A (zh) * | 2017-12-26 | 2019-07-16 | 中国移动通信集团山东有限公司 | 一种并行数据库动态关联的方法及节点 |
CN110059103A (zh) * | 2019-04-28 | 2019-07-26 | 南京大学 | 一种跨平台统一的大数据sql查询方法 |
CN110162544A (zh) * | 2019-05-30 | 2019-08-23 | 口碑(上海)信息技术有限公司 | 异构数据源数据获取方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102479217B (zh) * | 2010-11-23 | 2015-07-15 | 腾讯科技(深圳)有限公司 | 一种分布式数据仓库中实现计算均衡的方法及装置 |
CN103714073B (zh) * | 2012-09-29 | 2017-04-12 | 国际商业机器公司 | 数据查询的方法和装置 |
US10977260B2 (en) * | 2016-09-26 | 2021-04-13 | Splunk Inc. | Task distribution in an execution node of a distributed execution environment |
CN106611064B (zh) * | 2017-01-03 | 2020-03-06 | 北京华胜信泰数据技术有限公司 | 分布式关系数据库的数据处理方法和装置 |
-
2019
- 2019-12-24 CN CN201911351500.9A patent/CN113032446B/zh active Active
-
2020
- 2020-12-17 WO PCT/CN2020/137073 patent/WO2021129498A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120317093A1 (en) * | 2011-06-07 | 2012-12-13 | Microsoft Corporation | Performing parallel joins on distributed database data |
CN104731951A (zh) * | 2015-03-31 | 2015-06-24 | 北京奇艺世纪科技有限公司 | 一种数据查询方法及装置 |
CN110019231A (zh) * | 2017-12-26 | 2019-07-16 | 中国移动通信集团山东有限公司 | 一种并行数据库动态关联的方法及节点 |
CN109165262A (zh) * | 2018-10-16 | 2019-01-08 | 成都索贝数码科技股份有限公司 | 一种关系型大表的分片集群系统及其分片方法 |
CN110059103A (zh) * | 2019-04-28 | 2019-07-26 | 南京大学 | 一种跨平台统一的大数据sql查询方法 |
CN110162544A (zh) * | 2019-05-30 | 2019-08-23 | 口碑(上海)信息技术有限公司 | 异构数据源数据获取方法及装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113590322A (zh) * | 2021-07-30 | 2021-11-02 | 北京沃东天骏信息技术有限公司 | 一种数据处理方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113032446A (zh) | 2021-06-25 |
CN113032446B (zh) | 2024-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11372888B2 (en) | Adaptive distribution for hash operations | |
EP3285178B1 (en) | Data query method in crossing-partition database, and crossing-partition query device | |
US11496588B2 (en) | Clustering layers in multi-node clusters | |
CN109063196B (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN107085570B (zh) | 数据处理方法、应用服务器和路由器 | |
WO2016191995A1 (zh) | 一种分布式数据库中关联表分区的方法和设备 | |
CN111723161A (zh) | 一种数据处理方法、装置及设备 | |
WO2021129498A1 (zh) | 一种分布式查询系统的数据处理方法和装置 | |
CN111400301A (zh) | 一种数据查询方法、装置及设备 | |
CN112862613A (zh) | 一种交易数据处理方法和装置 | |
CN116775712A (zh) | 联表查询方法、装置、电子设备、分布式系统和存储介质 | |
CN106446039B (zh) | 聚合式大数据查询方法及装置 | |
Cao et al. | Efficient and Flexible Index Access in MapReduce. | |
CN117667968A (zh) | 一种数据查询方法及装置 | |
CN114297221A (zh) | 一种数据访问方法、装置及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 20908113 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 20908113 Country of ref document: EP Kind code of ref document: A1 |