IP Library Granted Patent US 10,970,287
Granted Patent B2
US 10,970,287 · App. 16/370,122 · Granted Apr 6, 2021

Performing cross-tabulation using a columnar database management system

Inventors: Carles Bayės Martin (Barcelona, ES); Jesús Malo Poyatos (Barcelona, ES); Marc Rodriguez Sierra (Barcelona, ES); Alejandro Sualdea Pérez (Barcelona, ES)
Assignee: OPEN TEXT HOLDINGS, INC.
G06F16/2456G06F16/221G06F16/2465G06F16/24542G06F16/283
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,970,287
App. No.
16/370,122
Granted
Apr 6, 2021
Kind
B2
Abstract

Cross-tabulation operation is performed within a columnar database management system. The columnar database management system receives a request to perform a cross-tabulation operation on a set of database tables. The columnar database management system determines values of cross-tabulation operation for each row of the result. The columnar database management system determines a domain for each value of the row dimension corresponding to a row combination. The columnar database management system determines an intersection set of the domains corresponding to values of the row dimensions for the row combination. The columnar database management system determines a value for the result column for the row combination as an aggregate value based on the records of the intersection set.

Claims (47)

1. A columnar database data mining method, comprising:

receiving, by a columnar database management system from a requestor, a request to perform a cross-tabulation operation on input tables having a columnar format, the request specifying row dimensions representing columns of the input tables, the columnar database management system having a processor and a non-transitory computer-readable medium;

responsive to the request, determining, by the columnar database management system, a result table comprising rows, each row of the result table having a combination of values of the row dimensions, the determining comprising, for each row of the result table:

for each value of a row dimension, determining a domain comprising a set of records from an input table of the input tables, the set of records matching the each value of the row dimension;

determining an intersection set of domains corresponding to the each row, the intersection set comprising a set of records that match the combination of values of the row dimensions; and

determining a value for a result column for the each row as an aggregate value based on the intersection set; and

storing the result table in a data store or returning a response to the requestor.

2. The columnar database data mining method according to claim 1 , wherein the request specifies a first row dimension representing a column of a first table of the input tables and wherein determining a domain for each value of a row dimension comprises selecting the set of records from the first table that meet a given condition or value of the column of the first table.

3. The columnar database data mining method according to claim 2 , wherein the request specifies a second row dimension representing a column of a second table, the second table having a column keyed to the first table.

4. The columnar database data mining method according to claim 1 , wherein the request is received from a client device through an application frontend, directly by the database engine of the columnar database management system, via an application programming interface call, through receipt of a file containing the request, or via an interactive console.

5. The columnar database data mining method according to claim 1 , wherein the result column comprises a pivot dimension, the method further comprising, for each value of the pivot dimension:

determining a pivot domain having a set of records that meet the each value of the pivot dimension; and

determining an intersection of the pivot domain with domains corresponding to the values of the row dimensions.

6. The columnar database data mining method according to claim 1 , wherein the result column comprises comparison values determined by applying an operator to results of a base filter and results of a target filter and wherein the operator is one of a difference operator, a relative index operator, or a percent operator.

7. The columnar database data mining method according to claim 1 , wherein the aggregate value represents a measure produced by an aggregation function utilizing values corresponding to the intersection set.

8. A system, comprising:

a processor;

a non-transitory computer-readable medium; and

stored instructions translatable by the processor to perform:

receiving, from a requestor, a request to perform a cross-tabulation operation on input tables having a columnar format, the request specifying row dimensions representing columns of the input tables;

responsive to the request, determining a result table comprising rows, each row of the result table having a combination of values of the row dimensions, the determining comprising, for each row of the result table:

for each value of a row dimension, determining a domain comprising a set of records from an input table of the input tables, the set of records matching the each value of the row dimension;

determining an intersection set of domains corresponding to the each row, the intersection set comprising a set of records that match the combination of values of the row dimensions; and

determining a value for a result column for the each row as an aggregate value based on the intersection set; and

storing the result table in a data store or returning a response to the requestor.

9. The system of claim 8 , wherein the request specifies a first row dimension representing a column of a first table of the input tables and wherein determining a domain for each value of a row dimension comprises selecting the set of records from the first table that meet a given condition or value of the column of the first table.

10. The system of claim 9 , wherein the request specifies a second row dimension representing a column of a second table, the second table having a column keyed to the first table.

11. The system of claim 8 , wherein the request is received from a client device through an application frontend, directly by the database engine of the columnar database management system, via an application programming interface call, through receipt of a file containing the request, or via an interactive console.

12. The system of claim 8 , wherein the result column comprises a pivot dimension, the method further comprising, for each value of the pivot dimension:

determining a pivot domain having a set of records that meet the each value of the pivot dimension; and

determining an intersection of the pivot domain with domains corresponding to the values of the row dimensions.

13. The system of claim 8 , wherein the result column comprises comparison values determined by applying an operator to results of a base filter and results of a target filter and wherein the operator is one of a difference operator, a relative index operator, or a percent operator.

14. The system of claim 8 , wherein the aggregate value represents a measure produced by an aggregation function utilizing values corresponding to the intersection set.

15. A computer program product for columnar database data mining, the computer program product comprising a non-transitory computer-readable medium storing instructions translatable by a processor to perform:

receiving, from a requestor, a request to perform a cross-tabulation operation on input tables having a columnar format, the request specifying row dimensions representing columns of the input tables;

responsive to the request, determining a result table comprising rows, each row of the result table having a combination of values of the row dimensions, the determining comprising, for each row of the result table:

for each value of a row dimension, determining a domain comprising a set of records from an input table of the input tables, the set of records matching the each value of the row dimension;

determining an intersection set of domains corresponding to the each row, the intersection set comprising a set of records that match the combination of values of the row dimensions; and

determining a value for a result column for the each row as an aggregate value based on the intersection set; and

storing the result table in a data store or returning a response to the requestor.

16. The computer program product of claim 15 , wherein the request specifies a first row dimension representing a column of a first table of the input tables and wherein determining a domain for each value of a row dimension comprises selecting the set of records from the first table that meet a given condition or value of the column of the first table.

17. The computer program product of claim 16 , wherein the request specifies a second row dimension representing a column of a second table, the second table having a column keyed to the first table.

18. The computer program product of claim 15 , wherein the request is received from a client device through an application frontend, directly by the database engine of the columnar database management system, via an application programming interface call, through receipt of a file containing the request, or via an interactive console.

19. The computer program product of claim 15 , wherein the result column comprises a pivot dimension, the method further comprising, for each value of the pivot dimension:

determining a pivot domain having a set of records that meet the each value of the pivot dimension; and

determining an intersection of the pivot domain with domains corresponding to the values of the row dimensions.

20. The computer program product of claim 15 , wherein the result column comprises comparison values determined by applying an operator to results of a base filter and results of a target filter and wherein the operator is one of a difference operator, a relative index operator, or a percent operator.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 5, 2019
From: MARTIN, CARLES BAYES; POYATOS, JESUS MALO; SIERRA, MARC RODRIGUEZ
To: ACTUATE CORPORATION
Reel/Frame 048806/0374 →
MERGER Recorded Apr 5, 2019
From: ACTUATE CORPORATION
To: OPEN TEXT HOLDINGS, INC.
Reel/Frame 048806/0386 →