theta_sketch_agg 聚合函数

适用于:检查标记为“是”的 Databricks SQL 检查标记为“是”是 Databricks Runtime 18.0 及更高版本

从输入值创建 Datasketches Theta Sketch,以便进行近似非重复计数估计。 Theta Sketch 算法提供具有可配置准确性的唯一值的概率计数。

Syntax

theta_sketch_agg ( expr [, lgNomEntries ] )

Arguments

  • expr:要聚合的表达式。 接受的类型为INTEGER、、LONG、、FLOATDOUBLESTRINGBINARYARRAY<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