×

Use of primary and secondary indexes to facilitate aggregation of records of an OLAP data cube

  • US 7,761,407 B1
  • Filed: 10/10/2006
  • Issued: 07/20/2010
  • Est. Priority Date: 10/10/2006
  • Status: Active Grant
First Claim
Patent Images

1. A method for facilitating aggregation of records of an OLAP data cubs, each record of the OLAP data cube comprising a value for each of a plurality of atoms which each represent a variable of an OLAP system, wherein the records of the OLAP data cube are ordered in accordance with the values of first and second atoms for each record, thereby producing a sorted OLAP data Cube, such that each record having a specified value of the first atom is located in the sorted OLAP data cube in a contiguous group together with other records, if any, of the OLAP data cube having the same specified value of the first atom, and such that within each contiguous group of one or more records having the same specified value of the first atom, each record having a specified value of the second atom is located in a contiguous subgroup together with other records, if any, having the same specified value of the second atom, the method using a computer system to perform the steps of:

  • identifying a contiguous group of one or more records having a value of the first atom that matches a value of the first atom identified by a first filter data structure, wherein the contiguous group of one or more records is identified using a data structure that identifies each possible value of the first atom, together with the location in the sorted OLAP data cube of a first record of a contiguous group of one or more records having that value of the first atom;

    identifying a record of the identified contiguous group having a value of the second atom that matches a value of the second atom identified by a second filter data structure;

    successively evaluating one or more records of the identified contiguous group in a first direction away from the identified record, beginning with the record that is adjacent to the identified record in the first direction, to determine, for each evaluated record, whether the evaluated record has a value of the second atom that matches the value of the second atom identified by the second filter data structure, wherein;

    if the evaluated record has a value of the second atom that matches the value of the second atom identified by the second filter data structure, the evaluated record is identified as a record to be included in the aggregation and the step of successively evaluating in a first direction continues with the next adjacent record in the first direction;

    if the evaluated record does not have a value of the second atom that matches the value of the second atom identified by the second filter data structure, the step of successively evaluating in the first direction terminates;

    successively evaluating one or more records of the identified contiguous group in a second direction away from the identified record that is opposite to the first direction, beginning with the record that is adjacent to the identified record in the second direction, to determine, for each evaluated record, whether the evaluated record has a value of the second atom that matches the value of the second atom identified by the second filter data structure, wherein;

    if the evaluated record has a value of the second atom that matches the value of the second atom identified by the second filter data structure, the evaluated record is identified as a record to be included in the aggregation and the step of successively evaluating in the second direction continues with the next adjacent record in the second direction;

    if the evaluated record does not have a value of the second atom that matches the value of the second atom identified by the second filter data structure, the step of, successively evaluating in the second direction terminates.

View all claims
  • 6 Assignments
Timeline View
Assignment View
    ×
    ×