ACCESSING A DIMENSIONAL DATA MODEL WHEN PROCESSING A QUERY
First Claim
1. A computer-implemented method for processing a query against a dimensional data model, the dimensional data model comprising a fact table and a plurality of dimension tables, the method comprising:
- determining, from each dimension table, a respective set of dimension records satisfying any local predicates in the query pertaining to the respective dimension table;
based on the sets of dimension records and by operation of one or more computer processors, identifying, from the fact table, a set of row identifiers of fact records satisfying any join predicates and local predicates in the query, wherein the row identifier of each fact record is identified by joining a respective, distinct, concatenated dimension record to the fact table and applying any local predicates to the fact table, wherein each concatenated dimension record is generated by concatenating a join key value from each set of dimension records, wherein the join key values for generating at least a first concatenated dimension record are determined based on a feedback record, wherein the feedback record comprises at least a portion of a next ordered fact record succeeding a previously identified fact record; and
generating query results responsive to the query by joining, to the sets of dimension records, one or more fact records in the fact table selected based on the row identifiers.
2 Assignments
0 Petitions
Accused Products
Abstract
Techniques are disclosed for accessing a dimensional data model when processing a query. In one embodiment, the query is processed by performing a two-stage zigzag join operation including a zigzag main join and a zigzag back join. The zigzag main join is configured to generate a set of row identifiers of fact records satisfying any local predicates in the query. The zigzag back join is configured to generate query results based on the set of row identifiers. The query results are returned responsive to the query.
80 Citations
20 Claims
-
1. A computer-implemented method for processing a query against a dimensional data model, the dimensional data model comprising a fact table and a plurality of dimension tables, the method comprising:
-
determining, from each dimension table, a respective set of dimension records satisfying any local predicates in the query pertaining to the respective dimension table; based on the sets of dimension records and by operation of one or more computer processors, identifying, from the fact table, a set of row identifiers of fact records satisfying any join predicates and local predicates in the query, wherein the row identifier of each fact record is identified by joining a respective, distinct, concatenated dimension record to the fact table and applying any local predicates to the fact table, wherein each concatenated dimension record is generated by concatenating a join key value from each set of dimension records, wherein the join key values for generating at least a first concatenated dimension record are determined based on a feedback record, wherein the feedback record comprises at least a portion of a next ordered fact record succeeding a previously identified fact record; and generating query results responsive to the query by joining, to the sets of dimension records, one or more fact records in the fact table selected based on the row identifiers. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A computer program product, comprising:
-
a computer-readable storage medium having computer-readable program code embodied therewith for processing a query against a dimensional data model, the dimensional data model comprising a fact table and a plurality of dimension tables, the computer-readable program code comprising; computer-readable program code configured to determine, from each dimension table, a respective set of dimension records satisfying any local predicates in the query pertaining to the respective dimension table; computer-readable program code configured to identify, from the fact table and based on the sets of dimension records, a set of row identifiers of fact records satisfying any join predicates and local predicates in the query, wherein the row identifier of each fact record is identified by joining a respective, distinct, concatenated dimension record to the fact table and applying any local predicates to the fact table, wherein each concatenated dimension record is generated by concatenating a join key value from each set of dimension records, wherein the join key values for generating at least a first concatenated dimension record are determined based on a feedback record, wherein the feedback record comprises at least a portion of a next ordered fact record succeeding a previously identified fact record; and computer-readable program code configured to generate query results responsive to the query by joining, to the sets of dimension records, one or more fact records in the fact table selected based on the row identifiers. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A system, comprising:
-
one or more computer processors; a memory containing a program, which when executed by the one or more computer processors is configured to perform an operation for processing a query against a dimensional data model, the dimensional data model comprising a fact table and a plurality of dimension tables, the operation comprising; determining, from each dimension table, a respective set of dimension records satisfying any local predicates in the query pertaining to the respective dimension table; from the fact table and based on the sets of dimension records, identifying, a set of row identifiers of fact records satisfying any join predicates and local predicates in the query, wherein the row identifier of each fact record is identified by joining a respective, distinct, concatenated dimension record to the fact table and applying any local predicates to the fact table, wherein each concatenated dimension record is generated by concatenating a join key value from each set of dimension records, wherein the join key values for generating at least a first concatenated dimension record are determined based on a feedback record, wherein the feedback record comprises at least a portion of a next ordered fact record succeeding a previously identified fact record; and generating query results responsive to the query by joining, to the sets of dimension records, one or more fact records in the fact table selected based on the row identifiers. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification