NULL 的哈希值为 NULL。要获取 Nullable 列的非 NULL 哈希值,请将其包装在 tuple 中:
要计算整个表内容的哈希值,请使用
sum(cityHash64(tuple(*))) (或其他哈希函数) 。tuple 可确保包含 NULL 值的行不会被跳过。sum 可确保行的顺序不会影响结果。BLAKE3
message— 要进行哈希运算的输入字符串。String
FixedString(32)
示例
hash
Query
Response
MD4
s— 要计算哈希的输入字符串。String
FixedString(16)
示例
使用示例
Query
Response
MD5
s— 待计算哈希的输入字符串。String
FixedString(16)
示例
使用示例
Query
Response
RIPEMD160
s— 要计算哈希的输入字符串。String
FixedString(20)
示例
使用示例
Query
Response
SHA1
s— 要进行哈希计算的输入字符串String
FixedString(20)
示例
使用示例
Query
Response
SHA224
s— 要哈希的输入值。String
FixedString(28)
示例
使用示例
Query
Response
SHA256
s— 要计算哈希的输入字符串。String
FixedString(32)
示例
使用示例
Query
Response
SHA384
s— 要进行哈希计算的输入字符串。String
FixedString(48)
示例
使用示例
Query
Response
SHA512
s— 要哈希的输入字符串String
FixedString(64)
示例
使用示例
Query
Response
SHA512_256
s— 要计算哈希的输入字符串。String
FixedString(32)
示例
用法示例
Query
Response
URLHash
语法
url 的哈希计算结果。UInt64
示例
用法示例
Query
Response
Query
Response
cityHash64
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
Fingerprint64 方法生成 64 位的 FarmHash 值。
对于参数类型不同但输入值相同的情况,计算出的哈希值可能相同。
例如,这会影响不同大小的整数类型、具有相同数据的具名和非具名
Tuple,以及具有相同数据的 Map 和对应的 Array(Tuple(key, value)) 类型。arg1[, arg2, ...]— 用于计算哈希值的可变数量输入参数。Any
UInt64
示例
用法示例
Query
Response
farmHash64
Hash64 方法生成 64 位 FarmHash 值。
对于参数类型不同但输入值相同的情况,计算得到的哈希值可能相同。
例如,不同位宽的整数类型、数据相同的具名与非具名
Tuple,以及数据相同的 Map 与对应的 Array(Tuple(key, value)) 类型都会受到影响。arg1[, arg2, ...]— 要计算哈希的输入参数,数量可变。Any
UInt64
示例
使用示例
Query
Response
gccMurmurHash
arg1[, arg2, ...]— 要计算哈希的可变数量参数。Any
UInt64
示例
使用示例
Query
Response
halfMD5
sipHash64 函数。
该函数接受数量可变的输入参数。
参数可以是任意受支持的数据类型。
对于某些数据类型,即使参数类型不同,相同的值计算出的哈希值也可能相同 (例如不同大小的整数、包含相同数据的命名和未命名 Tuple,以及包含相同数据的 Map 和对应的 Array(Tuple(key, value)) 类型) 。
语法
arg1[, arg2, ..., argN]— 用于计算哈希的数量可变的参数。Any
UInt64 形式表示。UInt64
示例
使用示例
Query
Response
hiveHash
JavaHash。
在 3.0 之前的版本中,Apache Hive 使用此函数。
语法
arg— 要计算哈希的输入字符串。String
Int32
示例
使用示例
Query
Response
icebergHash
Int32
示例
示例
Query
Response
intHash32
arg— 要计算哈希值的整数。(U)Int*
UInt32
示例
用法示例
Query
Response
intHash64
intHash32 还快) ,但不是加密哈希函数。
语法
int— 要计算哈希的整数。(U)Int*
UInt64
示例
使用示例
Query
Response
javaHash
Java 仅支持计算有符号整数的哈希,
因此,如果你想计算无符号整数的哈希,必须先将它们转换为相应的有符号 ClickHouse 类型。
arg— 要进行哈希计算的输入值。Any
arg 的计算哈希值 Int32
示例
使用示例 1
Query
Response
Query
Response
javaHashUTF16LE
arg— 采用 UTF-16LE 编码的字符串。String
Int32
示例
用法示例
Query
Response
jumpConsistentHash
Int32
示例
使用示例
Query
Response
kafkaMurmurHash
arg1[, arg2, ...]— 用于计算哈希的可变数量的参数。Any
UInt32
示例
使用示例
Query
Response
keccak256
message— 要进行哈希计算的输入字符串。String
FixedString(32)
示例
使用示例
Query
Response
kostikConsistentHash
n <= 32768 时才高效。
Syntax
yandexConsistentHash
参数
返回值
返回计算得到的哈希值。UInt16
示例
使用示例
Query
Response
metroHash64
对于不同参数类型中相同的输入值,计算出的哈希值可能相同。
例如,这会影响不同位宽的整数类型、数据相同的具名和非具名
Tuple,以及数据相同的 Map 和对应的 Array(Tuple(key, value)) 类型。arg1[, arg2, ...]— 用于计算哈希的可变数量输入参数。Any
UInt64
示例
使用示例
Query
Response
murmurHash2_32
对于数值相同但参数类型不同的输入,计算得到的哈希值可能相同。
例如,这会影响不同位宽的整数类型、数据相同的具名和非具名
Tuple,以及数据相同的 Map 和对应的 Array(Tuple(key, value)) 类型。arg1[, arg2, ...]— 用于计算哈希的可变数量的输入参数。Any
UInt32
示例
用法示例
Query
Response
murmurHash2_64
对于参数类型不同但输入值相同的情况,计算出的哈希值可能相同。
例如,这会影响不同位宽的整数类型、数据相同的具名和非具名
Tuple,以及数据相同的 Map 与对应的 Array(Tuple(key, value)) 类型。arg1[, arg2, ...]— 用于计算哈希的输入参数,数量可变。Any
UInt64
示例
使用示例
Query
Response
murmurHash3_128
arg1[, arg2, ...]— 用于计算哈希的可变数量输入参数。Any
MurmurHash3 哈希值。FixedString(16)
示例
使用示例
Query
Response
murmurHash3_32
对于 argument 类型不同但输入值相同的情况,计算出的哈希值可能会相同。
例如,这会影响不同大小的整数类型、数据相同的具名和非具名
Tuple,以及数据相同的 Map 与对应的 Array(Tuple(key, value)) 类型。arg1[, arg2, ...]— 用于计算哈希的数量可变的输入参数。Any
UInt32
示例
使用示例
Query
Response
murmurHash3_64
对于参数类型不同但输入值相同的情况,计算得到的哈希值可能相同。
例如,这会影响不同位宽的整数类型、数据相同的具名和非具名
Tuple,以及数据相同的 Map 与对应的 Array(Tuple(key, value)) 类型。arg1[, arg2, ...]— 用于计算哈希的可变数量输入参数。Any
UInt64
示例
用法示例
Query
Response
ngramMinHash
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
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
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
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
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
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
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
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
ngramsize 个符号组成的 n-gram,并返回这些 n-gram 的 simhash。
可结合 bitHammingDistance 用于检测近似重复字符串。
两个字符串计算得到的 simhashes 的 Hamming 距离 越小,这两个字符串越可能相同。
语法
UInt64
示例
使用示例
Query
Response
ngramSimHashCaseInsensitive
ngramsize 个符号组成的 n-gram,并返回该 n-gram 的 simhash。
它不区分大小写。
可结合 bitHammingDistance 用于检测半重复字符串。
两个字符串计算得到的 simhashes 的 Hamming 距离 越小,这些字符串就越可能相同。
语法
UInt64
示例
使用示例
Query
Response
ngramSimHashCaseInsensitiveUTF8
ngramsize 个符号切分为 n-gram,并返回这些 n-gram 的 simhash。
该函数不区分大小写。
可结合 bitHammingDistance 用于检测半重复字符串。两个字符串计算出的 simhashes 的 Hamming 距离 越小,这些字符串就越可能相同。
语法
UInt64
示例
使用示例
Query
Response
ngramSimHashUTF8
ngramsize 个符号切分为 n-grams,并返回这些 n-gram 的 simhash。
该函数区分大小写。
可结合 bitHammingDistance 用于检测近似重复字符串。
两个字符串计算得到的 simhashes 的 Hamming 距离 越小,这些字符串就越有可能相同。
语法
UInt64
示例
使用示例
Query
Response
sipHash128
sipHash64 类似,但会生成 128 位哈希值,即最终的异或折叠状态会一直处理到 128 位。
语法
arg1[, arg2, ...]— 用于计算哈希值的可变数量输入参数。Any
SipHash 哈希值。FixedString(16)
示例
使用示例
Query
Response
sipHash128Keyed
sipHash128 相同,但会额外接受一个显式指定的密钥参数,而不是使用固定密钥。
语法
(k0, k1)— 由两个 UInt64 值组成、表示键的 Tuple。Tuple(UInt64, UInt64)arg1[, arg2, ...]— 用于计算哈希的数量可变的输入参数。Any
SipHash 哈希值。FixedString(16)
示例
使用示例
Query
Response
sipHash128Reference
sipHash128 类似,但实现了由 SipHash 原作者提出的 128 位算法。
语法
arg1[, arg2, ...]— 用于计算哈希值的可变数量输入参数。Any
SipHash 哈希值。FixedString(16)
示例
使用示例
Query
Response
sipHash128ReferenceKeyed
sipHash128Reference 相同,但会额外接受一个显式指定的密钥参数,而不是使用固定密钥。
语法
(k0, k1)— 由两个值组成、表示密钥的 Tuple。Tuple(UInt64, UInt64)arg1[, arg2, ...]— 用于计算哈希的可变数量输入参数。Any
SipHash 哈希值。FixedString(16)
示例
使用示例
Query
Response
sipHash64
MD5 哈希函数快 3 倍。
该函数会将所有输入参数都解释为字符串,并分别计算每个参数的哈希值。
然后,它会使用以下算法组合这些哈希值:
- 将第一个和第二个哈希值拼接为一个数组,并对其进行哈希计算。
- 将前一步计算出的哈希值与第三个输入参数的哈希值,按类似方式再次进行哈希计算。
- 对原始输入中其余所有哈希值重复这一计算过程。
对于参数类型不同但输入值相同的情况,计算出的哈希值可能相同。
例如,这会影响不同大小的整数类型、具有相同数据的具名和匿名
Tuple,以及具有相同数据的 Map 和对应的 Array(Tuple(key, value)) 类型。arg1[, arg2, ...]— 可变数量的输入参数。Any
UInt64
示例
用法示例
Query
Response
sipHash64Keyed
sipHash64 类似,但它额外接受一个显式指定的 密钥 参数,而不是使用固定密钥。
语法
(k0, k1)— 由两个值组成、用于表示密钥的 Tuple。Tuple(UInt64, UInt64)arg1[,arg2, ...]— 数量可变的输入参数。Any
UInt64
示例
用法示例
Query
Response
wordShingleMinHash
shinglesize 个单词组成的多个部分 (分区片段) ,计算每个单词分区片段的哈希值,并返回包含这些哈希值的元组。
使用 hashnum 个最小哈希值来计算最小哈希,使用 hashnum 个最大哈希值来计算最大哈希。
该函数区分大小写。
可借助 tupleHammingDistance 检测近似重复字符串。
对于两个字符串,如果两者返回的哈希值相同,则这两个字符串相同。
语法
string— 要计算其哈希值的字符串。Stringshinglesize— 可选。分区片段的大小,可为1到25之间的任意数值。默认值为3。UInt8hashnum— 可选。用于计算结果的最小和最大哈希值数量,可为1到25之间的任意数值。默认值为6。UInt8
Tuple(UInt64, UInt64)
示例
使用示例
Query
Response
wordShingleMinHashArg
shinglesize 个单词,并返回在相同输入下由 wordShingleMinHash 函数计算得到的单词哈希值最小和最大的 shingles。
它区分大小写。
语法
string— 要计算哈希的 String。Stringshinglesize— 可选。分区片段的大小,取值范围为1到25。默认值为3。UInt8hashnum— 可选。用于计算结果的最小哈希和最大哈希的数量,取值范围为1到25。默认值为6。UInt8
hashnum 个分区片段。Tuple(Tuple(String))
示例
使用示例
Query
Response
wordShingleMinHashArgCaseInsensitive
shinglesize 个单词切分为若干部分 (shingles) ,并返回在相同输入下由 wordShingleMinHashCaseInsensitive 函数计算出的单词哈希值最小和最大的 shingles。
该函数不区分大小写。
语法
string— 要计算哈希的字符串。Stringshinglesize— 可选。分区片段的大小,取值范围为1到25。默认值为3。UInt8hashnum— 可选。用于计算结果的最小和最大哈希的数量,取值范围为1到25。默认值为6。UInt8
hashnum 个分区片段。 Tuple(Tuple(String))
示例
使用示例
Query
Response
wordShingleMinHashArgCaseInsensitiveUTF8
shinglesize 个单词切分为若干部分 (shingles) ,并返回在相同输入下由 wordShingleMinHashCaseInsensitiveUTF8 函数计算出的单词哈希值最小和最大的 shingles。
它不区分大小写。
语法
string— 要计算哈希的 String。Stringshinglesize— 可选。单个分区片段的大小,可为1到25之间的任意数值。默认值为3。UInt8hashnum— 可选。用于计算结果的最小哈希值和最大哈希值的数量,可为1到25之间的任意数值。默认值为6。UInt8
hashnum 个分区片段。Tuple(Tuple(String))
示例
使用示例
Query
Response
wordShingleMinHashArgUTF8
shinglesize 个单词切分为若干部分 (shingles) ,并返回在相同输入下由 wordShingleMinHashUTF8 函数计算出的单词哈希值最小和最大的 shingles。
它区分大小写。
语法
string— 要计算哈希的 String。Stringshinglesize— 可选。分区片段的大小,可为1到25之间的任意数值。默认值为3。UInt8hashnum— 可选。用于计算结果的最小哈希和最大哈希的数量,可为1到25之间的任意数值。默认值为6。UInt8
hashnum 个分区片段。Tuple(Tuple(String))
示例
使用示例
Query
Response
wordShingleMinHashCaseInsensitive
shinglesize 个单词一组拆分为多个分区片段,计算每个分区片段的哈希值,并返回一个包含这些哈希值的元组。
使用 hashnum 个最小哈希值计算最小哈希,使用 hashnum 个最大哈希值计算最大哈希。
它不区分大小写。
可用于通过 tupleHammingDistance 检测近似重复字符串。
对于两个字符串,如果两者返回的哈希值相同,则这两个字符串相同。
语法
string— 用于计算哈希的字符串。Stringshinglesize— 可选。分区片段的大小,取值范围为1到25。默认值为3。UInt8hashnum— 可选。用于计算结果的最小和最大哈希数量,取值范围为1到25。默认值为6。UInt8
Tuple(UInt64, UInt64)
示例
用法示例
Query
Response
wordShingleMinHashCaseInsensitiveUTF8
shinglesize 个单词组成的分区片段 (shingles) ,计算每个分区片段的哈希值,并返回一个包含这些哈希的 Tuple。
使用 hashnum 个最小哈希值计算最小哈希,使用 hashnum 个最大哈希值计算最大哈希。
该函数不区分大小写。
可结合 tupleHammingDistance 用于检测半重复字符串。
对于两个字符串,如果两者返回的哈希相同,则这两个字符串相同。
语法
string— 用于计算哈希的字符串。Stringshinglesize— 可选。分区片段的大小,取值范围为1到25。默认值为3。UInt8hashnum— 可选。用于计算结果的最小和最大哈希值个数,取值范围为1到25。默认值为6。UInt8
Tuple(UInt64, UInt64)
示例
使用示例
Query
Response
wordShingleMinHashUTF8
shinglesize 个单词组成的片段 (分区片段) ,计算每个分区片段的哈希值,并返回包含这些哈希值的元组。
使用 hashnum 个最小哈希值来计算最小哈希,使用 hashnum 个最大哈希值来计算最大哈希。
该函数区分大小写。
可结合 tupleHammingDistance 使用,以检测近似重复字符串。
对于两个字符串,如果返回的哈希值在两者中都相同,则这两个字符串相同。
语法
string— 要计算其哈希值的字符串。Stringshinglesize— 可选。词分区片段的大小,可为1到25之间的任意数值。默认值为3。UInt8hashnum— 可选。用于计算结果的最小哈希和最大哈希的数量,可为1到25之间的任意数值。默认值为6。UInt8
Tuple(UInt64, UInt64)
示例
使用示例
Query
Response
wordShingleSimHash
shinglesize 个单词组成的分区片段 (shingles) ,并返回这些分区片段的 simhash。
该函数区分大小写。
可结合 bitHammingDistance 用于检测近似重复字符串。
两个字符串计算得到的 simhashes 的 Hamming 距离 越小,这些字符串就越可能相同。
语法
UInt64
示例
用法示例
Query
Response
wordShingleSimHashCaseInsensitive
shinglesize 个单词拆分为若干部分 (shingles) ,并返回这些词分区片段的 simhash。
它不区分大小写。
可与 bitHammingDistance 结合使用,以检测近似重复字符串。
两个字符串计算得到的 simhash 的 Hamming 距离 越小,这些字符串相同的可能性就越大。
语法
UInt64
示例
使用示例
Query
Response
wordShingleSimHashCaseInsensitiveUTF8
shinglesize 个单词组成的多个片段 (shingles) ,并返回这些词分区片段的 simhash。
此函数不区分大小写。
可与 bitHammingDistance 配合使用,以检测近似重复字符串。
两个字符串计算得到的 simhashes 的 Hamming 距离 越小,它们越有可能相同。
语法
UInt64
示例
使用示例
Query
Response
wordShingleSimHashUTF8
shinglesize 个单词拆分为若干部分 (shingles) ,并返回单词分区片段的 simhash。
它区分大小写。
可与 bitHammingDistance 结合使用,以检测近似重复字符串。
两个字符串计算得到的 simhashes 的 Hamming 距离 越小,这两个字符串越可能相同。
语法
UInt64
示例
用法示例
Query
Response
wyHash64
arg— 要计算哈希的 String 参数。String
UInt64
示例
使用示例
Query
Response
xxHash32
xxHash64
语法
arg— 要计算哈希值的输入字符串。String
UInt32
示例
用法示例
Query
Response
xxHash64
xxHash32
语法
arg— 要计算哈希值的输入字符串。String
UInt64
示例
使用示例
Query
Response
xxh3
expr— 任意数据类型的表达式列表。Any
xxh3 哈希值 UInt64
示例
使用示例
Query
Response
xxh3_128
expr— 任意数据类型的表达式列表。Any
xxh3 哈希值 UInt128
示例
使用示例
Query
Response