适用于:
Databricks Runtime 18.0 及更高版本
从整数 KLL 草图中估计给定分位排名(或多个排名)的值。
Syntax
kll_sketch_get_quantile_bigint ( sketch, rank )
Arguments
-
sketchBINARY:包含序列化整数 KLL 草图的表达式。 -
rank:表达式DOUBLE或ARRAY<DOUBLE>分位排名介于 0.0 和 1.0 之间,其中:- 0.0 是最小值,
- 0.5 是中值,并且
- 1.0 是最大值。
退货
- 如果排名为
DOUBLE:返回一个BIGINT表示估计分位数的值。 - 如果排名为
ARRAY<DOUBLE>:ARRAY<BIGINT>返回每个排名的分位估计值。
注释
- 排名必须介于 0.0 和 1.0 之间(含)。
- 如果草图为空,则
NULL返回。 - 常见分位数:0.25(Q1)、0.5(中值)、0.75(第3季度)、0.95(P95)、0.99(P99)。
例子
-- Get median from a sketch
> WITH sketch_data AS (
SELECT kll_sketch_agg_bigint(value) AS sketch
FROM VALUES (1), (2), (3), (4), (5) AS T(value)
)
SELECT kll_sketch_get_quantile_bigint(sketch, 0.5) FROM sketch_data
3
-- Get multiple quantiles (Q1, median, Q3)
> WITH sketch_data AS (
SELECT kll_sketch_agg_bigint(value) AS sketch
FROM VALUES (1), (2), (3), (4), (5) AS T(value)
)
SELECT kll_sketch_get_quantile_bigint(sketch, array(0.25, 0.5, 0.75)) FROM sketch_data
[2, 3, 4]
-- Get P95 and P99 for latency monitoring
> WITH sketch_data AS (
SELECT kll_sketch_agg_bigint(latency_ms) AS sketch FROM latency_table
)
SELECT kll_sketch_get_quantile_bigint(sketch, array(0.95, 0.99)) FROM sketch_data
[145, 234]