hll_sketch_agg
集計関数
適用対象: Databricks SQL Databricks Runtime 13.3 LTS 以降
この関数では HyperLogLog アルゴリズムを利用し、指定された列で一意の値の数を確率的近似でカウントし、スケッチ バッファーと呼ばれているバイナリ表現で結果を出力します。 このバイナリ表現は永続化に適しています。
クエリでは、結果のバッファーを使用し、hll_sketch_estimate 関数で一意の概数を計算できます。
hll_union 関数と hll_union_agg 関数では、これらのバッファーを入力として使用し、マージすることでスケッチを結合することもできます。
実装では、Apache Datasketches ライブラリを使用します。 詳細については、「HLL」を参照してください。
構文
hll_sketch_agg ( expr [, lgConfigK ] )
この関数は、OVER
句を使用して ウィンドウ 関数として呼び出すこともできます。
引数
expr
: 一意な値の数をカウントする型INT
、BIGINT
、STRING
、BINARY
の式。lgConfigK
: 4 から 21 までの任意のINT
定数。既定の 12 を含む。 K の log-base-2。K はスケッチのバケットまたはスロットの数です。
expr
の NULL
はすべて無視されます。
返品
集計グループのすべての入力値を使用し、集計した結果として計算される HyperLogLog スケッチを含む非 NULL
BINARY
バッファー。
例
> SELECT hll_sketch_estimate(hll_sketch_agg(col, 12))
FROM VALUES (1), (1), (2), (2), (3) tab(col);
3
> SELECT hll_sketch_estimate(hll_sketch_agg(col))
FROM VALUES (1), (1), (2), (2), (3) tab(col);
3