Skip to content

feat(asap-planner): support SQL COUNT(DISTINCT) -> HLL streaming/inference config generation#385

Merged
milindsrivastava1997 merged 7 commits into
mainfrom
384-feat-asap-planner-support-for-hll-streaming-inference-config-generation
Jun 1, 2026
Merged

feat(asap-planner): support SQL COUNT(DISTINCT) -> HLL streaming/inference config generation#385
milindsrivastava1997 merged 7 commits into
mainfrom
384-feat-asap-planner-support-for-hll-streaming-inference-config-generation

Conversation

@akanksha-akkihal

Copy link
Copy Markdown
Collaborator

Support HLL-backed CARDINALITY Aggregations

Summary

Add end-to-end support for SQL CARDINALITY using HyperLogLog (HLL) sketches, including planner mapping, label routing, and configurable HLL precision.

Changes

promql_utilitiesquery_logics/logics.rs

  • Map:

    Statistic::Cardinality

    to:

    (AggregationType::HLL, "")
  • Set:

    AggregationType::HLL => false

    in does_precompute_operator_support_subpopulations() so:

    • grouping = SQL GROUP BY columns
    • aggregated = empty

    Distinct values are stored in value_column.

  • Test: test_cardinality_maps_to_hll

asap-planner-rsplanner/sql.rs

  • Map:

    CARDINALITY(...)

    to:

    vec![Statistic::Cardinality]
  • For cardinality queries:

    • rollup = []
    • grouping = GROUP BY columns

    The distinct column is sketched via value_column, not treated as a rollup dimension.

asap-planner-rsplanner/sketch.rs

  • Add AggregationType::HLL support using:

    parameters.precision
  • Default precision:

    14
    

asap-planner-rsconfig/input.rs

  • Add:

    HllParams
  • Support overrides:

    sketch_parameters:
      HLL:
        precision: <value>

asap-planner-rstests/sql_integration.rs

  • Add spatial_count_distinct_hll validating:

    • 1s spatial window
    • HLL aggregation
    • value_column: dstip
    • grouping: [srcip]
    • empty rollup
    • no DeltaSetAggregator

Example

SELECT srcip, CARDINALITY(dstip)
FROM netflow
GROUP BY srcip

Produces:

aggregation: HLL
value_column: dstip
grouping: [srcip]
rollup: []

with one HLL sketch per srcip group.

@akanksha-akkihal akanksha-akkihal changed the title feat(asap-planner) : support SQL COUNT(DISTINCT) -> HLL streaming/inference config generation feat(asap-planner): support SQL COUNT(DISTINCT) -> HLL streaming/inference config generation May 31, 2026
Comment thread asap-planner-rs/src/planner/sql.rs Outdated
@milindsrivastava1997 milindsrivastava1997 merged commit 47acd15 into main Jun 1, 2026
11 checks passed
@milindsrivastava1997 milindsrivastava1997 deleted the 384-feat-asap-planner-support-for-hll-streaming-inference-config-generation branch June 1, 2026 13:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(asap-planner) : support SQL COUNT(DISTINCT) -> HLL streaming/inference config generation

2 participants