hash()

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

返回输入值的哈希值。

注意

  • 此函数使用 xxhash64 算法计算哈希,但这可能会更改。 建议仅在单个查询中使用此函数。
  • 如果需要保留组合的哈希,建议使用 hash_sha256()hash_sha1()hash_md5(),并使用位运算符来组合各个哈希。 这些函数的计算比 hash() 更复杂。

语法

hash(source [, mod])

详细了解语法约定

参数

客户 类型​​ 必需 说明
source 标量 (scalar) ✔️ 要进行哈希处理的值。
mod int 一个模数值,在应用于哈希结果后,输出值将介于 0mod - 1 之间。 此参数可用于限制可能的输出值的范围,或将哈希函数的输出压缩为较小的范围。

返回

source 的哈希值。 如果指定了 mod,则函数将返回哈希值以 mod 的值为模取模后的结果,这意味着函数的输出将是哈希值除以 mod 后的余数。 输出将是介于 0mod - 1 之间的值(包括两个端值)。

示例

字符串输出

print result=hash("World")
result
1846988464401551951

带有 mod 的字符串输入

print result=hash("World", 100)
result
51

日期/时间输入

print result=hash(datetime("2015-01-01"))
result
1380966698541616202

使用哈希检查数据分布

如果某一列中的值是均匀分布的,则可以使用 hash() 函数对数据进行采样。 在下面的示例中,StartTime 值是均匀分布的,函数用于对 10% 的数据运行查询。

StormEvents 
| where hash(StartTime, 10) == 0
| summarize StormCount = count(), TypeOfStorms = dcount(EventType) by State 
| top 5 by StormCount desc