IP Library › Granted Patent US 10,521,431
Granted Patent B2
US 10,521,431 · App. 15/150,368 · Granted Dec 31, 2019

Relational conversion of multiprovider operations in a calculation scenario for executing a query

Inventors: Christoph Weyerhaeuser (Leimen, DE); Johannes Merx (Heidelberg, DE)
Assignee: SAP SE
G06F16/24554
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,521,431
App. No.
15/150,368
Granted
Dec 31, 2019
Kind
B2
Abstract

A calculation engine of a database management system is described. In an exemplary implementation, the calculation engine receives a calculation scenario. The calculation scenario includes one or more relational operations and one or more non-relational operations of a multiprovider, the multiprovider utilizing a plurality of database partitions. The calculation engine processes the one or more non-relational operations via the multiprovider. After processing the one or more non-relational operations, the calculation engine converts the one or more relational operations. This converting comprises filtering first data from the plurality of partitions to form second data and forming third data by performing a union operation on the second data. Thereafter, the third data is filtered to form fourth data. Related systems, methods, and articles of manufacture are also described.

Claims (48)

1. A method comprising:

receiving, at a calculation engine of a database management system, a query invoking a calculation scenario including one or more relational operations performed on one or more table structures and one or more non-relational operations performed on a multiprovider utilizing a plurality of part providers, each of the plurality of part providers comprising a database partition comprising a semantic table partition holding data from a database, and the multiprovider comprising a logical definition for combining the plurality of part providers; and

executing the query by at least processing, by the calculation engine, the calculation scenario, the processing of the calculation scenario comprising:

performing, by the calculation engine, the one or more non-relational operations via the multiprovider, the multiprovider configured to filter and aggregate the plurality of part providers, and the performance of the one or more non-relational operation including

replacing the multiprovider with a union operator followed by a post-aggregation operator, the union operator configured to combine a result from the plurality of part providers, and the post-aggregation operator configured to group the result from the plurality of part providers, and

providing, to a relational database engine external to the calculation engine, an output of the post-aggregation operator; and

converting, by the calculation engine, the one or more relational operations, the converting including

filtering first data from the plurality of part providers to form second data,

forming third data by performing a union operation on the second data, and

filtering the third data to form a fourth data for consumption by the relational database engine external to the calculation engine.

2. The method of claim 1 , further comprising:

providing, from the calculation engine, the fourth data to the relational database engine for generating, based at least on the fourth data, a relational view.

3. The method of claim 1 , wherein the fourth data comprises a table structure.

4. The method of claim 1 , wherein the one or more relational operations comprises a logical operation performed utilizing the one or more table structures.

5. The method of claim 1 , wherein the one or more non-relational operations comprises a pruning of one or more of the partitions from the calculation scenario.

6. The method of claim 1 , wherein the one or more non-relational operations comprises a filter push-down.

7. The method of claim 1 , wherein the one or more non-relational operations comprises a join re-ordering.

8. The method of claim 1 , wherein the one or more non-relational operations comprises an aggregation push-down.

9. The method of claim 1 , wherein the calculation engine comprises at least one programmable processor and at least one memory storing instructions that, when executed by the at least one programmable processor to implement the receiving, the processing, and the converting.

10. The method of claim 1 , wherein the third data comprises a logical plan containing one or more relational operators, and wherein the third data is passed to the relational database engine for generating, by at least integrating and executing the logical plan, the fourth data.

11. A non-transitory computer program product storing instructions which, when executed by at least one hardware data processors, result in operations comprising:

receiving, at a calculation engine of a database management system, a query invoking a calculation scenario including one or more relational operations performed on one or more table structures and one or more non-relational operations performed on a multiprovider utilizing a plurality of part providers, each of the plurality of part providers comprising a database partition comprising a semantic table partition holding data from a database, and the multiprovider comprising a logical definition for combining the plurality of part providers; and

executing the query by at least processing, by the calculation engine, the calculation scenario, the processing of the calculation scenario comprising:

performing, by the calculation engine, the one or more non-relational operations via the multiprovider, the multiprovider configured to filter and aggregate the plurality of part providers, and the performance of the one or more non-relational operation including

replacing the multiprovider with a union operator followed by a post-aggregation operator, the union operator configured to combine a result from the plurality of part providers, and the post-aggregation operator configured to group the result from the plurality of part providers, and

providing, to a relational database engine external to the calculation engine, an output of the post-aggregation operator; and

converting, by the calculation engine, the one or more relational operations, the converting including

filtering first data from the plurality of part providers to form second data,

forming third data by performing a union operation on the second data, and

filtering the third data to form a fourth data for consumption by the relational database engine external to the calculation engine.

12. The non-transitory computer program product of claim 11 , wherein the operations further comprise:

providing, from the calculation engine, the fourth data to the relational database engine for generating, based at least on the fourth data, a relational view.

13. The non-transitory computer program product of claim 11 , wherein the one or more non-relational operations comprise a pruning of one or more of the partitions from the calculation scenario, a filter push-down, a join re-ordering, and/or an aggregation push-down.

14. A system comprising:

at least one hardware data processor; and

at least one memory storing instructions which, when executed by the at least one data processor, result in operations comprising:

receiving, at a calculation engine of a database management system, a query invoking a calculation scenario including one or more relational operations performed on one or more table structures and one or more non-relational operations performed on a multiprovider utilizing a plurality of part providers, each of the plurality of part providers comprising a database partition comprising a semantic table partition holding data from a database, and the multiprovider comprising a logical definition for combining the plurality of part providers; and

executing the query by at least processing, by the calculation engine, the calculation scenario, the processing of the calculation scenario comprising:

performing, by the calculation engine, the one or more non-relational operations via the multiprovider, the multiprovider configured to filter and aggregate the plurality of part providers, and the performance of the one or more non-relational operation including

replacing the multiprovider with a union operator followed by a post-aggregation operator, the union operator configured to combine a result from the plurality of part providers, and the post-aggregation operator configured to group the result from the plurality of part providers, and

providing, to a relational database engine external to the calculation engine, an output of the post-aggregation operator; and

converting, by the calculation engine, the one or more relational operations, the converting including

filtering first data from the plurality of part providers to form second data,

forming third data by performing a union operation on the second data, and

filtering the third data to form a fourth data for consumption by the relational database engine external to the calculation engine.

15. The system of claim 14 , wherein the operations further comprise:

providing, from the calculation engine, the fourth data to the relational database engine for generating, based at least on the fourth data, a relational view.

16. The system of claim 14 , wherein the plurality of database partitions comprise semantic table partitions that hold data from a database, and wherein the multiprovider comprises a logical definition for combining the plurality of database partitions.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 27, 2016
From: WEYERHAEUSER, CHRISTOPH; MERX, JOHANNES
To: SAP SE
Reel/Frame 038740/0940 →
Continuity (1)
Related Publication 20170322988A1 · Nov 9, 2017