- カテゴリ:
集計関数 (Cardinality Estimation) , ウィンドウ関数の構文と使用法
DATASKETCHES_HLL_COMBINE¶
入力スケッチを1つの出力スケッチに結合(マージ)します。
この関数は、Apache DataSketches で使われている形式のバイナリスケッチを読むことができる HLL HyperLogLog 関数のバージョンです。詳細については、 Apache DataSketches ドキュメント をご参照ください。
この関数は、 DATASKETCHES_HLL_ACCUMULATE 関数を同じテーブルの水平パーティションに対して実行し、各テーブルパーティションのアルゴリズムスケッチを生成するシナリオを可能にします。これらのスケッチは、後でこの関数を使用して結合することができ、テーブル全体にわたって DATASKETCHES_HLL_ACCUMULATE を1回実行したのと同じ出力スケッチを生成します。
- こちらもご参照ください。
構文¶
DATASKETCHES_HLL_COMBINE( [ DISTINCT ] <state> [ , <max_log_k> ] )
必要な引数¶
state
DATASKETCHES_HLL_ACCUMULATE の呼び出しによって生成された状態情報を含む式です。
オプションの引数¶
max_log_k
この和集合のKの最大値(log2)。INTEGER の値を4から21の間で指定します。詳細については、 Apache DataSketches ドキュメント をご参照ください。
デフォルト: 12
戻り値¶
この関数はApache Datasketchesライブラリと互換性のある BINARY の値を返します。
使用上の注意¶
DISTINCT はサポートされていますが、効果はありません。
例¶
テーブルを作成して値を挿入します。
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_COMBINE 関数はこれらのバイナリスケッチを結合します。
WITH
accumulated AS (
SELECT g,
DATASKETCHES_HLL_ACCUMULATE(v) AS accumulated_sketches
FROM datasketches_demo
GROUP BY g)
SELECT DATASKETCHES_HLL_COMBINE(accumulated_sketches) AS combined_sketches
FROM accumulated;
+--------------------------------------------------+
| COMBINED_SKETCHES |
|--------------------------------------------------|
| 0201070C030804002BF2FB06862FF90D81BC5D067B65E608 |
+--------------------------------------------------+
DATASKETCHES_HLL_ACCUMULATE の例で、蓄積されたスケッチの値を見ることができます。