hll_merge()
適用於:✅Microsoft網狀架構✅Azure 數據✅總管 Azure 監視器✅Microsoft Sentinel
合併 HLL 結果。 這是匯總版本的純量版本 hll_merge()
。
閱讀基礎演算法 (HyperLog Log) 和估計精確度。
重要
hll()、hll_if() 和 hll_merge() 的結果可以儲存和稍後擷取。 例如,您可能想要建立每日唯一使用者摘要,然後可用來計算每周計數。 不過,這些結果的精確二進位表示可能會隨著時間而變更。 不保證這些函式會對相同的輸入產生相同的結果,因此我們不建議您依賴它們。
語法
hll_merge(
hll,
hll2,
[ hll3,
... ])
深入瞭解 語法慣例。
參數
姓名 | 類型 | 必要 | 描述 |
---|---|---|---|
hll、 hll2、... | string |
✔️ | 包含要合併之 HLL 值的數據行名稱。 函式預期介於 2-64 個自變數之間。 |
傳回
傳回一個 HLL 值。 值是合併資料行 hll、 hll2... 的結果。 hllN。
範例
此範例顯示合併數據行的值。
range x from 1 to 10 step 1
| extend y = x + 10
| summarize hll_x = hll(x), hll_y = hll(y)
| project merged = hll_merge(hll_x, hll_y)
| project dcount_hll(merged)
輸出
dcount_hll_merged |
---|
20 |
估計的正確性
此函式會使用 HyperLogLog (HLL) 演算法的變體,它會對集合基數執行隨機估計。 此演算法提供「旋鈕」,可用來平衡每個記憶體大小的正確性和運行時間:
準確度 | 錯誤 ≤ | 項目計數 |
---|---|---|
0 | 1.6 | 212 |
1 | 0.8 | 214 |
2 | 0.4 | 216 |
3 | 0.28 | 217 |
4 | 0.2 | 218 |
注意
「進入計數」數據行是 HLL 實作中的 1 位元節計數器數目。
如果設定基數夠小,演算法會包含一些用於執行完美計數(零錯誤)的布建:
- 當精確度層級為
1
時,會傳回 1000 個值 - 當精確度層級為
2
時,會傳回8000個值
錯誤系結是概率的,而不是理論系結。 此值是誤差分佈的標準偏差(sigma),而 99.7% 的估計會有 3 x sigma 以下的相對誤差。
下圖顯示相對估計誤差的機率分佈函數,以百分比表示所有支援的精確度設定: