cube-js/cube

Quantile Support for Pre-Aggregations

Open

#2 931 ouverte le 9 juin 2021

Voir sur GitHub
 (5 commentaires) (4 réactions) (2 assignés)Rust (1 965 forks)batch import
help wantedpre-aggregations

Métriques du dépôt

Stars
 (19 563 stars)
Métriques de merge PR
 (Merge moyen 5j 16h) (138 PRs mergées en 30 j)

Description

Is your feature request related to a problem? Please describe. Much of our aggregations are based on quantiles (e.g. 0.95 -> 95p). It is well-known that you cannot merge quantiles without having all of the original data, which prevents such aggregations in pre-aggregations. It would be very nice to have pre-computed quantiles that can be merged, similar to counts, sums, etc.

First, does the community care about quantile-based pre-aggregations? If the answer is no, then we can just close this out.

If there seems to be a use for this, I'd be happy to help.

I mentioned this at the community meeting on 06/09/2021 (@rpaik).

Describe the solution you'd like

References:

There are digest-based data structures, such as t-digests, that can produce accurate, bounded-size, mergeable quantile approximations. They are typically used in streaming or map-reduce-like settings for efficiently/concurrently combining rank statistics, but I think they would also be useful in pre-aggregations. There is a definite tradeoff between space and accuracy, so tuning could be tricky, but it seems that there are decent defaults that would suit most use cases.

Guide contributeur