hash()
返回输入值的哈希值。
注意
- 此函数使用 xxhash64 算法计算哈希,但这可能会更改。 建议仅在单个查询中使用此函数。
- 如果需要保留组合的哈希,建议使用 hash_sha256()、hash_sha1() 或 hash_md5(),并使用位运算符来组合各个哈希。 这些函数的计算比
hash()
更复杂。
语法
hash(
source [,
mod])
详细了解语法约定。
参数
客户 | 类型 | 必需 | 说明 |
---|---|---|---|
source | 标量 (scalar) | ✔️ | 要进行哈希处理的值。 |
mod | int |
一个模数值,在应用于哈希结果后,输出值将介于 0 到 mod - 1 之间。 此参数可用于限制可能的输出值的范围,或将哈希函数的输出压缩为较小的范围。 |
返回
source 的哈希值。 如果指定了 mod,则函数将返回哈希值以 mod 的值为模取模后的结果,这意味着函数的输出将是哈希值除以 mod 后的余数。 输出将是介于 0
和 mod - 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