十五、clickhouse的Hash函数
-- 注意:伪随机!可以用于将元素不可逆的伪随机打乱。
SELECT -- 计算字符串的MD5值。( 如果您不需要一定使用MD5,请使用‘sipHash64’函数。) halfMD5('HELLO WORLD!'), halfMD5(12); SELECT MD5('drew-zero,78967'); SELECT -- 为任何类型的整数计算32位的哈希。 这是相对高效的非加密Hash函数 intHash32(1221232132132) AS intHash32, -- 推荐:从任何类型的整数计算64位哈希码。 它的工作速度比intHash32函数快。 intHash64(1221232132132) AS intHash64, -- 计算任意数量字符串的CityHash64或使用特定实现的Hash函数计算任意数量其他类型的Hash。 cityHash64('username') AS cityHash64, -- 1.使用sha1或者sha224加密的话,只能用于字符串 -- 2.字符串 需使用单引号。 SHA1('1232131') AS sha1, SHA224('1232131') AS sha224, SHA256('DREW-ZERO') AS sha256; -- URLHash(url[, N]) 一种快速的非加密哈希函数,用于规范化的从URL获得的字符串 -- 从一个字符串计算一个哈希,如果结尾存在尾随符号/,?或#则忽略。 URLHash(s,N) -- 计算URL层次结构中字符串到N级别的哈希值,如果末尾存在尾随符号/,?或#则忽略。 URL的层级与URLHierarchy中的层级相同 -- 用处:此函数被用于Yandex.Metrica。 SELECT URLHash('www.baidu.com'), -- 11390370829909720855 URLHash('www.baidu.com', 0), -- 11390370829909720855 -- URLHash('www.baidu.com', 1); -- 11160318154034397263 -- farmHash64(s) 计算字符串的FarmHash64。 接受一个String类型的参数。返回UInt64。 SELECT farmHash64('www.runoob.com'); -- 6668483584160323388 -- javaHash(s) 计算字符串的JavaHash。 接受一个String类型的参数。返回Int32。 SELECT javaHash('www.baidu.com'); -- 270263191 -- hiveHash(s) 计算字符串的HiveHash。 接受一个String类型的参数。返回Int32。 与JavaHash相同,但不会返回负数 SELECT hiveHash('www.baidu.com'); -- 270263191