# US 12,182,145 B2 · Remote data blending

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,182,145 B2
- Document ID: US12182145B2
- Status: Granted
- Kind: B2
- Application number: 17/563,879
- Filed: 2021-12-28
- Published: 2022-04-21
- Granted: 2024-12-31
- Earliest claimed: 2018-05-10
- Assignees: Sap SE
- Applicants: Sap SE
- Inventors: Houman Ghaemi; Darryl Eckstein; Mark Obad
- Web page: https://patentgrep.com/patent/US12182145B2

## CPC

- G06F 16/2471: {Distributed queries}
- G06F 16/256: {in federated or virtual databases}
- G06F 16/22: Indexing; Data structures therefor; Storage structures
- G06F 16/27: Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

The present disclosure provides improved systems, methods, and computer readable media for blending data from data sets that reside on different systems. This is done by generating subqueries from a main data model blend query, sending the subqueries to respective separate systems, accessing the results to all subqueries at a primary system, and performing a blend based on the main data model blend query at the primary system.

## Claims

### Claim 1

A method, comprising:
receiving input at a client system in communication with a primary system and with one or more remote systems, a user of the client system having predefined access privileges to data on the primary system and the one or more remote systems, the primary system having at least one data set and the one or more remote systems having separate data sets, wherein the input specifies a main data model blend query for a main data model blend that blends data from separate data sets at the primary system and at least one of the one or more remote systems;
storing, at the client system, a landscape definition specifying where different data sets are stored on the one or more remote systems, the landscape definition including URLs for each corresponding remote system;
generating, at the client system, one or more subqueries from the main data model blend query, wherein each subquery corresponds to a different remote system having a remote system data set that is to be blended in the main data model blend, wherein the client system uses data location information from the landscape definition to determine which of the different remote systems to send each of the one or more subqueries to;
sending, from the client system, each of the one or more subqueries to a corresponding remote system of a plurality of corresponding remote systems for execution on the remote system data set at the corresponding remote system;
receiving, at the client system from each corresponding remote system, information regarding a respective set of subquery results from executing the respective subquery on the remote system data set at the corresponding remote system, the information regarding the respective set of subquery results including a location in the corresponding remote system where the subquery results are stored, and each corresponding remote system providing the information regarding the respective set of subquery results after executing the respective subquery, wherein the landscape definition specifies locations in the corresponding remote systems where subquery results are stored using the information regarding the respective set of subquery results received from each corresponding remote system; and
sending, from the client system to the primary system, the main data model blend query, wherein the main data model blend query comprises the location in the corresponding remote system for each corresponding remote system, wherein client system uses the data location information from the landscape definition to include the location in the main data model blend query, wherein the primary system retrieves the subquery results from the location included in the received information and blends the subquery results.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
retrieving at the primary system each set of subquery results from its corresponding remote system using the location in the corresponding remote system; and
performing a data blend operation at the primary system based on the main data model blend query and the retrieved sets of subquery results from each of the remote systems.

### Claim 3 (depends on 1)

The method of claim 1, wherein a data provisioning agent facilitates communication between the primary system and at least one of the corresponding remote systems, the data provisioning agent being separate from the client system.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
executing each of the one or more subqueries on a remote system data set at the subqueries' corresponding remote system to provide a set of subquery results; and
storing each set of subquery results on each respective corresponding remote system.

### Claim 5 (depends on 4)

The method of claim 4, wherein each set of subquery results is stored in a serialized data format.

### Claim 6 (depends on 5)

The method of claim 5, further comprising receiving, in the primary system, metadata describing each subquery result.

### Claim 7 (depends on 6)

The method of claim 6, wherein the metadata is configured to allow a reconstruction of the subquery results from the serialized data format to a cube format for data blending operations on the primary system.

### Claim 8 (depends on 1)

The method of claim 1, further comprising:
sending from the client system to the primary system a subquery for execution on a primary data set at the primary system, wherein the results of the subquery to be performed at the primary system are not to be converted into a serialized data format.

### Claim 9 (depends on 1)

The method of claim 1, wherein the information regarding a set of subquery results comprises information that the subquery results are done.

### Claim 10 (depends on 1)

The method of claim 1, further comprising generating, on the client system, a table associating each subquery with a particular remote system.

### Claim 11 (depends on 1)

The method of claim 1, wherein the received information includes the set of subquery results.

### Claim 12 (depends on 11)

The method of claim 11, wherein the client system sends to the primary system each set of subquery results, and wherein no communication takes place between the primary system and any of the one or more remote systems.

### Claim 13 (depends on 1)

The method of claim 1, wherein the sending of the main data model blend query comprising the location in the corresponding remote system is performed once the information regarding the respective set of subquery results including the location is received from each corresponding remote system.

### Claim 14

