[feature] Add Query Fingerprinting Feature on Pinot Brokers
- Dominant language
- Java
- Stars
- 6.1k
- Forks
- 1.5k
- Avg merge
- 2d 55m
- Merged PRs (30d)
- 182
Description
**Issue**
Pinot currently lacks query fingerprinting capabilities, making it difficult to analyze query patterns and identify performance issues. Query fingerprinting is a technique that generates a unique identifier (fingerprint) for queries by normalizing their structure while ignoring specific parameter values. This allows similar queries with different constants to be grouped together for analysis. At Uber, we added the query fingerprinting feature to Pinot gateways but ideally this should be contributed to Pinot OSS.
**Proposed Solution**
And Implement AST-based query fingerprinting that normalizes constants to placeholders (?) to capture semantic equivalence while ignoring specific values. We will compute fingerprints during query compilation in the compileRequest() method and store them in RequestContext, then use the existing broker event listener framework for fingerprint processing.
The feature should be controlled by feature flags and be off by default.
cc @ankitsultana
Contributor guide
Assessment
This issue has not been assessed yet.