hll_merge() (集計関数)
適用対象: ✅Microsoft Fabric✅Azure データ エクスプローラー✅Azure Monitor✅Microsoft Sentinel
グループ全体の HLL 結果を 1 つの HLL 値にマージします。
Note
異なる精度値を使用して作成された hll 値をマージすることはできません。 詳細については、 hll()を参照してください。
Note
この関数は、summarize 演算子と組み合わせて使用します。
詳細については、基になるアルゴリズム (HyperLogLog) と推定精度に関するページを参照してください。
重要
hll()、hll_if()、およびhll_merge() の結果を格納し、後で取得できます。 たとえば、毎日の一意のユーザーの概要を作成し、それを使用して週単位のカウントを計算することができます。 ただし、これらの結果の正確なバイナリ表現は、時間の経過と同時に変化する可能性があります。 これらの関数が同一の入力に対して同じ結果を生成する保証はないため、それらに依存することはお勧めしません。
構文
hll_merge
(
hll)
構文規則について詳しく知る。
パラメーター
件名 | タイプ | Required | 説明 |
---|---|---|---|
hll | string |
✔️ | マージする HLL 値を含む列名。 |
返品
この関数は、グループ全体で hll のマージされた HLL 値を返します。
ヒント
dcount_hll関数を使用して、hll()およびhll_merge()集計関数からdcount
を計算します。
例
次の例は、1 つの HLL 値にマージされたグループ全体の HLL 結果を示しています。
StormEvents
| summarize hllRes = hll(DamageProperty) by bin(StartTime,10m)
| summarize hllMerged = hll_merge(hllRes)
出力
結果には、配列内の最初の 5 つの結果のみが表示されます。
hllMerged |
---|
[[1024,14],["-6903255281122589438","-7413697181929588220","-2396604341988936699","5824198135224880646","-6257421034880415225", ...],[]] |
推定精度
この関数では、セット カーディナリティの確率的推定を行う HyperLogLog (HLL) アルゴリズム の異形が使用されます。 アルゴリズムには、メモリ サイズごとの精度と実行時間のバランスを取るために使用できる "ノブ" が用意されています。
精度 | エラー (%) | エントリ数 |
---|---|---|
0 | 1.6 | 212 |
1 | 0.8 | 214 |
2 | 0.4 | 216 |
3 | 0.28 | 217 |
4 | 0.2 | 218 |
Note
"エントリ数" 列は、HLL 実装における 1 バイト カウンターの数です。
セット カーディナリティが十分に小さい場合、アルゴリズムには完璧なカウント (ゼロ エラー) を行うためのいくつかの条件が含まれています。
- 精度レベルが
1
の場合は 1,000 個の値を返す - 精度レベルが
2
の場合は 8,000 個の値を返す
誤り限界は確率的であり、理論限界ではありません。 値は、誤差分布の標準偏差 (シグマ) であり、推定量 の 99.7% は 3 x シグマ未満の相対エラーになります。
次の図は、サポートされているすべての精度設定の相対的な推定誤差の確率分布関数をパーセントで示したものです。