Methods and apparatus for aggregating sparse data
First Claim
1. A method for creating a composite-join hierarchy for use in aggregating data in a multi-dimensional array of data values, said multi-dimensional array of data values being organized in at least one dimension in accordance with a plurality of hierarchical relationships, said method comprising, in combination, the steps of:
- merging said plurality of hierarchical relationships into a single hierarchical relationship, storing an executable program for subdividing an input data worklist representing a data array of n dimensions into sublists each representing a data array of (n−
1) dimensions forming part of said composite-join hierarchy, storing an initial worklist containing data representing said multidimensional array of data values, employing an iterative routine for first executing said program to process said initial worklist into to create result sublists, and to thereafter repeatedly execute said program to process each result sublist produced by said program until no further unprocessed result sublist containing data remains and the creation of said composite-join hierarchy is completed.
3 Assignments
0 Petitions
Accused Products
Abstract
A method for aggregating sparse data in a multidimensional array by using a composite join hierarchy created by segmenting the data so that each segment of the hierarchy processed is smaller and more likely to fit in memory. The method employs a recursive sub-cubing mechanism wherein an n-dimensional cube is broken into a number of (n−1)-dimensional cubes and each of those cubes are solved as (n−2)-dimensional cubes etc. Within each division, the processing is segmented by hierarchy level so a dimension with three hierarchy levels (for example, month-quarter-year) would form three separate subcubes with one less dimension. This algorithm produces one ‘worklist’ for every combination of hierarchy levels in the cube. Each of these worklists is represented as a bitmap of the cells contained within it and may be used as a basis of generating more aggregate worklists. To minimize the need for input-output data transfers, all the derived worklists of a single worklist are generated at the same time. This is accomplished without keeping more than n-worklists active at any given time to reduce the number of input-output data transfers needed without requiring substantially larger memory space.
38 Citations
12 Claims
-
1. A method for creating a composite-join hierarchy for use in aggregating data in a multi-dimensional array of data values, said multi-dimensional array of data values being organized in at least one dimension in accordance with a plurality of hierarchical relationships, said method comprising, in combination, the steps of:
-
merging said plurality of hierarchical relationships into a single hierarchical relationship, storing an executable program for subdividing an input data worklist representing a data array of n dimensions into sublists each representing a data array of (n−
1) dimensions forming part of said composite-join hierarchy,storing an initial worklist containing data representing said multidimensional array of data values, employing an iterative routine for first executing said program to process said initial worklist into to create result sublists, and to thereafter repeatedly execute said program to process each result sublist produced by said program until no further unprocessed result sublist containing data remains and the creation of said composite-join hierarchy is completed. - View Dependent Claims (2, 3)
-
-
4. A method for creating a composite-join hierarchy for use in aggregating a multi-dimensional array of data values, said multi-dimensional array of data values being organized in at least one dimension in accordance with a plurality of hierarchical relationships, said method comprising, in combination, the steps of:
-
merging said plurality of hierarchical relationships into a single hierarchical relationship, storing an executable program for processing the data in an input worklist representing a data array of n dimensions which is organized into hierarchical levels in at least one of those dimensions, said program producing a sublist for every combination of hierarchical levels represented in said data array, storing an initial worklist containing data representing said multidimensional array of data values, employing an iterative routine for first executing said program to first process said initial worklist to create result sublists, and to thereafter repeatedly execute said program to complete said composite join hierarchy by processing each result sublist produced by said program until no further unprocessed result sublist that contains data remains. - View Dependent Claims (5, 6)
-
-
7. A method for creating a composite-join hierarchy for use in aggregating data in a multi-dimensional array, said multi-dimensional array of data values being organized in at least one dimension in accordance with a plurality of hierarchical relationships, said method comprising, in combination, the steps of:
-
merging said plurality of hierarchical relationships into a single hierarchical relationship, storing an executable program for subdividing an input data worklist representing a said data array of n dimensions into sublists each representing a data array of (n−
1) dimensions forming part of said composite-join hierarchy,storing an initial worklist containing data representing said data in a multi-dimensional array, employing an iterative routine for first executing said program to first process said initial worklist into to create result sublists, and to thereafter repeatedly execute said program to process each result sublist produced by said program until no further unprocessed result sublist containing data remains to complete the creation of said composite-join hierarchy. - View Dependent Claims (8, 9)
-
-
10. A method for creating a composite-join hierarchy for use in aggregating a multi-dimensional array of data values, said multi-dimensional array of data values being organized in at least one dimension in accordance with a plurality of hierarchical relationships, said method comprising, in combination, the steps of:
-
merging said plurality of hierarchical relationships into a single hierarchical relationship, storing an executable program for processing the data in an input worklist representing a data array of n dimensions which is organized into hierarchical levels in at least one of those dimensions, said program producing a sublist for every combination of hierarchical levels represented in said data array, storing an initial worklist containing data representing said multidimensional array of data values, employing an iterative routine for first executing said program to first process said initial worklist to create result sublists, and to thereafter repeatedly execute said program to complete said composite join hierarchy by processing each result sublist produced by said program until no further unprocessed result sublist that contains data remains. - View Dependent Claims (11, 12)
-
Specification