你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

hll_if()(聚合函数)

适用于:✅✅Azure 数据资源管理器Azure Monitor✅ Sentinel

计算谓词计算结果为 dcount 的记录中 的中间结果。

阅读基础算法 (HyperLogLog ) 和估算准确度

注意

此函数与 summarize 运算符结合使用。

语法

hll_if ( expr、谓词 [,准确度])

详细了解语法约定

参数

客户 类型​​ 必需 说明
expr string ✔️ 用于聚合计算的表达式。
predicate string ✔️ Expr,用于筛选要添加到 中间结果的记录。
accuracy int 该值用于控制速度与准确度之间的平衡。 如果未指定,则默认值为 1。 有关受支持的值,请参阅估计准确度

返回

返回谓词计算结果为 的 Expr 的非重复计数的中间结果。

注意

  • hll()、hll_if() 和 hll_merge() 的结果可以进行存储,并在以后进行检索。 例如,你可能想要创建每日唯一用户摘要,然后可用于计算每周计数。 但是,这些结果的精确二进制表示形式可能会随时间而变化。 不能保证这些函数为相同的输入生成相同的结果,因此我们不建议依赖它们。
  • 使用 hll_merge 函数合并多个 hll 中间结果。 仅适用于 hll 输出。
  • 使用 dcount_hll计算 hllhll_mergehll_if 聚合函数的不同计数。

示例

以下查询导致爱荷华州和堪萨斯州的唯一洪水事件源数。 它使用 hll_if() 函数仅显示洪水事件。

StormEvents
| where State in ("IOWA", "KANSAS")
| summarize hll_flood = hll_if(Source, EventType == "Flood") by State
| project State, SourcesOfFloodEvents = dcount_hll(hll_flood)

输出

状态 SourcesOfFloodEvents
KANSAS 11
衣阿华州 7

估计准确度

精确度 Speed 错误 (%)
0 最快 1.6
1 已平衡 0.8
2 0.4
3 0.28
4 最慢 0.2