适用于:
Databricks SQL
Databricks Runtime 18.0 及更高版本
从输入值创建 Datasketches Theta Sketch,以便进行近似非重复计数估计。 Theta Sketch 算法提供具有可配置准确性的唯一值的概率计数。
Syntax
theta_sketch_agg ( expr [, lgNomEntries ] )
Arguments
-
expr:要聚合的表达式。 接受的类型为
INTEGER、、LONG、、FLOATDOUBLE、STRING、BINARY、ARRAY<INTEGER>和ARRAY<LONG>。 -
lgNomEntries:指定名义条目(存储桶数)的 log-base-2 的可选
INTEGER文本。 必须介于 4 到 26 之间(含)。 默认值为 12(4,096 桶)。 较高的值可提供更好的准确性,但使用更多内存。
退货
包含 BINARY 序列化的压缩 Theta Sketch 的值。
备注
-
NULL聚合期间忽略值。 - 将忽略空字符串、空字节数组和空数组。
- 参数
lgNomEntries必须是常量值。 - 草图中的实际存储桶数为 2^lgNomEntries(例如,lgNomEntries=12 表示 4,096 桶)。
- 使用
theta_sketch_estimate函数 从生成的草图中获取非重复计数估计值。
错误消息
示例
-- Create sketch with default lgNomEntries=12 and get estimate
> SELECT theta_sketch_estimate(theta_sketch_agg(col)) FROM VALUES (1), (1), (2), (2), (3) tab(col);
3
-- Create sketch with custom lgNomEntries=20 for higher accuracy
> SELECT theta_sketch_estimate(theta_sketch_agg(col, 20)) FROM VALUES (1), (2), (3), (4), (5) tab(col);
5