次の方法で共有


hll_union 関数

適用対象:check marked yes Databricks SQL Databricks Runtime 13.3 LTS 以降

この関数では、HyperLogLog アルゴリズムを使用して、2 つのスケッチを 1 つのスケッチに結合します。

クエリでは、結果のバッファーを使用し、hll_sketch_estimate 関数で一意の概数を長整数として計算できます。

実装では、Apache Datasketches ライブラリを使用します。 詳細については、「HLL」を参照してください。

構文

hll_union ( expr1, expr2 [, allowDifferentLgConfigK ] )

引数

  • exprN: hll_sketch_agg によって生成されるスケッチを保持する BINARY 式。
  • allowDifferentLgConfigK: 異なる lgConfigK 値を持つ 2 つのスケッチのマージを許可するかどうかを制御する省略可能な BOOLEAN 式。 既定値は false です。

返品

入力式を組み合わせた結果として計算される HyperLogLog スケッチを含む BINARY バッファー。

allowDifferentLgConfigK パラメーターが true の場合、結果スケッチでは、指定された 2 つの lgConfigK 値のうち小さい方が使用されます。

> SELECT hll_sketch_estimate(
  hll_union(
    hll_sketch_agg(col1),
    hll_sketch_agg(col2)))
  FROM VALUES
    (1, 4),
    (1, 4),
    (2, 5),
    (2, 5),
    (3, 6) AS tab(col1, col2);
  6

> SELECT hll_sketch_estimate(
  hll_union(
    hll_sketch_agg(col1,  4),
    hll_sketch_agg(col2, 21)))
  FROM VALUES
    (1, 4),
    (1, 4),
    (2, 5),
    (2, 5),
    (3, 6) AS tab(col1, col2);
  error