A non-transitory machine-readable medium storing a program executable by at least one processing unit of a device, the program comprising sets of instructions for:
receiving input at a client system in communication with a primary system and with one or more remote systems, a user of the client system having predefined access privileges to data on the primary system and the one or more remote systems, the primary system having at least one data set and the one or more remote systems having separate data sets, wherein the input specifies a main data model blend query for a main data model blend that blends data from separate data sets at the primary system and at least one of the one or more remote systems;
storing, at the client system, a landscape definition specifying where different data sets are stored on the one or more remote systems, the landscape definition including URLs for each corresponding remote system;
generating, at the client system, one or more subqueries from the main data model blend query, wherein each subquery corresponds to a different remote system having a remote system data set that is to be blended in the main data model blend, wherein the client system uses data location information from the landscape definition to determine which of the different remote systems to send each of the one or more subqueries to;
sending, from the client system, each of the one or more subqueries to a corresponding remote system of a plurality of corresponding remote systems for execution on the remote system data set at the corresponding remote system;
receiving, at the client system from each corresponding remote system, information regarding a respective set of subquery results from executing the respective subquery on the remote system data set at the corresponding remote system, the information regarding the respective set of subquery results including a location in the corresponding remote system where the subquery results are stored, and each corresponding remote system providing the information regarding the respective set of subquery results after executing the respective subquery, wherein the landscape definition specifies locations in the corresponding remote systems where subquery results are stored using the information regarding the respective set of subquery results received from each corresponding remote system; and
sending, from the client system to the primary system, the main data model blend query, wherein the main data model blend query comprises the location in the corresponding remote system for each corresponding remote system, wherein client system uses the data location information from the landscape definition to include the location in the main data model blend query, wherein the primary system retrieves the subquery results from the location included in the received information and blends the subquery results.

### Claim 15 (depends on 14)

The non-transitory machine-readable medium of claim 14, further comprising:
retrieving at the primary system each set of subquery results from its corresponding remote system using the location in the corresponding remote system; and
performing a data blend operation at the primary system based on the main data model blend query and the retrieved sets of subquery results from each of the remote systems.

### Claim 16 (depends on 14)

The non-transitory machine-readable medium of claim 14, further comprising:
executing each of the one or more subqueries on a remote system data set at the subqueries' corresponding remote system to provide a set of subquery results; and
storing each set of subquery results on each respective corresponding remote system.

### Claim 17 (depends on 14)

The non-transitory machine-readable medium of claim 14, wherein the sending of the main data model blend query comprising the location in the corresponding remote system is performed once the information regarding the respective set of subquery results including the location is received from each corresponding remote system.

### Claim 18

A computer system comprising:
one or more processors;
at least one memory; and
computer program code comprising instructions, executable on said one or more processors, the computer program code configured to:
receive input at a client system in communication with a primary system and with one or more remote systems, a user of the client system having predefined access privileges to data on the primary system and the one or more remote systems, the primary system having at least one data set and the one or more remote systems having separate data sets, wherein the input specifies a main data model blend query for a main data model blend that blends data from separate data sets at the primary system and at least one of the one or more remote systems;
store, at the client system, a landscape definition specifying where different data sets are stored on the one or more remote systems, the landscape definition including URLs for each corresponding remote system;
generate, at the client system, one or more subqueries from the main data model blend query, wherein each subquery corresponds to a different remote system having a remote system data set that is to be blended in the main data model blend, wherein the client system uses data location information from the landscape definition to determine which of the different remote systems to send each of the one or more subqueries to;
send, from the client system, each of the one or more subqueries to a corresponding remote system of a plurality of corresponding remote systems for execution on the remote system data set at the corresponding remote system;
receive, at the client system from each corresponding remote system, information regarding a respective set of subquery results from executing the respective subquery on the remote system data set at the corresponding remote system, the information regarding the respective set of subquery results including a location in the corresponding remote system where the subquery results are stored, and each corresponding remote system providing the information regarding the respective set of subquery results after executing the respective subquery, wherein the landscape definition specifies locations in the corresponding remote systems where subquery results are stored using the information regarding the respective set of subquery results received from each corresponding remote system; and
send, from the client system to the primary system, the main data model blend query, wherein the main data model blend query comprises the location in the corresponding remote system for each corresponding remote system, wherein client system uses the data location information from the landscape definition to include the location in the main data model blend query, wherein the primary system retrieves the subquery results from the location included in the received information and blends the subquery results.

### Claim 19 (depends on 18)

The computer system of claim 18, further comprising:
retrieving at the primary system each set of subquery results from its corresponding remote system using the location in the corresponding remote system; and
performing a data blend operation at the primary system based on the main data model blend query and the retrieved sets of subquery results from each of the remote systems.

### Claim 20 (depends on 18)

The computer system of claim 18, further comprising:
executing each of the one or more subqueries on a remote system data set at the subqueries' corresponding remote system to provide a set of subquery results; and
storing each set of subquery results on each respective corresponding remote system.
