Data aggregation module supporting dynamic query responsive aggregation during the servicing of database query requests provided by one or more client machines
First Claim
1. A method comprising:
- by a computer system comprising computer hardware;
receiving a first multidimensional cube of data, wherein the first multidimensional cube of data is sparse;
initiating a first aggregation process;
conducting the first aggregation process;
receiving a query after the first aggregation process has been initiated and while the first aggregation process is being conducted;
determining a sequence for storing the first multidimensional cube of data in a multidimensional database; and
at least partly in response to the query, performing a query directed, on-the-fly roll-up process while the first aggregation process is still being conducted,extracting, based at least in part on the determined sequence, a first slice of data for storage in the multidimensional database from the first multidimensional cube of data,wherein the first slice of data is a second multidimensional cube of data that is a subset of the first multidimensional cube of data.
5 Assignments
0 Petitions
Accused Products
Abstract
Improved method of and apparatus for aggregating data elements in multidimensional databases (MDDB). In the preferred embodiment, the apparatus is realized in the form of a high-performance stand-alone (i.e. external) aggregation server which can be plugged-into conventional MOLAP systems to achieve significant improvements in system performance. In accordance with the principles of the present invention, the stand-alone aggregation server contains a scalable MDDB and a high-performance aggregation engine that are integrated into the modular architecture of the aggregation server. The stand-alone aggregation server of the present invention can uniformly distribute data elements among a plurality of processors, for balanced loading and processing, and therefore is highly scalable.
343 Citations
15 Claims
-
1. A method comprising:
-
by a computer system comprising computer hardware; receiving a first multidimensional cube of data, wherein the first multidimensional cube of data is sparse; initiating a first aggregation process; conducting the first aggregation process; receiving a query after the first aggregation process has been initiated and while the first aggregation process is being conducted; determining a sequence for storing the first multidimensional cube of data in a multidimensional database; and at least partly in response to the query, performing a query directed, on-the-fly roll-up process while the first aggregation process is still being conducted, extracting, based at least in part on the determined sequence, a first slice of data for storage in the multidimensional database from the first multidimensional cube of data, wherein the first slice of data is a second multidimensional cube of data that is a subset of the first multidimensional cube of data. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A computing system comprising:
-
a processor comprising hardware; and a computer readable medium storing machine-executable instructions including one or more modules configured for execution by the processor in order to cause the computing system to; receive a first multidimensional cube of data, wherein the first multidimensional cube of data is sparse; initiate a first on-the-fly aggregation process; conduct the first on-the-fly aggregation process; determine a sequence for storing the first multidimensional cube of data in a multidimensional database; receive a query after the first on-the-fly aggregation process has been initiated and while the first a on-the-fly aggregation process is being conducted; determine a sequence for storing the first multidimensional cube of data in a multidimensional database; at least partly in response to the received query, perform a query directed roll-up process while the first on-the-fly aggregation process is still being conducted; and extract, based at least in part on the determined sequence, a first slice of data from the first multidimensional cube of data, wherein the first slice of data is a second multidimensional cube of data that is a subset of the first multidimensional cube of data; and store the extracted first slice of data in the multidimensional database. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A non-transitory computer-readable medium encoded with instructions thereon, wherein the instructions are readable by a computing system in order to cause the computing system to perform operations comprising:
-
receiving a first multidimensional cube of data, wherein the first multidimensional cube of data is sparse; initiating a first aggregation process; conducting the first on-the-fly aggregation process; determining a sequence for storing the first multidimensional cube of data in a multidimensional database; receiving a query after the first on-the-fly aggregation process has been initiated and while the first aggregation process is being conducted; at least partly in response to the received query, performing a query directed roll-up process while the first on-the-fly aggregation process is still being conducted; extracting, based at least in part on the determined sequence, a first slice of data from the first multidimensional cube of data, wherein the first slice of data is a second multidimensional cube of data that is a subset of the first multidimensional cube of data; and storing the extracted first slice of data in the multidimensional database. - View Dependent Claims (12, 13, 14, 15)
-
Specification