次の方法で共有


hll_sketch_agg 集計関数

適用対象: check marked yes 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: 一意な値の数をカウントする型 INTBIGINTSTRINGBINARY の式。
  • lgConfigK: 4 から 21 までの任意の INT 定数。既定の 12 を含む。 K の log-base-2。K はスケッチのバケットまたはスロットの数です。

exprNULL はすべて無視されます。

返品

集計グループのすべての入力値を使用し、集計した結果として計算される 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