- カテゴリ:
集計関数 (Cardinality Estimation) , ウィンドウ関数の構文と使用法
DATASKETCHES_HLL_ESTIMATE¶
与えられたスケッチのカーディナリティ推定値を返します。
この関数は、Apache DataSketches で使われている形式のバイナリスケッチを読むことができる HLL HyperLogLog 関数のバージョンです。詳細については、 Apache DataSketches ドキュメント をご参照ください。
DATASKETCHES_HLL_COMBINE 関数によって生成されたスケッチは、 DATASKETCHES_HLL_ESTIMATE 関数を使用してカーディナリティ推定値を計算するために使用できます。
構文¶
DATASKETCHES_HLL_ESTIMATE( <binary_sketch> ) 引数¶
binary_sketchスケッチ情報をバイナリ形式で含んでいる式。
戻り値¶
この関数は、 DOUBLE 型の値を返します。
入力が空の場合、出力は 0.0 です。
注釈
この関数は、 INTEGER の値を返す HLL_ESTIMATE 関数とは異なるタイプの値を返します。
例¶
テーブルを作成して値を挿入します。
CREATE OR REPLACE TABLE datasketches_demo(v INT, g INT); INSERT INTO datasketches_demo SELECT 1, 1; INSERT INTO datasketches_demo SELECT 2, 1; INSERT INTO datasketches_demo SELECT 2, 1; INSERT INTO datasketches_demo SELECT 2, 1; INSERT INTO datasketches_demo SELECT 1, 2; INSERT INTO datasketches_demo SELECT 1, 2; INSERT INTO datasketches_demo SELECT 4, 2; INSERT INTO datasketches_demo SELECT 4, 2; INSERT INTO datasketches_demo SELECT 5, 2; 以下の例では、テーブルのデータを使用しています。
蓄積されたバイナリスケッチのカーディナリティ推定値を返します。¶
以下の例では、以下のアクションを実行します。
DATASKETCHES_HLL_ACCUMULATE 関数は、列
vのデータを、列gの値1と2でグループ化した2つのバイナリスケッチを作成します。DATASKETCHES_HLL_ESTIMATE 関数は、各累積スケッチのカーディナリティ推定値を返します。
WITH accumulated AS ( SELECT g, DATASKETCHES_HLL_ACCUMULATE(v) AS accumulated_sketches FROM datasketches_demo GROUP BY g) SELECT g, DATASKETCHES_HLL_ESTIMATE(accumulated_sketches) AS accumulated_estimate FROM accumulated; +---+----------------------+ | G | ACCUMULATED_ESTIMATE | |---+----------------------| | 1 | 2.000000005 | | 2 | 3.000000015 | +---+----------------------+ DATASKETCHES_HLL_ACCUMULATE の例で、蓄積されたスケッチの値を見ることができます。
結合されたバイナリスケッチのカーディナリティ推定値を返します。¶
以下の例では、以下のアクションを実行します。
DATASKETCHES_HLL_ACCUMULATE 関数は、列
vのデータを、列gの値1と2でグループ化した2つのバイナリスケッチを作成します。DATASKETCHES_HLL_COMBINE 関数は、これらのバイナリスケッチを統合します。
DATASKETCHES_HLL_ESTIMATE 関数は、統一スケッチのカーディナリティ推定値を返します。
WITH accumulated AS ( SELECT g, DATASKETCHES_HLL_ACCUMULATE(v) AS accumulated_sketches FROM datasketches_demo GROUP BY g), combined AS ( SELECT DATASKETCHES_HLL_COMBINE(accumulated_sketches) AS unified FROM accumulated) SELECT DATASKETCHES_HLL_ESTIMATE(unified) AS unified_estimate FROM combined; +------------------+ | UNIFIED_ESTIMATE | |------------------| | 4.00000003 | +------------------+ DATASKETCHES_HLL_COMBINE の例で、結合されたスケッチの値を見ることができます。