Abstract :
Partial preaggregation is a simple data reduction operator that can be applied to aggregation queries. Whenever we group and aggregate on a column set G, we can preaggregate on any column set that functionally determines G. Preaggregation can be used, for example, to reduce the input size to a join. Regular aggregation reduces the input to one record per group. Partial preaggregation exploits the fact that preaggregation need not be complete-if multiple records happen to be output for a group, they will be combined into the same group by the final aggregation. This paper describes a straightforward hash-based algorithm for partial preaggregation, discusses where it can be applied, and derives a mathematical model for estimating the output size. The effectiveness of the technique and the accuracy of the model are shown on both artificial and real data. It is also shown how to reduce memory requirements by combining partial preaggregation with the input phase of a subsequent join or sort operator. Partial preaggregation has been implemented, in part, in Microsoft SQL Server
Keywords :
data reduction; file organisation; query processing; Microsoft SQL Server; aggregation queries; column set; data reduction operator; hash-based algorithm; input size; join operator; mathematical model; memory requirements; multiple records; partial preaggregation; sort operator; Aggregates; Costs; Data engineering; Databases; Marketing and sales; Mathematical model; Radio access networks; Sorting;