IP Library Granted Patent US 9,305,065
Granted Patent B2
US 9,305,065 · App. 13/457,361 · Granted Apr 5, 2016

Calculating count distinct using vertical unions

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 9,305,065
App. No.
13/457,361
Granted
Apr 5, 2016
Kind
B2
Abstract

A query statement is received that specifies a count distinct. Thereafter, a data flow graph that comprises a plurality of nodes for executing the query is generated. The nodes provide aggregation operations, sorting of results on join attributes and vertically appending columns of count distinct results with intermediate results from at least one of the aggregation operations. Thereafter, execution of the query is initiated using the data flow graph. Related apparatus, systems, techniques and articles are also described.

Claims (39)

1. A method comprising:

receiving a query statement specifying a count distinct;

generating a data flow graph comprising a plurality of nodes for executing the query, the nodes providing for a plurality of aggregation operations generating join attributes for the plurality of aggregation operations,

sorting each result of the plurality of aggregation operations on the join attributes, and

calculating a count distinct of a plurality of intermediate result from the plurality of aggregation operations based on key figures of the aggregation operations, by vertically appending columns of count distinct results with intermediate results from at least one of the aggregation operations;

wherein the vertically appending operation takes a first input table comprising a plurality of columns including a count distinct result and a second input table comprising a plurality of columns from the intermediate results from the at least one of the aggregation operations, wherein the first and second input table have no common columns, and generates a result table comprising all of the columns from the first table and second table;

calculating two or more count distinct key figures-in parallel; and

wherein each of the one or more aggregation operations provides a view across two or more attributes with each attribute being sorted in a separate column; and

initiating executing of the query using the data flow graph.

2. A method as in claim 1 , wherein the query is executed against an in-memory database.

3. A method as in claim 1 , wherein the in-memory database is a columnar database.

4. A method as in claim 1 , wherein columns of count distinct results are vertically appended using a vertical union operation.

5. A method as in claim 1 , wherein one or more of the receiving, generating, and initiating is performed by at least one data processor of at least one computing system.

6. A non-transitory computer program product storing instructions that, when executed by at least one programmable processor, cause the at least one programmable processor to perform operations comprising:

receiving a query statement specifying a count distinct;

generating a data flow graph comprising a plurality of nodes for executing the query, the nodes providing for a plurality of aggregation operations generating join attributes for the plurality of aggregation operations,

sorting each result of the plurality of aggregation operations on the join attributes, and

calculating a count distinct of a plurality of intermediate result from the plurality of aggregation operations based on key figures of the aggregation operations, by vertically appending columns of count distinct results with intermediate results from at least one of the aggregation operations;

wherein the vertically appending operation takes a first input table comprising a plurality of columns including a count distinct result and a second input table comprising a plurality of columns from the intermediate results from the at least one of the aggregation operations, wherein the first and second input table have no common columns, and generates a result table comprising all of the columns from the first table and second table;

calculating two or more count distinct key figures-in parallel; and

wherein each of the one or more aggregation operations provides a view across two or more attributes with each attribute being sorted in a separate column; and

initiating executing of the query using the data flow graph.

7. A computer program product as in claim 6 , wherein the query is executed against an in-memory database.

8. A computer program product as in claim 6 , wherein the in-memory database is a columnar database.

9. A computer program product as in claim 6 , wherein columns of count distinct results are vertically appended using a vertical union operation.

10. A system comprising:

one or more data processors;

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

receiving a query statement specifying a count distinct;

generating a data flow graph comprising a plurality of nodes for executing the query, the nodes providing for a plurality of aggregation operations generating join attributes for the plurality of aggregation operations,

sorting each result of the plurality of aggregation operations on the join attributes, and

calculating a count distinct of a plurality of intermediate result from the plurality of aggregation operations based on key figures of the aggregation operations, by vertically appending columns of count distinct results with intermediate results from at least one of the aggregation operations;

wherein the vertically appending operation takes a first input table comprising a plurality of columns including a count distinct result and a second input table comprising a plurality of columns from the intermediate results from the at least one of the aggregation operations, wherein the first and second input table have no common columns, and generates a result table comprising all of the columns from the first table and second table;

calculating two or more count distinct key figures in parallel; and

wherein each of the one or more aggregation operations provides a view across two or more attributes with each attribute being sorted in a separate column; and

initiating executing of the query using the data flow graph.

11. A system as in claim 10 , wherein the query is executed against an in-memory database.

12. A system as in claim 10 , wherein the in-memory database is a columnar database.

13. A system as in claim 10 , wherein columns of count distinct results are vertically appended using a vertical union operation.

Assignments (2)
CHANGE OF NAME Recorded Aug 26, 2014
From: SAP AG
To: SAP SE
Reel/Frame 033625/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 27, 2012
From: WEYERHAEUSER, CHRISTOPH; MINDNICH, TOBIAS; BAEUMGES, DANIEL; KAZMAIER, GERRIT SIMON
To: SAP AG
Reel/Frame 028119/0502 →