Multi-dimensional OLAP query processing method oriented to column store data warehouse
First Claim
1. A multi-dimensional on-line analytical processing (OLAP) query processing method oriented to a column store data warehouse, an OLAP query being divided into a bitmap filtering operation, a group-by operation and an aggregate operation;
- among them, a fact table and dimension tables being stored by adopting a column store model, a dimensional attribute column is loaded into main memory to form a memory dimensional attribute array, wherein a primary key is corresponding to a subscript of the memory dimensional attribute array;
a foreign key attribute value of the fact table tuple is mapped to a subscript of the memory dimensional attribute array in the corresponding dimension table; and
the fact table and the dimension tables complete a multi-table join operation through a corresponding relation between the foreign key and the primary key, wherein;
in the bitmap filtering operation, a predicate is executed on the dimension table to generate a predicate vector bitmap, and a join operation is converted, through address mapping of a surrogate key, into a direct dimension table tuple access operation, thereby implementing access according to a position;
in the group-by operation, a fact table tuple satisfying a filtering condition is pre-generated into a group-by unit according to a group-by attribute in an SQL command and is allocated with an increasing ID; and
in the aggregate operation, group-by aggregate calculation is performed according to a group item of a fact table filtering group-by vector through one-pass column scan on a fact table measure attribute.
1 Assignment
0 Petitions
Accused Products
Abstract
A multi-dimensional OLAP query processing method oriented to a column store data warehouse is described. With this method, an OLAP query is divided into a bitmap filtering operation, a group-by operation and an aggregate operation. In the bitmap filtering operation, a predicate is first executed on a dimension table to generate a predicate vector bitmap, and a join operation is converted, through address mapping of a surrogate key, into a direct dimension table tuple access operation; in the group-by operation, a fact table tuple satisfying a filtering condition is pre-generated into a group-by unit according to a group-by attribute in an SQL command and is allocated with an increasing ID; and in the aggregate operation, group-by aggregate calculation is performed according to a group item of a fact table filtering group-by vector through one-pass column scan on a fact table measure attribute.
-
Citations
10 Claims
-
1. A multi-dimensional on-line analytical processing (OLAP) query processing method oriented to a column store data warehouse, an OLAP query being divided into a bitmap filtering operation, a group-by operation and an aggregate operation;
- among them, a fact table and dimension tables being stored by adopting a column store model, a dimensional attribute column is loaded into main memory to form a memory dimensional attribute array, wherein a primary key is corresponding to a subscript of the memory dimensional attribute array;
a foreign key attribute value of the fact table tuple is mapped to a subscript of the memory dimensional attribute array in the corresponding dimension table; and
the fact table and the dimension tables complete a multi-table join operation through a corresponding relation between the foreign key and the primary key, wherein;in the bitmap filtering operation, a predicate is executed on the dimension table to generate a predicate vector bitmap, and a join operation is converted, through address mapping of a surrogate key, into a direct dimension table tuple access operation, thereby implementing access according to a position; in the group-by operation, a fact table tuple satisfying a filtering condition is pre-generated into a group-by unit according to a group-by attribute in an SQL command and is allocated with an increasing ID; and in the aggregate operation, group-by aggregate calculation is performed according to a group item of a fact table filtering group-by vector through one-pass column scan on a fact table measure attribute. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
- among them, a fact table and dimension tables being stored by adopting a column store model, a dimensional attribute column is loaded into main memory to form a memory dimensional attribute array, wherein a primary key is corresponding to a subscript of the memory dimensional attribute array;
-
10. A multi-dimensional on-line analytical processing (OLAP) query processing method oriented to a column store data warehouse, an OLAP query being divided into a bitmap filtering operation, a group-by operation and an aggregate operation, a fact table and dimension tables being stored by adopting a column store model, wherein:
-
in the bitmap filtering operation, a predicate is executed on the dimension table to generate a predicate vector bitmap, and a join operation is converted, through address mapping of a surrogate key, into a direct dimension table tuple access operation, thereby implementing access according to a position; in the group-by operation, a fact table tuple satisfying a filtering condition is pre-generated into a group-by unit according to a group-by attribute in an SQL command and is allocated with an increasing ID; in the aggregate operation, group-by aggregate calculation is performed according to a group item of a fact table filtering group-by vector through one-pass column scan on a fact table measure attribute; after the scan of the fact table foreign key attribute group is completed, the fact table filtering group-by vector and a preset group-by aggregate hash table are obtained, and an array of aggregate functions is created according to a maximum ID value to serve as a group-by aggregate accumulator; and when a non-zero data item is scanned in the fact table filtering group-by vector, a measure attribute column stored in a disk is accessed according to a vector subscript position, and the measure attribute value is sent to a unit with a subscript of the group-by aggregate accumulator array corresponding to the hash group ID value in the fact table filtering group-by vector, so as to perform the aggregate calculation.
-
Specification