Package io.trino.operator.aggregation
Class ApproximateMostFrequentHistogram<K>
java.lang.Object
io.trino.operator.aggregation.ApproximateMostFrequentHistogram<K>
Calculate the histogram approximately for topk elements based on the
Space-Saving algorithm and the Stream-Summary data structure
as described in:
Efficient Computation of Frequent and Top-k Elements in Data Streams
by Metwally, Agrawal, and Abbadi
-
Constructor Summary
ConstructorsConstructorDescriptionApproximateMostFrequentHistogram(int maxBuckets, int capacity, ApproximateMostFrequentBucketSerializer<K> serializer, ApproximateMostFrequentBucketDeserializer<K> deserializer) ApproximateMostFrequentHistogram(io.airlift.slice.Slice serialized, ApproximateMostFrequentBucketSerializer<K> serializer, ApproximateMostFrequentBucketDeserializer<K> deserializer) -
Method Summary
Modifier and TypeMethodDescriptionvoidvoidlongvoidforEachBucket(BucketConsumer<K> consumer) voidmerge(ApproximateMostFrequentHistogram<K> other) io.airlift.slice.Slice
-
Constructor Details
-
ApproximateMostFrequentHistogram
public ApproximateMostFrequentHistogram(int maxBuckets, int capacity, ApproximateMostFrequentBucketSerializer<K> serializer, ApproximateMostFrequentBucketDeserializer<K> deserializer) - Parameters:
maxBuckets- The maximum number of elements stored in the bucket.capacity- The maximum capacity of the stream summary data structure.serializer- It serializes a bucket into varbinary slice.deserializer- It appends a bucket into the histogram.
-
ApproximateMostFrequentHistogram
public ApproximateMostFrequentHistogram(io.airlift.slice.Slice serialized, ApproximateMostFrequentBucketSerializer<K> serializer, ApproximateMostFrequentBucketDeserializer<K> deserializer)
-
-
Method Details
-
add
-
add
-
serialize
public io.airlift.slice.Slice serialize() -
merge
-
forEachBucket
-
getBuckets
-
estimatedInMemorySize
public long estimatedInMemorySize()
-