哈希函数
哈希函数可用于确定性的伪随机打乱元素。
Simhash 是一种哈希函数,它为相近(相似)的参数返回相近的哈希值。
大多数哈希函数接受任意类型的任意数量的参数。
NULL 的哈希值为 NULL。要获取可为空列的非 NULL 哈希值,请将其包装在元组中
要计算表中所有内容的哈希值,请使用 sum(cityHash64(tuple(*)))(或其他哈希函数)。tuple 确保不跳过包含 NULL 值的行。sum 确保行的顺序无关紧要。
BLAKE3
引入于:v22.10
计算 BLAKE3 哈希字符串,并返回结果字节集为 FixedString。此加密哈希函数通过 BLAKE3 Rust 库集成到 ClickHouse 中。该函数速度较快,与 SHA-2 相比,性能提高了大约两倍,同时生成与 SHA-256 相同长度的哈希值。它返回一个类型为 FixedString(32) 的字节数组形式的 BLAKE3 哈希值。
语法
参数
message— 要哈希的输入字符串。String
返回值
返回输入字符串的 32 字节 BLAKE3 哈希值,作为固定长度的字符串。 FixedString(32)
示例
hash
MD4
引入于:v21.11
计算给定字符串的 MD4 哈希值。
语法
参数
s— 要哈希的输入字符串。String
返回值
返回给定输入字符串的 MD4 哈希值,作为固定长度的字符串。 FixedString(16)
示例
使用示例
MD5
引入于:v1.1
计算给定字符串的 MD5 哈希值。
语法
参数
s— 要哈希的输入字符串。String
返回值
返回给定输入字符串的 MD5 哈希值,作为固定长度的字符串。 FixedString(16)
示例
使用示例
RIPEMD160
引入于:v24.10
计算给定字符串的 RIPEMD-160 哈希值。
语法
参数
s— 要哈希的输入字符串。String
返回值
返回给定输入字符串的 RIPEMD160 哈希值,作为固定长度的字符串。 FixedString(20)
示例
使用示例
SHA1
引入于:v1.1
计算给定字符串的 SHA1 哈希值。
语法
参数
s— 要哈希的输入字符串String
返回值
返回给定输入字符串的 SHA1 哈希值,作为固定长度的字符串。 FixedString(20)
示例
使用示例
SHA224
引入于:v1.1
计算给定字符串的 SHA224 哈希值。
语法
参数
s— 要哈希的输入值。String
返回值
返回给定输入字符串的 SHA224 哈希值,作为固定长度的字符串。 FixedString(28)
示例
使用示例
SHA256
引入于:v1.1
计算给定字符串的 SHA256 哈希值。
语法
参数
s— 要哈希的输入字符串。String
返回值
返回给定输入字符串的 SHA256 哈希值,作为固定长度的字符串。 FixedString(32)
示例
使用示例
SHA384
引入于:v1.1
计算给定字符串的 SHA384 哈希值。
语法
参数
s— 要哈希的输入字符串。String
返回值
返回给定输入字符串的 SHA384 哈希值,作为固定长度的字符串。 FixedString(48)
示例
使用示例
SHA512
引入于:v1.1
计算给定字符串的 SHA512 哈希值。
语法
参数
s— 要哈希的输入字符串String
返回值
返回给定输入字符串的 SHA512 哈希值,作为固定长度的字符串。 FixedString(64)
示例
使用示例
SHA512_256
引入于:v1.1
计算给定字符串的 SHA512_256 哈希值。
语法
参数
s— 要哈希的输入字符串。String
返回值
返回给定输入字符串的 SHA512_256 哈希值,作为固定长度的字符串。 FixedString(32)
示例
使用示例
URLHash
引入于:v1.1
一种快速、质量尚可的非加密哈希函数,用于使用某种类型的规范化从 URL 获得的字符串。
此哈希函数有两种模式
| 模式 | 描述 |
|---|---|
URLHash(url) | 计算字符串的哈希值,不包含结尾的 /、? 或 # 符号(如果存在)。 |
URLHash(url, N) | 计算 URL 层次结构中第 N 级的字符串的哈希值,不包含结尾的 /、? 或 # 符号(如果存在)。级别与 URLHierarchy 相同。 |
语法
参数
返回值
返回 url 的计算哈希值。 UInt64
示例
使用示例
具有指定级别的 URL 哈希值
cityHash64
引入于:v1.1
生成一个 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
示例
调用示例
以行顺序的精度计算整个表的校验和
farmFingerprint64
引入于:v20.12
使用 Fingerprint64 方法生成一个 64 位的 FarmHash 值。
与 farmHash64 相比,farmFingerprint64 更适合用于稳定和可移植的值。
对于相同输入值,不同参数类型计算出的哈希值可能相同。这会影响例如不同大小的整数类型、具有相同数据的命名和未命名的 Tuple、以及具有相同数据的 Map 和相应的 Array(Tuple(key, value)) 类型。
语法
参数
arg1[, arg2, ...]— 用于计算哈希值的变量数量的输入参数。Any
返回值
返回输入参数的计算哈希值。 UInt64
示例
使用示例
farmHash64
引入于:v1.1
使用 Hash64 方法生成一个 64 位的 FarmHash。
farmFingerprint64 更适合用于稳定和可移植的值。
对于相同输入值,不同参数类型计算出的哈希值可能相同。这会影响例如不同大小的整数类型、具有相同数据的命名和未命名的 Tuple、以及具有相同数据的 Map 和相应的 Array(Tuple(key, value)) 类型。
语法
参数
arg1[, arg2, ...]— 用于计算哈希值的变量数量的输入参数。Any
返回值
返回输入参数的计算哈希值。 UInt64
示例
使用示例
gccMurmurHash
引入于: v20.1
使用与 GCC 相同的种子计算输入值的 64 位 MurmurHash2 哈希值。
它在 Clang 和 GCC 构建之间具有可移植性。
语法
参数
arg1[, arg2, ...]— 用于计算哈希值的变量数量的参数。Any
返回值
返回输入参数的计算哈希值。 UInt64
示例
使用示例
halfMD5
引入于:v1.1
将 所有输入参数解释为字符串,并为每个参数计算 MD5 哈希值。然后组合哈希值,获取结果字符串哈希值的前 8 个字节,并以大端字节序解释它们为 UInt64。该函数相对较慢(每个处理器核心每秒 500 万个短字符串)。
请考虑使用 sipHash64 函数代替。
该函数接受变量数量的输入参数。参数可以是任何受支持的数据类型。对于某些数据类型,即使参数类型不同,计算出的哈希函数值也可能相同(不同大小的整数、具有相同数据的命名和未命名的 Tuple、具有相同数据的 Map 和相应的 Array(Tuple(key, value)) 类型)。
语法
参数
arg1[, arg2, ..., argN]— 用于计算哈希值的变量数量的参数。Any
返回值
返回以大端字节序表示的给定输入参数的计算 half MD5 哈希值,作为 UInt64。 UInt64
示例
使用示例
hiveHash
引入于: v20.1
从字符串计算“HiveHash”。这只是将符号位归零的 JavaHash。此函数在 Apache Hive 的 3.0 版本之前中使用。
此哈希函数性能不佳。仅当另一个系统已经使用此算法并且您需要计算相同结果时才使用它。
语法
参数
arg— 要哈希的输入字符串。String
返回值
返回输入字符串的计算“hive 哈希”值。 Int32
示例
使用示例
icebergHash
引入于:v25.5
实现 iceberg 哈希转换 的逻辑
语法
参数
value— 要获取哈希值的源值Integer或Bool或Decimal或Float*或String或FixedString或UUID或Date或Time或DateTime
返回值
返回一个 32 位 Murmur3 哈希值,x86 变体,种子值为 0 Int32
示例
示例
intHash32
引入于:v1.1
计算一个整数的 32 位哈希值。
该哈希函数相对较快,但不是加密哈希函数。
语法
参数
arg— 要哈希的整数。(U)Int*
返回值
返回输入整数的计算出的 32 位哈希码 UInt32
示例
使用示例
intHash64
引入于:v1.1
计算一个整数的 64 位哈希值。
该哈希函数相对较快(甚至比 intHash32 更快),但不是加密哈希函数。
语法
参数
int— 要哈希的整数。(U)Int*
返回值
64 位哈希码。 UInt64
示例
使用示例
javaHash
引入于: v20.1
从以下内容计算 JavaHash
此哈希函数性能较差。仅当另一个系统中已经使用此算法并且需要计算相同结果时才使用它。
Java 仅支持计算有符号整数的哈希值,因此如果要计算无符号整数的哈希值,必须将它们转换为适当的 ClickHouse 有符号类型。
语法
参数
arg— 要哈希的输入值。Any
返回值
返回 arg 的计算哈希值 Int32
示例
用例示例 1
用例示例 2
javaHashUTF16LE
引入于: v20.1
从一个字符串计算 JavaHash,假设它包含表示 UTF-16LE 编码字符串的字节。
语法
参数
arg— UTF-16LE 编码的字符串。String
返回值
返回计算出的 UTF-16LE 编码字符串的哈希值。 Int32
示例
使用示例
jumpConsistentHash
引入于:v1.1
计算整数的 jump consistent hash。
语法
参数
返回值
返回计算出的哈希值。 Int32
示例
使用示例
kafkaMurmurHash
引入于:v23.4
计算输入值的 32 位 MurmurHash2 哈希值,使用与 Kafka 相同的种子,并且不设置最高位,以与 Default Partitioner 兼容。
语法
参数
arg1[, arg2, ...]— 用于计算哈希值的变量数量的参数。Any
返回值
返回输入参数的计算哈希值。 UInt32
示例
使用示例
keccak256
引入于: v25.4
计算给定字符串的 Keccak-256 加密哈希值。此哈希函数广泛用于区块链应用程序,特别是以太坊。
语法
参数
message— 要哈希的输入字符串。String
返回值
返回输入字符串的 32 字节 Keccak-256 哈希值,作为固定长度的字符串。 FixedString(32)
示例
使用示例
kostikConsistentHash
引入于:v22.6
Konstantin 'Kostik' Oblakov 的 O(1) 时间和空间一致性哈希算法。仅在 n <= 32768 时有效。
语法
别名: yandexConsistentHash
参数
返回值
返回计算出的哈希值。 UInt16
示例
使用示例
metroHash64
引入于:v1.1
生成一个 64 位的 MetroHash 哈希值。
对于相同输入值,不同参数类型计算出的哈希值可能相同。这会影响例如不同大小的整数类型、具有相同数据的命名和未命名的 Tuple、以及具有相同数据的 Map 和相应的 Array(Tuple(key, value)) 类型。
语法
参数
arg1[, arg2, ...]— 用于计算哈希值的变量数量的输入参数。Any
返回值
返回输入参数的计算哈希值。 UInt64
示例
使用示例
murmurHash2_32
引入于:v18.5
计算输入值的 MurmurHash2 哈希值。
对于相同输入值,不同参数类型计算出的哈希值可能相同。这会影响例如不同大小的整数类型、具有相同数据的命名和未命名的 Tuple、以及具有相同数据的 Map 和相应的 Array(Tuple(key, value)) 类型。
语法
参数
arg1[, arg2, ...]— 用于计算哈希值的变量数量的输入参数。Any
返回值
返回输入参数的计算哈希值。 UInt32
示例
使用示例
murmurHash2_64
引入于:v18.10
计算输入值的 MurmurHash2 哈希值。
对于相同输入值,不同参数类型计算出的哈希值可能相同。这会影响例如不同大小的整数类型、具有相同数据的命名和未命名的 Tuple、以及具有相同数据的 Map 和相应的 Array(Tuple(key, value)) 类型。
语法
参数
arg1[, arg2, ...]— 用于计算哈希值的变量数量的输入参数。Any
返回值
返回输入参数的计算哈希值。 UInt64
示例
使用示例
murmurHash3_128
引入于:v18.10
计算输入值的 128 位 MurmurHash3 哈希值。
语法
参数
arg1[, arg2, ...]— 用于计算哈希值的变量数量的输入参数。Any
返回值
返回输入参数的计算出的 128 位 MurmurHash3 哈希值。 FixedString(16)
示例
使用示例
murmurHash3_32
引入于:v18.10
生成一个 MurmurHash3 哈希值。
对于相同输入值,不同参数类型计算出的哈希值可能相同。这会影响例如不同大小的整数类型、具有相同数据的命名和未命名的 Tuple、以及具有相同数据的 Map 和相应的 Array(Tuple(key, value)) 类型。
语法
参数
arg1[, arg2, ...]— 用于计算哈希值的变量数量的输入参数。Any
返回值
返回输入参数的计算哈希值。 UInt32
示例
使用示例
murmurHash3_64
引入于:v18.10
计算输入值的 MurmurHash3 哈希值。
对于相同输入值,不同参数类型计算出的哈希值可能相同。这会影响例如不同大小的整数类型、具有相同数据的命名和未命名的 Tuple、以及具有相同数据的 Map 和相应的 Array(Tuple(key, value)) 类型。
语法
参数
arg1[, arg2, ...]— 用于计算哈希值的变量数量的输入参数。Any
返回值
返回输入参数的计算哈希值。 UInt64
示例
使用示例
ngramMinHash
引入于:v21.1
将 ASCII 字符串拆分为 ngramsize 符号的 n-gram,并为每个 n-gram 计算哈希值,并返回一个包含这些哈希值的元组。使用 hashnum 个最小哈希值来计算最小哈希值,并使用 hashnum 个最大哈希值来计算最大哈希值。区分大小写。
可以使用 tupleHammingDistance 检测半重复字符串。对于两个字符串,如果两个字符串的返回哈希值相同,则这两个字符串相同。
语法
参数
string— 要计算哈希值的字符串。Stringngramsize— 可选。n-gram 的大小,任何从1到25的数字。默认值为3。UInt8hashnum— 可选。用于计算结果的最小和最大哈希值的数量,任何从1到25的数字。默认值为6。UInt8
返回值
返回一个包含两个哈希值的元组 — 最小值和最大值。 Tuple
示例
使用示例
ngramMinHashArg
引入于:v21.1
将 ASCII 字符串拆分为 ngramsize 符号的 n-gram,并返回使用相同的输入通过 ngramMinHash 函数计算的最小和最大哈希值的 n-gram。区分大小写。
语法
参数
string— 要计算哈希值的字符串。Stringngramsize— 可选。n-gram 的大小,任何从1到25的数字。默认值为3。UInt8hashnum— 可选。用于计算结果的最小和最大哈希值的数量,任何从1到25的数字。默认值为6。UInt8
返回值
返回一个包含两个元组的元组,每个元组包含 hashnum 个 n-gram。 Tuple(String)
示例
使用示例
ngramMinHashArgCaseInsensitive
引入于:v21.1
将 ASCII 字符串拆分为 ngramsize 符号的 n-gram,并返回使用相同的输入通过 ngramMinHashCaseInsensitive 函数计算的最小和最大哈希值的 n-gram。不区分大小写。
语法
参数
string— 要计算哈希值的字符串。Stringngramsize— 可选。n-gram 的大小,任何从1到25的数字。默认值为3。UInt8hashnum— 可选。用于计算结果的最小和最大哈希值的数量,任何从1到25的数字。默认值为6。UInt8
返回值
返回一个包含两个元组的元组,每个元组包含 hashnum 个 n-gram。 Tuple(Tuple(String))
示例
使用示例
ngramMinHashArgCaseInsensitiveUTF8
引入于:v21.1
将 UTF-8 字符串拆分为 ngramsize 符号的 n-gram,并返回使用相同的输入通过 ngramMinHashCaseInsensitiveUTF8 函数计算的最小和最大哈希值的 n-gram。不区分大小写。
语法
参数
string— 要计算哈希值的字符串。Stringngramsize— 可选。n-gram 的大小,任何从1到25的数字。默认值为3。UInt8hashnum— 可选。用于计算结果的最小和最大哈希值的数量,任何从1到25的数字。默认值为6。UInt8
返回值
返回一个包含两个元组的元组,每个元组包含 hashnum 个 n-gram。 Tuple(Tuple(String))
示例
使用示例
ngramMinHashArgUTF8
引入于:v21.1
将 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))
示例
使用示例
ngramMinHashCaseInsensitive
引入于:v21.1
将 ASCII 字符串拆分为 ngramsize 符号的 n-gram,并为每个 n-gram 计算哈希值,并返回一个包含这些哈希值的元组。使用 hashnum 个最小哈希值来计算最小哈希值,并使用 hashnum 个最大哈希值来计算最大哈希值。不区分大小写。
可以使用 tupleHammingDistance 检测半重复字符串。对于两个字符串,如果两个字符串的返回哈希值相同,则这两个字符串相同。
语法
参数
string— 字符串。 String。 -ngramsize— n-gram 的大小。可选。可能的值:任何从1到25的数字。默认值:3。 UInt8。 -hashnum— 用于计算结果的最小和最大哈希值的数量。可选。可能的值:任何从1到25的数字。默认值:6。 UInt8。
返回值
包含两个哈希值的元组 — 最小值和最大值。 Tuple(UInt64, UInt64)。 Tuple
示例
使用示例
ngramMinHashCaseInsensitiveUTF8
引入于:v21.1
将 UTF-8 字符串拆分为 ngramsize 个符号的 n-gram,并计算每个 n-gram 的哈希值,然后返回一个包含这些哈希值的元组。使用 hashnum 个最小哈希值来计算最小哈希值,并使用 hashnum 个最大哈希值来计算最大哈希值。不区分大小写。
可以使用 tupleHammingDistance 检测半重复字符串。对于两个字符串,如果两个字符串的返回哈希值相同,则这两个字符串相同。
语法
参数
string— 要计算哈希值的字符串。Stringngramsize— 可选。n-gram 的大小,任何从1到25的数字。默认值为3。UInt8hashnum— 可选。用于计算结果的最小和最大哈希值的数量,任何从1到25的数字。默认值为6。UInt8
返回值
返回一个包含两个哈希值的元组 — 最小值和最大值。 Tuple
示例
使用示例
ngramMinHashUTF8
引入于:v21.1
将 UTF-8 字符串拆分为 ngramsize 个符号的 n-gram,并计算每个 n-gram 的哈希值,然后返回一个包含这些哈希值的元组。使用 hashnum 个最小哈希值来计算最小哈希值,并使用 hashnum 个最大哈希值来计算最大哈希值。区分大小写。
可以使用 tupleHammingDistance 检测半重复字符串。对于两个字符串,如果两个字符串的返回哈希值相同,则这两个字符串相同。
语法
参数
string— 要计算哈希值的字符串。Stringngramsize— 可选。n-gram 的大小,任何从1到25的数字。默认值为3。UInt8hashnum— 可选。用于计算结果的最小和最大哈希值的数量,任何从1到25的数字。默认值为6。UInt8
返回值
返回一个包含两个哈希值的元组 — 最小值和最大值。 Tuple
示例
使用示例
ngramSimHash
引入于:v21.1
将 ASCII 字符串拆分为 ngramsize 个符号的 n-gram,并返回 n-gram simhash。
可用于检测半重复字符串,方法是使用 bitHammingDistance。计算出的两个字符串的 simhashes 的 汉明距离 越小,这些字符串相同的可能性就越大。
语法
参数
返回值
返回输入字符串的计算哈希值。 UInt64
示例
使用示例
ngramSimHashCaseInsensitive
引入于:v21.1
将 ASCII 字符串拆分为 ngramsize 个符号的 n-gram,并返回 n-gram simhash。不区分大小写。
可用于检测半重复字符串,方法是使用 bitHammingDistance。计算出的两个字符串的 simhashes 的 汉明距离 越小,这些字符串相同的可能性就越大。
语法
参数
返回值
示例
使用示例
ngramSimHashCaseInsensitiveUTF8
引入于:v21.1
将 UTF-8 字符串拆分为 ngramsize 个符号的 n-gram,并返回 n-gram simhash。不区分大小写。
可用于检测半重复字符串,方法是使用 bitHammingDistance。计算出的两个字符串的 simhashes 的 汉明距离 越小,这些字符串相同的可能性就越大。
语法
参数
返回值
返回计算出的哈希值。 UInt64
示例
使用示例
ngramSimHashUTF8
引入于:v21.1
将 UTF-8 编码的字符串拆分为 ngramsize 个符号的 n-gram,并返回 n-gram simhash。区分大小写。
可用于检测半重复字符串,方法是使用 bitHammingDistance。计算出的两个字符串的 simhashes 的 汉明距离 越小,这些字符串相同的可能性就越大。
语法
参数
返回值
返回计算出的哈希值。 UInt64
示例
使用示例
sipHash128
引入于:v1.1
类似于 sipHash64,但生成 128 位哈希值,即最终的异或折叠状态最多进行 128 位。
此 128 位变体与参考实现不同,并且较弱。此版本存在的原因是,在编写时,SipHash 没有官方的 128 位扩展。建议新项目使用 sipHash128Reference。
语法
参数
arg1[, arg2, ...]— 用于计算哈希值的变量数量的输入参数。Any
返回值
返回一个 128 位的 SipHash 哈希值。 FixedString(16)
示例
使用示例
sipHash128Keyed
引入版本: v23.2
与 sipHash128 相同,但额外接受一个显式密钥参数,而不是使用固定密钥。
此 128 位变体与参考实现不同,并且较弱。此版本存在的原因是,在编写时,SipHash 没有官方的 128 位扩展。建议新项目使用 sipHash128ReferenceKeyed。
语法
参数
(k0, k1)— 表示密钥的两个 UInt64 值的元组。Tuple(UInt64, UInt64)arg1[, arg2, ...]— 用于计算哈希值的变量数量的输入参数。Any
返回值
类型为 FixedString(16) 的 128 位 SipHash 哈希值。 FixedString(16)
示例
使用示例
sipHash128Reference
引入版本: v23.2
类似于 sipHash128,但实现了 SipHash 原始作者的 128 位算法。
语法
参数
arg1[, arg2, ...]— 用于计算哈希值的变量数量的输入参数。Any
返回值
返回输入参数的计算出的 128 位 SipHash 哈希值。 FixedString(16)
示例
使用示例
sipHash128ReferenceKeyed
引入版本: v23.2
与 sipHash128Reference 相同,但额外接受一个显式密钥参数,而不是使用固定密钥。
语法
参数
(k0, k1)— 表示密钥的两个值的元组Tuple(UInt64, UInt64)arg1[, arg2, ...]— 用于计算哈希值的变量数量的输入参数。Any
返回值
返回输入参数的计算出的 128 位 SipHash 哈希值。 FixedString(16)
示例
使用示例
sipHash64
引入于:v1.1
生成一个 64 位的 SipHash 哈希值。
这是一个密码哈希函数。它的速度至少比 MD5 哈希函数快三倍。
该函数 解释 所有输入参数为字符串,并为每个参数计算哈希值。然后使用以下算法组合哈希值
- 将第一个和第二个哈希值连接到一个数组,然后对该数组进行哈希处理。
- 以前计算出的哈希值和第三个输入参数的哈希值以类似的方式进行哈希处理。
- 对所有剩余的原始输入哈希值重复此计算。
计算出的哈希值对于不同参数类型相同输入值可能相同。这会影响例如不同大小的整数类型、具有相同数据的命名和未命名的 Tuple、以及具有相同数据的 Map 和相应的 Array(Tuple(key, value)) 类型。
语法
参数
arg1[, arg2, ...]— 数量可变的输入参数。Any
返回值
返回输入参数的计算哈希值。 UInt64
示例
使用示例
sipHash64Keyed
引入版本: v23.2
类似于 sipHash64,但额外接受一个显式密钥参数,而不是使用固定密钥。
语法
参数
(k0, k1)— 表示密钥的两个值的元组。Tuple(UInt64, UInt64)arg1[,arg2, ...]— 数量可变的输入参数。Any
返回值
返回输入值的计算哈希值。 UInt64
示例
使用示例
wordShingleMinHash
引入于:v21.1
将 ASCII 字符串拆分为 shinglesize 个单词的部分(shingles),计算每个单词 shingle 的哈希值,然后返回一个包含这些哈希值的元组。使用 hashnum 个最小哈希值来计算最小哈希值,并使用 hashnum 个最大哈希值来计算最大哈希值。区分大小写。
可以使用 tupleHammingDistance 检测半重复字符串。对于两个字符串,如果两个字符串的返回哈希值相同,则这两个字符串相同。
语法
参数
string— 要计算哈希值的字符串。Stringshinglesize— 可选。单词 shingle 的大小,范围是1到25的任意数字。默认值为3。UInt8hashnum— 可选。用于计算结果的最小和最大哈希值的数量,任何从1到25的数字。默认值为6。UInt8
返回值
返回一个包含两个哈希值的元组 — 最小值和最大值。 Tuple(UInt64, UInt64)
示例
使用示例
wordShingleMinHashArg
引入于:v1.1
将 ASCII 字符串拆分为每个 shinglesize 个单词的部分(shingles),并返回使用相同输入计算的 wordShingleMinHash 函数计算的最小和最大单词哈希值。区分大小写。
语法
参数
string— 要计算哈希值的字符串。Stringshinglesize— 可选。单词 shingle 的大小,范围是1到25的任意数字。默认值为3。UInt8hashnum— 可选。用于计算结果的最小和最大哈希值的数量,任何从1到25的数字。默认值为6。UInt8
返回值
返回一个包含两个元组的元组,每个元组包含 hashnum 个单词 shingles。 Tuple(Tuple(String))
示例
使用示例
wordShingleMinHashArgCaseInsensitive
引入于:v21.1
将 ASCII 字符串拆分为每个 shinglesize 个单词的部分(shingles),并返回使用相同输入计算的 wordShingleMinHashCaseInsensitive 函数计算的最小和最大单词哈希值。不区分大小写。
语法
参数
string— 要计算哈希值的字符串。Stringshinglesize— 可选。单词 shingle 的大小,范围是1到25的任意数字。默认值为3。UInt8hashnum— 可选。用于计算结果的最小和最大哈希值的数量,任何从1到25的数字。默认值为6。UInt8
返回值
返回一个包含两个元组的元组,每个元组包含 hashnum 个单词 shingles。 Tuple(Tuple(String))
示例
使用示例
wordShingleMinHashArgCaseInsensitiveUTF8
引入于:v21.1
将 UTF-8 字符串拆分为每个 shinglesize 个单词的部分(shingles),并返回使用相同输入计算的 wordShingleMinHashCaseInsensitiveUTF8 函数计算的最小和最大单词哈希值。不区分大小写。
语法
参数
string— 要计算哈希值的字符串。Stringshinglesize— 可选。单词 shingle 的大小,范围是1到25的任意数字。默认值为3。UInt8hashnum— 可选。用于计算结果的最小和最大哈希值的数量,任何从1到25的数字。默认值为6。UInt8
返回值
返回一个包含两个元组的元组,每个元组包含 hashnum 个单词 shingles。 Tuple(Tuple(String))
示例
使用示例
wordShingleMinHashArgUTF8
引入于:v21.1
将 UTF-8 字符串拆分为每个 shinglesize 个单词的部分(shingles),并返回使用相同输入计算的 wordShingleMinHashUTF8 函数计算的最小和最大单词哈希值。区分大小写。
语法
参数
string— 要计算哈希值的字符串。Stringshinglesize— 可选。单词 shingle 的大小,范围是1到25的任意数字。默认值为3。UInt8hashnum— 可选。用于计算结果的最小和最大哈希值的数量,任何从1到25的数字。默认值为6。UInt8
返回值
返回一个包含两个元组的元组,每个元组包含 hashnum 个单词 shingles。 Tuple(Tuple(String))
示例
使用示例
wordShingleMinHashCaseInsensitive
引入于:v21.1
将 ASCII 字符串拆分为 shinglesize 个单词的部分(shingles),计算每个单词 shingle 的哈希值,然后返回一个包含这些哈希值的元组。使用 hashnum 个最小哈希值来计算最小哈希值,并使用 hashnum 个最大哈希值来计算最大哈希值。不区分大小写。
可以使用 tupleHammingDistance 检测半重复字符串。对于两个字符串,如果两个字符串的返回哈希值相同,则这两个字符串相同。
语法
参数
string— 要计算哈希值的字符串。Stringshinglesize— 可选。单词 shingle 的大小,范围是1到25的任意数字。默认值为3。UInt8hashnum— 可选。用于计算结果的最小和最大哈希值的数量,任何从1到25的数字。默认值为6。UInt8
返回值
返回一个包含两个哈希值的元组 — 最小值和最大值。 Tuple(UInt64, UInt64)
示例
使用示例
wordShingleMinHashCaseInsensitiveUTF8
引入于:v21.1
将 UTF-8 字符串拆分为 shinglesize 个单词的部分(shingles),计算每个单词 shingle 的哈希值,然后返回一个包含这些哈希值的元组。使用 hashnum 个最小哈希值来计算最小哈希值,并使用 hashnum 个最大哈希值来计算最大哈希值。不区分大小写。
可以使用 tupleHammingDistance 检测半重复字符串。对于两个字符串,如果两个字符串的返回哈希值相同,则这两个字符串相同。
语法
参数
string— 要计算哈希值的字符串。Stringshinglesize— 可选。单词 shingle 的大小,范围是1到25的任意数字。默认值为3。UInt8hashnum— 可选。用于计算结果的最小和最大哈希值的数量,任何从1到25的数字。默认值为6。UInt8
返回值
返回一个包含两个哈希值的元组 — 最小值和最大值。 Tuple(UInt64, UInt64)
示例
使用示例
wordShingleMinHashUTF8
引入于:v21.1
将 UTF-8 字符串拆分为 shinglesize 个单词的部分(shingles),计算每个单词 shingle 的哈希值,然后返回一个包含这些哈希值的元组。使用 hashnum 个最小哈希值来计算最小哈希值,并使用 hashnum 个最大哈希值来计算最大哈希值。区分大小写。
可以使用 tupleHammingDistance 检测半重复字符串。对于两个字符串,如果两个字符串的返回哈希值相同,则这两个字符串相同。
语法
参数
string— 要计算哈希值的字符串。Stringshinglesize— 可选。单词 shingle 的大小,范围是1到25的任意数字。默认值为3。UInt8hashnum— 可选。用于计算结果的最小和最大哈希值的数量,任何从1到25的数字。默认值为6。UInt8
返回值
返回一个包含两个哈希值的元组 — 最小值和最大值。 Tuple(UInt64, UInt64)
示例
使用示例
wordShingleSimHash
引入于:v21.1
将 ASCII 字符串拆分为 shinglesize 个单词的部分(shingle),并返回单词 shingle 的 simhash。区分大小写。
可用于检测半重复字符串,方法是使用 bitHammingDistance。计算出的两个字符串的 simhashes 的 汉明距离 越小,这些字符串相同的可能性就越大。
语法
参数
返回值
返回计算出的哈希值。 UInt64
示例
使用示例
wordShingleSimHashCaseInsensitive
引入于:v21.1
将 ASCII 字符串拆分为 shinglesize 个单词的部分(shingle),并返回单词 shingle 的 simhash。不区分大小写。
可用于检测半重复字符串,方法是使用 bitHammingDistance。计算出的两个字符串的 simhashes 的 汉明距离 越小,这些字符串相同的可能性就越大。
语法
参数
返回值
返回计算出的哈希值。 UInt64
示例
使用示例
wordShingleSimHashCaseInsensitiveUTF8
引入于:v1.1
将 UTF-8 编码的字符串拆分为 shinglesize 个单词的部分(shingle),并返回单词 shingle 的 simhash。不区分大小写。
可用于检测半重复字符串,使用 bitHammingDistance。计算出的两个字符串的 simhashes 的 汉明距离 越小,这些字符串越可能是相同的。
语法
参数
返回值
返回计算出的哈希值。 UInt64
示例
使用示例
wordShingleSimHashUTF8
引入于:v21.1
将 UTF-8 字符串拆分为 shinglesize 个单词的部分(shingle),并返回单词 shingle 的 simhash。区分大小写。
可用于检测半重复字符串,方法是使用 bitHammingDistance。计算出的两个字符串的 simhashes 的 汉明距离 越小,这些字符串相同的可能性就越大。
语法
参数
返回值
返回计算出的哈希值。 UInt64
示例
使用示例
wyHash64
引入于:v22.7
计算一个 64 位的 wyHash64 哈希值。
语法
参数
arg— 用于计算哈希的字符串参数。String
返回值
返回计算出的 64 位哈希值 UInt64
示例
使用示例
xxHash32
引入于: v20.1
从字符串计算一个 xxHash。
对于 64 位版本,请参阅 xxHash64
语法
参数
arg— 要哈希的输入字符串。String
返回值
返回输入字符串的计算出的 32 位哈希值。 UInt32
示例
使用示例
xxHash64
引入于: v20.1
从字符串计算一个 xxHash。
对于 32 位版本,请参阅 xxHash32
语法
参数
arg— 要哈希的输入字符串。String
返回值
返回输入字符串的计算出的 64 位哈希值。 UInt64
示例
使用示例
xxh3
引入于:v22.12
计算一个 XXH3 64 位哈希值。
语法
参数
expr— 任何数据类型的表达式列表。Any
返回值
返回计算出的 64 位 xxh3 哈希值 UInt64
示例
使用示例
xxh3_128
引入于:v26.2
计算一个 XXH3 128 位哈希值。
语法
参数
expr— 任何数据类型的表达式列表。Any
返回值
返回计算出的 128 位 xxh3 哈希值 UInt128
示例
使用示例