NULL 的哈希值为 NULL。要获取 Nullable 列的非 NULL 哈希值,请将其包装在 tuple 中:
要计算整个表内容的哈希值,请使用
sum(cityHash64(tuple(*))) (或其他哈希函数) 。tuple 可确保包含 NULL 值的行不会被跳过。sum 可确保行的顺序不会影响结果。BLAKE3
在 v22.10.0 中引入 计算 BLAKE3 哈希字符串,并以 FixedString 返回结果字节集。 该加密哈希函数通过 BLAKE3 Rust 库集成到 ClickHouse 中。 该函数速度很快,与 SHA-2 相比,性能大约快两倍,同时生成的哈希长度与 SHA-256 相同。 它将 BLAKE3 哈希作为类型为 FixedString(32) 的字节数组返回。 语法message— 要进行哈希运算的输入字符串。String
FixedString(32)
示例
hash
Query
Response
MD4
引入版本:v21.11.0 计算给定字符串的 MD4 哈希。 语法s— 要计算哈希的输入字符串。String
FixedString(16)
示例
使用示例
Query
Response
MD5
引入版本:v1.1.0 计算给定字符串的 MD5 哈希值。 语法s— 待计算哈希的输入字符串。String
FixedString(16)
示例
使用示例
Query
Response
RIPEMD160
引入版本:v24.10.0 计算给定字符串的 RIPEMD-160 哈希。 语法s— 要计算哈希的输入字符串。String
FixedString(20)
示例
使用示例
Query
Response
SHA1
引入版本:v1.1.0 计算给定字符串的 SHA1 哈希值。 语法s— 要进行哈希计算的输入字符串String
FixedString(20)
示例
使用示例
Query
Response
SHA224
引入版本:v1.1.0 计算给定字符串的 SHA224 哈希值。 语法s— 要哈希的输入值。String
FixedString(28)
示例
使用示例
Query
Response
SHA256
引入版本:v1.1.0 计算给定字符串的 SHA256 哈希值。 语法s— 要计算哈希的输入字符串。String
FixedString(32)
示例
使用示例
Query
Response
SHA384
引入版本:v1.1.0 计算给定字符串的 SHA384 哈希值。 语法s— 要进行哈希计算的输入字符串。String
FixedString(48)
示例
使用示例
Query
Response
SHA512
引入版本:v1.1.0 计算给定字符串的 SHA512 哈希值。 语法s— 要哈希的输入字符串String
FixedString(64)
示例
使用示例
Query
Response
SHA512_256
引入版本:v1.1.0 计算给定字符串的 SHA512_256 哈希值。 语法s— 要计算哈希的输入字符串。String
FixedString(32)
示例
用法示例
Query
Response
URLHash
引入版本:v1.1.0 一种快速、质量较好的非加密哈希函数,用于对经过某种规范化处理后从 URL 得到的字符串计算哈希值。 该哈希函数有两种模式:
语法
url 的哈希计算结果。UInt64
示例
用法示例
Query
Response
Query
Response
cityHash64
引入版本:v1.1.0 生成一个 64 位 CityHash 哈希值。 这是一种快速的非加密哈希函数。 对于字符串参数,它使用 CityHash 算法;对于其他数据类型的参数,则使用特定于实现的快速非加密哈希函数。 该函数使用 CityHash 组合器来生成最终结果。Google 在将 CityHash 引入 ClickHouse 后修改了该算法。
换句话说,ClickHouse 的 cityHash64 与 Google 上游的 CityHash 现在会产生不同的结果。
ClickHouse 的 cityHash64 对应于 CityHash v1.0.2。
对于参数类型不同但输入值相同的情况,计算得到的哈希值可能相同。
例如,这会影响不同位宽的整数类型、数据相同的具名和非具名
Tuple,以及数据相同的 Map 和对应的 Array(Tuple(key, value)) 类型。arg1[, arg2, ...]— 用于计算哈希的可变数量输入参数。Any
UInt64)
示例
调用示例
Query
Response
Query
Response
farmFingerprint64
引入版本:v20.12.0 使用Fingerprint64 方法生成 64 位的 FarmHash 值。
对于参数类型不同但输入值相同的情况,计算出的哈希值可能相同。
例如,这会影响不同大小的整数类型、具有相同数据的具名和非具名
Tuple,以及具有相同数据的 Map 和对应的 Array(Tuple(key, value)) 类型。arg1[, arg2, ...]— 用于计算哈希值的可变数量输入参数。Any
UInt64
示例
用法示例
Query
Response
farmHash64
引入版本:v1.1.0 使用Hash64 方法生成 64 位 FarmHash 值。
对于参数类型不同但输入值相同的情况,计算得到的哈希值可能相同。
例如,不同位宽的整数类型、数据相同的具名与非具名
Tuple,以及数据相同的 Map 与对应的 Array(Tuple(key, value)) 类型都会受到影响。arg1[, arg2, ...]— 要计算哈希的输入参数,数量可变。Any
UInt64
示例
使用示例
Query
Response
gccMurmurHash
引入版本:v20.1.0 使用与 GCC 相同的 seed,计算输入值的 64 位 MurmurHash2 哈希值。 它在 Clang 和 GCC 的构建之间具有可移植性。 语法arg1[, arg2, ...]— 要计算哈希的可变数量参数。Any
UInt64
示例
使用示例
Query
Response
halfMD5
引入版本:v1.1.0 将所有输入参数都解释为字符串,并分别计算其 MD5 哈希值。然后将这些哈希组合起来,取结果字符串哈希值的前 8 个字节,并按大端字节序将其解释为 UInt64。该函数相对较慢 (每个处理器核心每秒可处理 500 万个短字符串) 。 建议改用sipHash64 函数。
该函数接受数量可变的输入参数。
参数可以是任意受支持的数据类型。
对于某些数据类型,即使参数类型不同,相同的值计算出的哈希值也可能相同 (例如不同大小的整数、包含相同数据的命名和未命名 Tuple,以及包含相同数据的 Map 和对应的 Array(Tuple(key, value)) 类型) 。
语法
arg1[, arg2, ..., argN]— 用于计算哈希的数量可变的参数。Any
UInt64 形式表示。UInt64
示例
使用示例
Query
Response
hiveHash
引入版本:v20.1.0 根据字符串计算 “HiveHash”。 它实际上就是将符号位清零后的JavaHash。
在 3.0 之前的版本中,Apache Hive 使用此函数。
语法
arg— 要计算哈希的输入字符串。String
Int32
示例
使用示例
Query
Response
icebergHash
首次引入于:v25.5.0 实现了 Iceberg 哈希转换 的逻辑 语法Int32
示例
示例
Query
Response
intHash32
引入版本:v1.1.0 计算整数的 32 位哈希值。 该哈希函数速度较快,但不是加密哈希函数。 语法arg— 要计算哈希值的整数。(U)Int*
UInt32
示例
用法示例
Query
Response
intHash64
引入版本:v1.1.0 计算整数的 64 位哈希值。 该哈希函数速度较快 (甚至比intHash32 还快) ,但不是加密哈希函数。
语法
int— 要计算哈希的整数。(U)Int*
UInt64
示例
使用示例
Query
Response
javaHash
引入版本:v20.1.0 根据以下类型的值计算 JavaHash:Java 仅支持计算有符号整数的哈希,
因此,如果你想计算无符号整数的哈希,必须先将它们转换为相应的有符号 ClickHouse 类型。
arg— 要进行哈希计算的输入值。Any
arg 的计算哈希值 Int32
示例
使用示例 1
Query
Response
Query
Response
javaHashUTF16LE
引入版本:v20.1.0 根据一个字符串计算 JavaHash,假定其中包含的是表示 UTF-16LE 编码字符串的字节。 语法arg— 采用 UTF-16LE 编码的字符串。String
Int32
示例
用法示例
Query
Response
jumpConsistentHash
版本引入:v1.1.0 计算一个整数的 跳跃一致性哈希。 语法Int32
示例
使用示例
Query
Response
kafkaMurmurHash
引入版本:v23.4.0 使用与 Kafka 相同的种子值,计算输入值的 32 位 MurmurHash2 哈希,并去除最高位,以兼容 Default Partitioner。 语法arg1[, arg2, ...]— 用于计算哈希的可变数量的参数。Any
UInt32
示例
使用示例
Query
Response
keccak256
引入版本:v25.4.0 计算给定字符串的 Keccak-256 加密哈希值。 这种哈希函数广泛用于区块链应用,尤其是以太坊。 语法message— 要进行哈希计算的输入字符串。String
FixedString(32)
示例
使用示例
Query
Response
kostikConsistentHash
Introduced in:v22.6.0 这是 Konstantin ‘Kostik’ Oblakov 提出的一种时间和空间复杂度均为 O(1) 的一致性哈希算法。 仅在n <= 32768 时才高效。
Syntax
yandexConsistentHash
参数
返回值
返回计算得到的哈希值。UInt16
示例
使用示例
Query
Response
metroHash64
引入版本:v1.1.0 生成一个 64 位的 MetroHash 哈希值。对于不同参数类型中相同的输入值,计算出的哈希值可能相同。
例如,这会影响不同位宽的整数类型、数据相同的具名和非具名
Tuple,以及数据相同的 Map 和对应的 Array(Tuple(key, value)) 类型。arg1[, arg2, ...]— 用于计算哈希的可变数量输入参数。Any
UInt64
示例
使用示例
Query
Response
murmurHash2_32
引入版本:v18.5.0 计算输入值的 MurmurHash2 哈希值。对于数值相同但参数类型不同的输入,计算得到的哈希值可能相同。
例如,这会影响不同位宽的整数类型、数据相同的具名和非具名
Tuple,以及数据相同的 Map 和对应的 Array(Tuple(key, value)) 类型。arg1[, arg2, ...]— 用于计算哈希的可变数量的输入参数。Any
UInt32
示例
使用示例
Query
Response
murmurHash2_64
引入版本:v18.10.0 计算输入值的 MurmurHash2 哈希值。对于参数类型不同但输入值相同的情况,计算出的哈希值可能相同。
例如,这会影响不同位宽的整数类型、数据相同的具名和非具名
Tuple,以及数据相同的 Map 与对应的 Array(Tuple(key, value)) 类型。arg1[, arg2, ...]— 用于计算哈希的输入参数,数量可变。Any
UInt64
示例
使用示例
Query
Response
murmurHash3_128
引入版本:v18.10.0 计算输入值的 128 位 MurmurHash3 哈希值。 语法arg1[, arg2, ...]— 用于计算哈希的可变数量输入参数。Any
MurmurHash3 哈希值。FixedString(16)
示例
使用示例
Query
Response
murmurHash3_32
引入版本:v18.10.0 生成 MurmurHash3 哈希值。对于 argument 类型不同但输入值相同的情况,计算出的哈希值可能会相同。
例如,这会影响不同位宽的整数类型、数据相同的具名和非具名
Tuple,以及数据相同的 Map 与对应的 Array(Tuple(key, value)) 类型。arg1[, arg2, ...]— 用于计算哈希的数量可变的输入参数。Any
UInt32
示例
使用示例
Query
Response
murmurHash3_64
引入版本:v18.10.0 计算输入值的 MurmurHash3 哈希。对于参数类型不同但输入值相同的情况,计算得到的哈希值可能相同。
例如,这会影响不同位宽的整数类型、数据相同的具名和非具名
Tuple,以及数据相同的 Map 与对应的 Array(Tuple(key, value)) 类型。arg1[, arg2, ...]— 用于计算哈希的可变数量输入参数。Any
UInt64
示例
使用示例
Query
Response
ngramMinHash
引入版本:v21.1.0 将 ASCII 字符串拆分为由ngramsize 个符号组成的 n-gram,计算每个 n-gram 的哈希值,并返回包含这些哈希值的 Tuple。
使用 hashnum 个最小哈希值计算最小哈希,使用 hashnum 个最大哈希值计算最大哈希。
该函数区分大小写。
可结合 tupleHammingDistance 用于检测半重复字符串。
对于两个字符串,如果返回的哈希值对两者都相同,则这两个字符串相同。
语法
string— 要计算哈希的字符串。Stringngramsize— 可选。n-gram 的大小,可为1到25之间的任意数值。默认值为3。UInt8hashnum— 可选。用于计算结果的最小哈希和最大哈希的数量,可为1到25之间的任意数值。默认值为6。UInt8
Tuple
示例
用法示例
Query
Response
ngramMinHashArg
引入版本:v21.1.0 将 ASCII 字符串拆分为由ngramsize 个符号组成的 n-gram,并返回基于相同输入由 ngramMinHash 函数计算出的哈希值最小和最大的 n-gram。
该函数区分大小写。
语法
string— 要计算哈希的 String。Stringngramsize— 可选。n-gram 的长度,可为1到25之间的任意数值。默认值为3。UInt8hashnum— 可选。用于计算结果的最小哈希和最大哈希的数量,可为1到25之间的任意数值。默认值为6。UInt8
hashnum 个 n-gram。Tuple(String)
示例
使用示例
Query
Response
ngramMinHashArgCaseInsensitive
引入于:v21.1.0 将 ASCII 字符串拆分为由ngramsize 个符号组成的 n-grams,并返回在相同输入下由 ngramMinHashCaseInsensitive 函数计算得到的哈希值最小和最大的 n-grams。
该函数不区分大小写。
语法
string— 要计算哈希的字符串。Stringngramsize— 可选。n-gram 的大小,可为1到25之间的任意数值。默认值为3。UInt8hashnum— 可选。用于计算结果的最小哈希和最大哈希的数量,可为1到25之间的任意数值。默认值为6。UInt8
hashnum 个 n-gram。Tuple(Tuple(String))
示例
使用示例
Query
Response
ngramMinHashArgCaseInsensitiveUTF8
引入于:v21.1.0 将 UTF-8 字符串按ngramsize 个符号拆分为 n-grams,并返回使用相同输入由 ngramMinHashCaseInsensitiveUTF8 函数计算出的哈希值最小和最大的 n-grams。
该函数不区分大小写。
语法
string— 要计算哈希的 String。Stringngramsize— 可选。n-gram 的长度,可为1到25之间的任意数值。默认值为3。UInt8hashnum— 可选。用于计算结果的最小哈希和最大哈希的数量,可为1到25之间的任意数值。默认值为6。UInt8
hashnum 个 n-gram。Tuple(Tuple(String))
示例
用法示例
Query
Response
ngramMinHashArgUTF8
引入版本:v21.1.0 将一个 UTF-8 字符串拆分为由ngramsize 个符号组成的 n-gram,并返回在相同输入下由 ngramMinHashUTF8 函数计算得到的哈希值最小和最大的 n-gram。
该函数区分大小写。
语法
string— 要计算哈希的字符串。Stringngramsize— 可选。n-gram 的大小,可为从1到25的任意值。默认值为3。UInt8hashnum— 可选。用于计算结果的最小哈希和最大哈希的数量,可为从1到25的任意值。默认值为6。UInt8
hashnum 个 n-gram。Tuple(Tuple(String))
示例
使用示例
Query
Response
ngramMinHashCaseInsensitive
引入版本:v21.1.0 将 ASCII 字符串拆分为由ngramsize 个符号组成的 n-gram,计算每个 n-gram 的哈希值,并返回包含这些哈希值的 Tuple。
使用 hashnum 个最小哈希值计算最小哈希,使用 hashnum 个最大哈希值计算最大哈希。
该函数不区分大小写。
可与 tupleHammingDistance 配合使用,以检测近似重复字符串。
对于两个字符串,如果两者返回的哈希值相同,则这两个字符串相同。
语法
string— String。String。-ngramsize— n-gram 的大小。可选。可能的值:1到25之间的任意数值。默认值:3。UInt8。-hashnum— 用于计算结果的最小哈希值和最大哈希值的数量。可选。可能的值:1到25之间的任意数值。默认值:6。UInt8。
Tuple
示例
使用示例
Query
Response
ngramMinHashCaseInsensitiveUTF8
引入版本:v21.1.0 将 UTF-8 字符串拆分为由ngramsize 个符号组成的 n-gram,计算每个 n-gram 的哈希值,并返回一个包含这些哈希值的 Tuple。
使用 hashnum 个最小哈希值来计算最小哈希,使用 hashnum 个最大哈希值来计算最大哈希。
此函数不区分大小写。
可结合 tupleHammingDistance 用于检测半重复字符串。
对于两个字符串,如果两者返回的哈希值相同,则这两个字符串相同。
语法
string— 用于计算哈希的 String。Stringngramsize— 可选。n-gram 的大小,可为1到25之间的任意数值。默认值为3。UInt8hashnum— 可选。用于计算结果的最小和最大哈希值的数量,可为1到25之间的任意数值。默认值为6。UInt8
Tuple
示例
使用示例
Query
Response
ngramMinHashUTF8
引入版本:v21.1.0 将 UTF-8 字符串按ngramsize 个符号切分为 n-gram,计算每个 n-gram 的哈希值,并返回包含这些哈希值的 Tuple。
使用 hashnum 个最小哈希值计算最小哈希,使用 hashnum 个最大哈希值计算最大哈希。
该函数区分大小写。
可与 tupleHammingDistance 配合使用,以检测半重复字符串。
对于两个字符串,如果两者返回的哈希值相同,则这两个字符串相同。
语法
string— 要计算哈希的 String。Stringngramsize— 可选。n-gram 的大小,可为1到25的任意数值。默认值为3。UInt8hashnum— 可选。用于计算结果的最小哈希和最大哈希的数量,可为1到25的任意数值。默认值为6。UInt8
Tuple
示例
使用示例
Query
Response
ngramSimHash
引入版本:v21.1.0 将 ASCII 字符串拆分为由ngramsize 个符号组成的 n-gram,并返回这些 n-gram 的 simhash。
可结合 bitHammingDistance 用于检测近似重复字符串。
两个字符串计算得到的 simhashes 的 Hamming 距离 越小,这两个字符串越可能相同。
语法
UInt64
示例
使用示例
Query
Response
ngramSimHashCaseInsensitive
引入版本:v21.1.0 将 ASCII 字符串拆分为由ngramsize 个符号组成的 n-gram,并返回该 n-gram 的 simhash。
它不区分大小写。
可结合 bitHammingDistance 用于检测半重复字符串。
两个字符串计算得到的 simhashes 的 Hamming 距离 越小,这些字符串就越可能相同。
语法
UInt64
示例
使用示例
Query
Response
ngramSimHashCaseInsensitiveUTF8
引入版本:v21.1.0 将 UTF-8 字符串按ngramsize 个符号切分为 n-gram,并返回这些 n-gram 的 simhash。
该函数不区分大小写。
可结合 bitHammingDistance 用于检测半重复字符串。两个字符串计算出的 simhashes 的 Hamming 距离 越小,这些字符串就越可能相同。
语法
UInt64
示例
使用示例
Query
Response
ngramSimHashUTF8
引入版本:v21.1.0 将一个 UTF-8 编码的字符串按ngramsize 个符号切分为 n-grams,并返回这些 n-gram 的 simhash。
该函数区分大小写。
可结合 bitHammingDistance 用于检测近似重复字符串。
两个字符串计算得到的 simhashes 的 Hamming 距离 越小,这些字符串就越有可能相同。
语法
UInt64
示例
使用示例
Query
Response
sipHash128
引入版本:v1.1.0 与sipHash64 类似,但会生成 128 位哈希值,即最终的异或折叠状态会一直处理到 128 位。
语法
arg1[, arg2, ...]— 用于计算哈希值的数量可变的输入参数。Any
SipHash 哈希值。FixedString(16)
示例
使用示例
Query
Response
sipHash128Keyed
引入版本:v23.2.0 与sipHash128 相同,但会额外接受一个显式指定的密钥参数,而不是使用固定密钥。
语法
(k0, k1)— 由两个 UInt64 值组成、表示密钥的 Tuple。Tuple(UInt64, UInt64)arg1[, arg2, ...]— 用于计算哈希的数量可变的输入参数。Any
SipHash 哈希值。FixedString(16)
示例
使用示例
Query
Response
sipHash128Reference
引入版本:v23.2.0 与sipHash128 类似,但实现了由 SipHash 原作者提出的 128 位算法。
语法
arg1[, arg2, ...]— 用于计算哈希值的数量可变的输入参数。Any
SipHash 哈希值。FixedString(16)
示例
使用示例
Query
Response
sipHash128ReferenceKeyed
引入版本:v23.2.0 与sipHash128Reference 相同,但会额外接受一个显式指定的密钥参数,而不是使用固定密钥。
语法
(k0, k1)— 由两个值组成、表示密钥的 Tuple。Tuple(UInt64, UInt64)arg1[, arg2, ...]— 用于计算哈希的可变数量输入参数。Any
SipHash 哈希值。FixedString(16)
示例
使用示例
Query
Response
sipHash64
引入版本:v1.1.0 生成 64 位的 SipHash 哈希值。 这是一种加密哈希函数。它的运行速度至少比MD5 哈希函数快 3 倍。
该函数会将所有输入参数都解释为字符串,并分别计算每个参数的哈希值。
然后,它会使用以下算法组合这些哈希值:
- 将第一个和第二个哈希值拼接为一个数组,并对其进行哈希计算。
- 将前一步计算出的哈希值与第三个输入参数的哈希值,按类似方式再次进行哈希计算。
- 对原始输入中其余所有哈希值重复这一计算过程。
对于参数类型不同但输入值相同的情况,计算出的哈希值可能相同。
例如,这会影响不同大小的整数类型、具有相同数据的具名和匿名
Tuple,以及具有相同数据的 Map 和对应的 Array(Tuple(key, value)) 类型。arg1[, arg2, ...]— 可变数量的输入参数。Any
UInt64
示例
用法示例
Query
Response
sipHash64Keyed
引入版本:v23.2.0 与sipHash64 类似,但它额外接受一个显式指定的 密钥 参数,而不是使用固定密钥。
语法
(k0, k1)— 由两个值组成、用于表示密钥的 Tuple。Tuple(UInt64, UInt64)arg1[,arg2, ...]— 数量可变的输入参数。Any
UInt64
示例
用法示例
Query
Response
wordShingleMinHash
引入版本:v21.1.0 将 ASCII 字符串拆分成由shinglesize 个单词组成的多个部分 (分区片段) ,计算每个单词分区片段的哈希值,并返回包含这些哈希值的元组。
使用 hashnum 个最小哈希值来计算最小哈希,使用 hashnum 个最大哈希值来计算最大哈希。
该函数区分大小写。
可借助 tupleHammingDistance 检测近似重复字符串。
对于两个字符串,如果两者返回的哈希值相同,则这两个字符串相同。
语法
string— 要计算其哈希值的字符串。Stringshinglesize— 可选。分区片段的大小,可为1到25之间的任意数值。默认值为3。UInt8hashnum— 可选。用于计算结果的最小和最大哈希值数量,可为1到25之间的任意数值。默认值为6。UInt8
Tuple(UInt64, UInt64)
示例
使用示例
Query
Response
wordShingleMinHashArg
引入版本:v1.1.0 将一个 ASCII 字符串拆分为若干部分 (shingles) ,每个部分包含shinglesize 个单词,并返回在相同输入下由 wordShingleMinHash 函数计算得到的单词哈希值最小和最大的 shingles。
它区分大小写。
语法
string— 要计算哈希的 String。Stringshinglesize— 可选。分区片段的大小,取值范围为1到25。默认值为3。UInt8hashnum— 可选。用于计算结果的最小哈希和最大哈希的数量,取值范围为1到25。默认值为6。UInt8
hashnum 个分区片段。Tuple(Tuple(String))
示例
使用示例
Query
Response
wordShingleMinHashArgCaseInsensitive
引入版本:v21.1.0 将 ASCII 字符串按每shinglesize 个单词切分为若干部分 (shingles) ,并返回在相同输入下由 wordShingleMinHashCaseInsensitive 函数计算出的单词哈希值最小和最大的 shingles。
该函数不区分大小写。
语法
string— 要计算哈希的字符串。Stringshinglesize— 可选。分区片段的大小,取值范围为1到25。默认值为3。UInt8hashnum— 可选。用于计算结果的最小和最大哈希的数量,取值范围为1到25。默认值为6。UInt8
hashnum 个分区片段。 Tuple(Tuple(String))
示例
使用示例
Query
Response
wordShingleMinHashArgCaseInsensitiveUTF8
引入于:v21.1.0 将 UTF-8 字符串按每shinglesize 个单词切分为若干部分 (shingles) ,并返回在相同输入下由 wordShingleMinHashCaseInsensitiveUTF8 函数计算出的单词哈希值最小和最大的 shingles。
它不区分大小写。
语法
string— 要计算哈希的 String。Stringshinglesize— 可选。单个分区片段的大小,可为1到25之间的任意数值。默认值为3。UInt8hashnum— 可选。用于计算结果的最小哈希值和最大哈希值的数量,可为1到25之间的任意数值。默认值为6。UInt8
hashnum 个分区片段。Tuple(Tuple(String))
示例
使用示例
Query
Response
wordShingleMinHashArgUTF8
引入版本:v21.1.0 将一个 UTF-8 字符串按每shinglesize 个单词切分为若干部分 (shingles) ,并返回在相同输入下由 wordShingleMinHashUTF8 函数计算出的单词哈希值最小和最大的 shingles。
它区分大小写。
语法
string— 要计算哈希的 String。Stringshinglesize— 可选。分区片段的大小,可为1到25之间的任意数值。默认值为3。UInt8hashnum— 可选。用于计算结果的最小哈希和最大哈希的数量,可为1到25之间的任意数值。默认值为6。UInt8
hashnum 个分区片段。Tuple(Tuple(String))
示例
使用示例
Query
Response
wordShingleMinHashCaseInsensitive
引入版本:v21.1.0 将 ASCII 字符串按每shinglesize 个单词一组拆分为多个分区片段,计算每个分区片段的哈希值,并返回一个包含这些哈希值的元组。
使用 hashnum 个最小哈希值计算最小哈希,使用 hashnum 个最大哈希值计算最大哈希。
它不区分大小写。
可用于通过 tupleHammingDistance 检测近似重复字符串。
对于两个字符串,如果两者返回的哈希值相同,则这两个字符串相同。
语法
string— 用于计算哈希的字符串。Stringshinglesize— 可选。分区片段的大小,取值范围为1到25。默认值为3。UInt8hashnum— 可选。用于计算结果的最小和最大哈希数量,取值范围为1到25。默认值为6。UInt8
Tuple(UInt64, UInt64)
示例
用法示例
Query
Response
wordShingleMinHashCaseInsensitiveUTF8
引入版本:v21.1.0 将一个 UTF-8 字符串拆分为由shinglesize 个单词组成的分区片段 (shingles) ,计算每个分区片段的哈希值,并返回一个包含这些哈希的 Tuple。
使用 hashnum 个最小哈希值计算最小哈希,使用 hashnum 个最大哈希值计算最大哈希。
该函数不区分大小写。
可结合 tupleHammingDistance 用于检测半重复字符串。
对于两个字符串,如果两者返回的哈希相同,则这两个字符串相同。
语法
string— 用于计算哈希的字符串。Stringshinglesize— 可选。分区片段的大小,取值范围为1到25。默认值为3。UInt8hashnum— 可选。用于计算结果的最小和最大哈希值个数,取值范围为1到25。默认值为6。UInt8
Tuple(UInt64, UInt64)
示例
使用示例
Query
Response
wordShingleMinHashUTF8
引入版本:v21.1.0 将 UTF-8 字符串拆分为由shinglesize 个单词组成的片段 (分区片段) ,计算每个分区片段的哈希值,并返回包含这些哈希值的元组。
使用 hashnum 个最小哈希值来计算最小哈希,使用 hashnum 个最大哈希值来计算最大哈希。
该函数区分大小写。
可结合 tupleHammingDistance 使用,以检测近似重复字符串。
对于两个字符串,如果返回的哈希值在两者中都相同,则这两个字符串相同。
语法
string— 要计算其哈希值的字符串。Stringshinglesize— 可选。词分区片段的大小,可为1到25之间的任意数值。默认值为3。UInt8hashnum— 可选。用于计算结果的最小哈希和最大哈希的数量,可为1到25之间的任意数值。默认值为6。UInt8
Tuple(UInt64, UInt64)
示例
使用示例
Query
Response
wordShingleSimHash
引入版本:v21.1.0 将 ASCII 字符串拆分为由shinglesize 个单词组成的分区片段 (shingles) ,并返回这些分区片段的 simhash。
该函数区分大小写。
可结合 bitHammingDistance 用于检测近似重复字符串。
两个字符串计算得到的 simhashes 的 Hamming 距离 越小,这些字符串就越可能相同。
语法
UInt64
示例
用法示例
Query
Response
wordShingleSimHashCaseInsensitive
引入版本:v21.1.0 将 ASCII 字符串按shinglesize 个单词拆分为若干部分 (shingles) ,并返回这些词分区片段的 simhash。
它不区分大小写。
可与 bitHammingDistance 结合使用,以检测近似重复字符串。
两个字符串计算得到的 simhash 的 Hamming 距离 越小,这些字符串相同的可能性就越大。
语法
UInt64
示例
使用示例
Query
Response
wordShingleSimHashCaseInsensitiveUTF8
引入版本:v1.1.0 将 UTF-8 编码的字符串拆分为由shinglesize 个单词组成的多个片段 (shingles) ,并返回这些词分区片段的 simhash。
此函数不区分大小写。
可与 bitHammingDistance 配合使用,以检测近似重复字符串。
两个字符串计算得到的 simhashes 的 Hamming 距离 越小,它们越有可能相同。
语法
UInt64
示例
使用示例
Query
Response
wordShingleSimHashUTF8
引入版本:v21.1.0 将 UTF-8 字符串按每shinglesize 个单词拆分为若干部分 (shingles) ,并返回单词分区片段的 simhash。
它区分大小写。
可与 bitHammingDistance 结合使用,以检测近似重复字符串。
两个字符串计算得到的 simhashes 的 Hamming 距离 越小,这两个字符串越可能相同。
语法
UInt64
示例
用法示例
Query
Response
wyHash64
引入版本:v22.7.0 计算 wyHash64 的 64 位哈希值。 语法arg— 要计算哈希的 String 参数。String
UInt64
示例
使用示例
Query
Response
xxHash32
引入版本:v20.1.0 计算字符串的 xxHash 哈希值。 64 位版本参见xxHash64
语法
arg— 要计算哈希值的输入字符串。String
UInt32
示例
用法示例
Query
Response
xxHash64
引入版本:v20.1.0 计算字符串的 xxHash 哈希值。 32 位版本请参见xxHash32
语法
arg— 要计算哈希值的输入字符串。String
UInt64
示例
使用示例
Query
Response
xxHash64Spark
引入版本:v26.7.0 使用与 Spark 相同的 seed 对字符串计算 xxHash。 该函数与xxHash64 相同,但使用 seed 42,并以 Int64 返回结果。
仅支持 String 和 NULL 类型的输入。
对于 NULL,该函数返回 42,与 Spark 的 seed 行为保持一致。
语法
arg— 要进行哈希计算的输入字符串。String
Int64
示例
用法示例
Query
Response
xxh3
引入版本:v22.12.0 计算 XXH3 的 64 位哈希值。 语法expr— 任意数据类型的表达式列表。Any
xxh3 哈希值 UInt64
示例
使用示例
Query
Response
xxh3_128
引入版本:v26.2.0 计算 XXH3 的 128 位哈希值。 语法expr— 任意数据类型的表达式列表。Any
xxh3 哈希值 UInt128
示例
使用示例
Query
Response