uniqHLL12
HyperLogLog アルゴリズムを使用して、引数に現れる異なる値のおおよその個数を計算します。
引数
この関数は可変個のパラメータを受け取ります。パラメータは Tuple、Array、Date、DateTime、String、または数値型です。
返される値
- UInt64 型の数値。
実装の詳細
関数は次の処理を行います。
-
集約内のすべてのパラメータに対してハッシュ値を計算し、その値を計算に使用します。
-
HyperLogLog アルゴリズムを使用して、異なる引数値の個数を近似します。
2^12 個の 5 ビットセルを使用します。状態データのサイズは 2.5 KB をわずかに上回ります。小さいデータセット(<10K 要素)の場合、結果はあまり正確ではありません(誤差は最大で約 10%)。一方で、高カーディナリティのデータセット(10K〜100M)に対しては比較的正確で、最大誤差は約 1.6% です。100M を超えると推定誤差が増加し、極めて高いカーディナリティ(1B+ 要素)のデータセットに対しては非常に不正確な結果を返すようになります。
-
決定論的な結果を返します(クエリ処理順序に依存しません)。
この関数の使用は推奨しません。ほとんどのケースでは、uniq または uniqCombined 関数を使用してください。
関連項目