As funções de hash podem ser usadas para o embaralhamento pseudoaleatório determinístico de elementos.
Simhash é uma função de hash que retorna valores de hash próximos para argumentos próximos (semelhantes).
A maioria das funções de hash aceita qualquer quantidade de argumentos de quaisquer tipos.
BLAKE3
Introduzido na versão: v22.10.0
Calcula a string de hash BLAKE3 e retorna o conjunto de bytes resultante como FixedString. Essa função hash criptográfica é integrada ao ClickHouse com a biblioteca BLAKE3 em Rust. A função é bastante rápida e apresenta desempenho aproximadamente duas vezes superior ao SHA-2, gerando hashes com o mesmo comprimento do SHA-256. Ela retorna um hash BLAKE3 como um array de bytes do tipo FixedString(32).
Sintaxe
BLAKE3(message)Argumentos
message— A string de entrada para calcular o hash.String
Valor retornado
Retorna o hash BLAKE3 de 32 bytes da string de entrada como uma string de tamanho fixo. FixedString(32)
Exemplos
hash
SELECT hex(BLAKE3('ABC'))┌─hex(BLAKE3('ABC'))───────────────────────────────────────────────┐
│ D1717274597CF0289694F75D96D444B992A096F1AFD8E7BBFA6EBB1D360FEDFC │
└──────────────────────────────────────────────────────────────────┘MD4
Introduzido em: v21.11.0
Calcula o hash MD4 da string fornecida.
Sintaxe
MD4(s)Argumentos
s— A string de entrada para calcular o hash.String
Valor retornado
Retorna o hash MD4 da string de entrada fornecida como uma string de tamanho fixo. FixedString(16)
Exemplos
Exemplo de uso
SELECT HEX(MD4('abc'));┌─HEX(MD4('abc'))──────────────────┐
│ A448017AAF21D8525FC10AE87AA6729D │
└──────────────────────────────────┘MD5
Introduzido em: v1.1.0
Calcula o hash MD5 da string especificada.
Sintaxe
MD5(s)Argumentos
s— A string de entrada para calcular o hash.String
Valor retornado
Retorna o hash MD5 da string de entrada fornecida como uma string de tamanho fixo. FixedString(16)
Exemplos
Exemplo de uso
SELECT HEX(MD5('abc'));┌─HEX(MD5('abc'))──────────────────┐
│ 900150983CD24FB0D6963F7D28E17F72 │
└──────────────────────────────────┘RIPEMD160
Introduzido em: v24.10.0
Calcula o hash RIPEMD-160 da string fornecida.
Sintaxe
RIPEMD160(s)Argumentos
s— A string de entrada para calcular o hash.String
Valor retornado
Retorna o hash RIPEMD160 da string de entrada fornecida como uma string de tamanho fixo. FixedString(20)
Exemplos
Exemplo de uso
SELECT HEX(RIPEMD160('The quick brown fox jumps over the lazy dog'));┌─HEX(RIPEMD160('The quick brown fox jumps over the lazy dog'))─┐
│ 37F332F68DB77BD9D7EDD4969571AD671CF9DD3B │
└───────────────────────────────────────────────────────────────┘SHA1
Introduzido em: v1.1.0
Calcula o hash SHA1 da string informada.
Sintaxe
SHA1(s)Argumentos
s— A string de entrada para calcular o hashString
Valor retornado
Retorna o hash SHA1 da string de entrada fornecida como uma string de tamanho fixo. FixedString(20)
Exemplos
Exemplo de uso
SELECT HEX(SHA1('abc'));┌─HEX(SHA1('abc'))─────────────────────────┐
│ A9993E364706816ABA3E25717850C26C9CD0D89D │
└──────────────────────────────────────────┘SHA224
Introduzido em: v1.1.0
Calcula o hash SHA224 da string informada.
Sintaxe
SHA224(s)Argumentos
s— O valor de entrada para o cálculo do hash.String
Valor retornado
Retorna o hash SHA224 da string de entrada fornecida como uma string de tamanho fixo. FixedString(28)
Exemplos
Exemplo de uso
SELECT HEX(SHA224('abc'));┌─HEX(SHA224('abc'))───────────────────────────────────────┐
│ 23097D223405D8228642A477BDA255B32AADBCE4BDA0B3F7E36C9DA7 │
└──────────────────────────────────────────────────────────┘SHA256
Introduzido em: v1.1.0
Calcula o hash SHA256 da cadeia de caracteres fornecida.
Sintaxe
SHA256(s)Argumentos
s— A string de entrada para calcular o hash.String
Valor retornado
Retorna o hash SHA256 da string de entrada especificada como uma string de tamanho fixo. FixedString(32)
Exemplos
Exemplo de uso
SELECT HEX(SHA256('abc'));┌─HEX(SHA256('abc'))───────────────────────────────────────────────┐
│ BA7816BF8F01CFEA414140DE5DAE2223B00361A396177A9CB410FF61F20015AD │
└──────────────────────────────────────────────────────────────────┘SHA384
Introduzido em: v1.1.0
Calcula o hash SHA384 da string fornecida.
Sintaxe
SHA384(s)Argumentos
s— A string de entrada para calcular o hash.String
Valor retornado
Retorna o hash SHA384 da string de entrada informada como uma string de tamanho fixo. FixedString(48)
Exemplos
Exemplo de uso
SELECT HEX(SHA384('abc'));┌─HEX(SHA384('abc'))───────────────────────────────────────────────────────────────────────────────┐
│ CB00753F45A35E8BB5A03D699AC65007272C32AB0EDED1631A8B605A43FF5BED8086072BA1E7CC2358BAECA134C825A7 │
└──────────────────────────────────────────────────────────────────────────────────────────────────┘SHA512
Introduzido em: v1.1.0
Calcula o hash SHA512 da string especificada.
Sintaxe
SHA512(s)Argumentos
s— String de entrada para calcular o hashString
Valor retornado
Retorna o hash SHA512 da string de entrada informada como uma string de tamanho fixo. FixedString(64)
Exemplos
Exemplo de uso
SELECT HEX(SHA512('abc'));┌─HEX(SHA512('abc'))───────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ DDAF35A193617ABACC417349AE20413112E6FA4E89A97EA20A9EEEE64B55D39A2192992A274FC1A836BA3C23A3FEEBBD454D4423643CE80E2A9AC94FA54CA49F │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘SHA512_256
Introduzido em: v1.1.0
Calcula o hash SHA512_256 da string especificada.
Sintaxe
SHA512_256(s)Argumentos
s— A string de entrada para calcular o hash.String
Valor retornado
Retorna o hash SHA512_256 da string de entrada fornecida como uma string de tamanho fixo. FixedString(32)
Exemplos
Exemplo de uso
SELECT HEX(SHA512_256('abc'));┌─HEX(SHA512_256('abc'))───────────────────────────────────────────┐
│ 53048E2681941EF99B2E29B76B4C7DABE4C2D0C634FC6D46E0E2F13107E7AF23 │
└──────────────────────────────────────────────────────────────────┘URLHash
Introduzido em: v1.1.0
Uma função de hash não criptográfica rápida e de qualidade razoável para uma string obtida de uma URL usando algum tipo de normalização.
Esta função de hash tem dois modos:
| Modo | Descrição |
|---|---|
URLHash(url) |
Calcula um hash de uma string sem um dos símbolos finais /, ? ou #, se presente. |
URLHash(url, N) |
Calcula um hash de uma string até o nível N na hierarquia da URL, sem um dos símbolos finais /, ? ou #, se presente. Os níveis são os mesmos de URLHierarchy. |
Sintaxe
URLHash(url[, N])Argumentos
Valor retornado
Retorna o valor de hash calculado para url. UInt64
Exemplos
Exemplo de uso
SELECT URLHash('https://www.clickhouse.com')┌─URLHash('https://www.clickhouse.com')─┐
│ 13614512636072854701 │
└───────────────────────────────────────┘Hash da URL com o nível especificado
SELECT URLHash('https://www.clickhouse.com/docs', 0);
SELECT URLHash('https://www.clickhouse.com/docs', 1);13614512636072854701
13167253331440520598cityHash64
Introduzido em: v1.1.0
Produz um valor de hash CityHash de 64 bits.
Esta é uma função de hash rápida e não criptográfica. Ela usa o algoritmo CityHash para parâmetros do tipo string e uma função de hash rápida e não criptográfica específica da implementação para parâmetros com outros tipos de dados. A função usa o combinador CityHash para obter os resultados finais.
Sintaxe
cityHash64(arg1[, arg2, ...])Argumentos
arg1[, arg2, ...]— Um número variável de argumentos de entrada para os quais o hash será calculado.Any
Valor retornado
Retorna o hash calculado dos argumentos de entrada. UInt64
Exemplos
Exemplo de chamada
SELECT cityHash64(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS CityHash, toTypeName(CityHash) AS type;┌─────────────CityHash─┬─type───┐
│ 17177535963988450974 │ UInt64 │
└──────────────────────┴────────┘Calculando o checksum da tabela inteira, levando em conta a ordem das linhas
CREATE TABLE users (
id UInt32,
name String,
age UInt8,
city String
)
ENGINE = MergeTree
ORDER BY tuple();
INSERT INTO users VALUES
(1, 'Alice', 25, 'New York'),
(2, 'Bob', 30, 'London'),
(3, 'Charlie', 35, 'Tokyo');
SELECT groupBitXor(cityHash64(*)) FROM users;┌─groupBitXor(cityHash64(id, name, age, city))─┐
│ 11639977218258521182 │
└──────────────────────────────────────────────┘farmFingerprint64
Introduzido em: v20.12.0
Produz um valor FarmHash de 64 bits usando o método Fingerprint64.
Sintaxe
farmFingerprint64(arg1[, arg2, ...])Argumentos
arg1[, arg2, ...]— Uma quantidade variável de argumentos de entrada para calcular o hash.Any
Valor retornado
Retorna o valor de hash calculado a partir dos argumentos de entrada. UInt64
Exemplos
Exemplo de uso
SELECT farmFingerprint64(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS FarmFingerprint, toTypeName(FarmFingerprint) AS type;┌──────FarmFingerprint─┬─type───┐
│ 16673609057812504858 │ UInt64 │
└──────────────────────┴────────┘farmHash64
Introduzido em: v1.1.0
Produz um FarmHash de 64 bits usando o método Hash64.
Sintaxe
farmHash64(arg1[, arg2, ...])Argumentos
arg1[, arg2, ...]— Um número variável de argumentos de entrada para os quais o hash será calculado.Any
Valor retornado
Retorna o valor de hash calculado a partir dos argumentos de entrada. UInt64
Exemplos
Exemplo de uso
SELECT farmHash64(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS FarmHash, toTypeName(FarmHash) AS type;┌────────────FarmHash─┬─type───┐
│ 2663412879246289891 │ UInt64 │
└─────────────────────┴────────┘gccMurmurHash
Introduzido em: v20.1.0
Calcula o hash MurmurHash2 de 64 bits do valor de entrada usando a mesma seed usada pelo GCC.
É portátil entre compilações do Clang e do GCC.
Sintaxe
gccMurmurHash(arg1[, arg2, ...])Argumentos
arg1[, arg2, ...]— Um número variável de argumentos para os quais o hash deve ser calculado.Any
Valor retornado
Retorna o valor de hash calculado a partir dos argumentos de entrada. UInt64
Exemplos
Exemplo de uso
SELECT
gccMurmurHash(1, 2, 3) AS res1,
gccMurmurHash(('a', [1, 2, 3], 4, (4, ['foo', 'bar'], 1, (1, 2)))) AS res2┌─────────────────res1─┬────────────────res2─┐
│ 12384823029245979431 │ 1188926775431157506 │
└──────────────────────┴─────────────────────┘halfMD5
Introduzido em: v1.1.0
Interpreta todos os parâmetros de entrada como strings e calcula o valor de hash MD5 de cada um deles. Em seguida, combina os hashes, extrai os primeiros 8 bytes do hash da string resultante e os interpreta como UInt64 em ordem de bytes big-endian. A função é relativamente lenta (5 milhões de strings curtas por segundo por núcleo de processador).
Considere usar a função sipHash64 no lugar dela.
A função aceita um número variável de parâmetros de entrada. Os argumentos podem ser de qualquer um dos tipos de dados compatíveis. Para alguns tipos de dados, o valor calculado da função de hash pode ser o mesmo para valores iguais, mesmo que os tipos dos argumentos sejam diferentes (inteiros de tamanhos diferentes, Tuple nomeado e não nomeado com os mesmos dados, Map e o tipo Array(Tuple(key, value)) correspondente com os mesmos dados).
Sintaxe
halfMD5(arg1[, arg2, ..., argN])Argumentos
arg1[, arg2, ..., argN]— Número variável de argumentos para os quais o hash deve ser calculado.Any
Valor retornado
Retorna o meio hash MD5 calculado a partir dos parâmetros de entrada informados, como um UInt64 em ordem de bytes big-endian. UInt64
Exemplos
Exemplo de uso
SELECT HEX(halfMD5('abc', 'cde', 'fgh'));┌─HEX(halfMD5('abc', 'cde', 'fgh'))─┐
│ 2C9506B7374CFAF4 │
└───────────────────────────────────┘hiveHash
Introduzido em: v20.1.0
Calcula um "HiveHash" de uma string.
Isso é apenas JavaHash com os bits de sinal zerados.
Essa função é usada no Apache Hive em versões anteriores à 3.0.
Sintaxe
hiveHash(arg)Argumentos
arg— String de entrada para calcular o hash.String
Valor retornado
Retorna o "hive hash" calculado para a string de entrada. Int32
Exemplos
Exemplo de uso
SELECT hiveHash('Hello, world!');┌─hiveHash('Hello, world!')─┐
│ 267439093 │
└───────────────────────────┘icebergHash
Introduzido em: v25.5.0
Implementa a lógica da transformação hash do Iceberg
Sintaxe
icebergHash(value)Argumentos
value— Valor de entrada para o qual será calculado o hash:IntegerouBoolouDecimalouFloat*ouStringouFixedStringouUUIDouDateouTimeouDateTime
Valor retornado
Retorna um hash Murmur3 de 32 bits, variante x86, inicializado com 0 Int32
Exemplos
Exemplo
SELECT icebergHash(1.0 :: Float32)-142385009intHash32
Introduzido em: v1.1.0
Calcula o hash de 32 bits de um inteiro.
A função hash é relativamente rápida, mas não é uma função hash criptográfica.
Sintaxe
intHash32(arg)Argumentos
arg— Inteiro para gerar hash.(U)Int*
Valor retornado
Retorna o código de hash de 32 bits calculado para o inteiro de entrada UInt32
Exemplos
Exemplo de uso
SELECT intHash32(42);┌─intHash32(42)─┐
│ 1228623923 │
└───────────────┘intHash64
Introduzido em: v1.1.0
Calcula o hash de 64 bits de um inteiro.
A função hash é relativamente rápida (ainda mais rápida que intHash32), mas não é uma função hash criptográfica.
Sintaxe
intHash64(int)Argumentos
int— Inteiro cujo hash será calculado.(U)Int*
Valor retornado
Código hash de 64 bits. UInt64
Exemplos
Exemplo de uso
SELECT intHash64(42);┌────────intHash64(42)─┐
│ 11490350930367293593 │
└──────────────────────┘javaHash
Introduzido em: v20.1.0
Calcula JavaHash a partir de:
Sintaxe
javaHash(arg)Argumentos
arg— Valor de entrada para o hash.Any
Valor retornado
Retorna o hash calculado de arg Int32
Exemplos
Exemplo de uso 1
SELECT javaHash(toInt32(123));┌─javaHash(toInt32(123))─┐
│ 123 │
└────────────────────────┘Exemplo de uso 2
SELECT javaHash('Hello, world!');┌─javaHash('Hello, world!')─┐
│ -1880044555 │
└───────────────────────────┘javaHashUTF16LE
Introduzido na versão: v20.1.0
Calcula JavaHash de uma string, assumindo que ela contenha bytes que representem uma string codificada em UTF-16LE.
Sintaxe
javaHashUTF16LE(arg)Argumentos
arg— Uma string com codificação UTF-16LE.String
Valor retornado
Retorna o hash calculado da string codificada em UTF-16LE. Int32
Exemplos
Exemplo de uso
SELECT javaHashUTF16LE(convertCharset('test', 'utf-8', 'utf-16le'));┌─javaHashUTF16LE(convertCharset('test', 'utf-8', 'utf-16le'))─┐
│ 3556498 │
└──────────────────────────────────────────────────────────────┘jumpConsistentHash
Introduzido em: v1.1.0
Calcula o hash consistente de um inteiro.
Sintaxe
jumpConsistentHash(key, buckets)Argumentos
Valor retornado
Retorna o valor de hash calculado. Int32
Exemplos
Exemplo de uso
SELECT jumpConsistentHash(256, 4)┌─jumpConsistentHash(256, 4)─┐
│ 3 │
└────────────────────────────┘kafkaMurmurHash
Introduzido em: v23.4.0
Calcula o hash MurmurHash2 de 32 bits do valor de entrada usando a mesma seed do Kafka e sem o bit mais significativo, para ser compatível com o Default Partitioner.
Sintaxe
kafkaMurmurHash(arg1[, arg2, ...])Argumentos
arg1[, arg2, ...]— Um número variável de parâmetros cujo hash será calculado.Any
Valor retornado
Retorna o valor de hash calculado a partir dos argumentos de entrada. UInt32
Exemplos
Exemplo de uso
SELECT
kafkaMurmurHash('foobar') AS res1,
kafkaMurmurHash(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS res2┌───────res1─┬─────res2─┐
│ 1357151166 │ 85479775 │
└────────────┴──────────┘keccak256
Introduzido em: v25.4.0
Calcula o hash criptográfico Keccak-256 da string fornecida. Essa função de hash é amplamente usada em aplicações de blockchain, especialmente no Ethereum.
Sintaxe
keccak256(message)Argumentos
message— A string de entrada para calcular o hash.String
Valor retornado
Retorna o hash Keccak-256 de 32 bytes da string de entrada como uma string de tamanho fixo. FixedString(32)
Exemplos
Exemplo de uso
SELECT hex(keccak256('hello'))┌─hex(keccak256('hello'))──────────────────────────────────────────┐
│ 1C8AFF950685C2ED4BC3174F3472287B56D9517B9C948127319A09A7A36DEAC8 │
└──────────────────────────────────────────────────────────────────┘kostikConsistentHash
Introduzido em: v22.6.0
Um algoritmo de hash consistente com complexidade de tempo e espaço O(1), de Konstantin 'Kostik' Oblakov.
Eficiente apenas para n <= 32768.
Sintaxe
kostikConsistentHash(input, n)Aliases: yandexConsistentHash
Argumentos
Valor retornado
Retorna o valor de hash calculado. UInt16
Exemplos
Exemplo de uso
SELECT kostikConsistentHash(16045690984833335023, 2);┌─kostikConsistentHash(16045690984833335023, 2)─┐
│ 1 │
└───────────────────────────────────────────────┘metroHash64
Introduzido em: v1.1.0
Produz um valor de hash MetroHash de 64 bits.
Sintaxe
metroHash64(arg1[, arg2, ...])Argumentos
arg1[, arg2, ...]— Um número variável de argumentos de entrada usados para calcular o hash.Any
Valor retornado
Retorna o hash calculado a partir dos argumentos de entrada. UInt64
Exemplos
Exemplo de uso
SELECT metroHash64(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS MetroHash, toTypeName(MetroHash) AS type;┌────────────MetroHash─┬─type───┐
│ 16292826582821303855 │ UInt64 │
└──────────────────────┴────────┘murmurHash2_32
Introduzido em: v18.5.0
Calcula o hash MurmurHash2 do valor de entrada.
Sintaxe
murmurHash2_32(arg1[, arg2, ...])Argumentos
arg1[, arg2, ...]— Um número variável de argumentos de entrada cujo hash será calculado.Any
Valor retornado
Retorna o valor de hash calculado a partir dos argumentos de entrada. UInt32
Exemplos
Exemplo de uso
SELECT murmurHash2_32(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS MurmurHash2, toTypeName(MurmurHash2) AS type;┌─MurmurHash2─┬─type───┐
│ 2947095100 │ UInt32 │
└─────────────┴────────┘murmurHash2_64
Introduzido em: v18.10.0
Calcula o hash MurmurHash2 do valor de entrada.
Sintaxe
murmurHash2_64(arg1[, arg2, ...])Argumentos
arg1[, arg2, ...]— Um número variável de argumentos de entrada cujo hash será calculado.Any
Valor retornado
Retorna o hash calculado a partir dos argumentos de entrada. UInt64
Exemplos
Exemplo de uso
SELECT murmurHash2_64(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS MurmurHash2, toTypeName(MurmurHash2) AS type;┌──────────MurmurHash2─┬─type───┐
│ 16479669305841206229 │ UInt64 │
└──────────────────────┴────────┘murmurHash3_128
Introduzido em: v18.10.0
Calcula o hash de 128 bits MurmurHash3 do valor de entrada.
Sintaxe
murmurHash3_128(arg1[, arg2, ...])Argumentos
arg1[, arg2, ...]— Um número variável de argumentos de entrada para os quais o hash deve ser calculado.Any
Valor retornado
Retorna o valor de hash MurmurHash3 de 128 bits calculado a partir dos argumentos de entrada. FixedString(16)
Exemplos
Exemplo de uso
SELECT hex(murmurHash3_128('foo', 'foo', 'foo'));┌─hex(murmurHash3_128('foo', 'foo', 'foo'))─┐
│ F8F7AD9B6CD4CF117A71E277E2EC2931 │
└───────────────────────────────────────────┘murmurHash3_32
Introduzido em: v18.10.0
Produz um valor de hash MurmurHash3.
Sintaxe
murmurHash3_32(arg1[, arg2, ...])Argumentos
arg1[, arg2, ...]— Um número variável de argumentos de entrada para os quais o hash deve ser calculado.Any
Valor retornado
Retorna o valor de hash calculado para os argumentos de entrada. UInt32
Exemplos
Exemplo de uso
SELECT murmurHash3_32(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS MurmurHash3, toTypeName(MurmurHash3) AS type;┌─MurmurHash3─┬─type───┐
│ 317985299 │ UInt32 │
└─────────────┴────────┘murmurHash3_64
Introduzido em: v18.10.0
Calcula o hash MurmurHash3 do valor de entrada.
Sintaxe
murmurHash3_64(arg1[, arg2, ...])Argumentos
arg1[, arg2, ...]— Um número variável de argumentos de entrada para os quais o hash será calculado.Any
Valor retornado
Retorna o valor de hash calculado para os argumentos de entrada. UInt64
Exemplos
Exemplo de uso
SELECT murmurHash3_64(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS MurmurHash3, toTypeName(MurmurHash3) AS type;┌──────────MurmurHash3─┬─type───┐
│ 11285022984631508790 │ UInt64 │
└──────────────────────┴────────┘ngramMinHash
Introduzido em: v21.1.0
Divide uma string ASCII em n-grams de ngramsize símbolos, calcula os valores de hash de cada n-gram e retorna uma Tuple com esses hashes.
Usa hashnum hashes mínimos para calcular o hash mínimo e hashnum hashes máximos para calcular o hash máximo.
Diferencia maiúsculas de minúsculas.
Pode ser usado para detectar strings semiduplicadas com tupleHammingDistance.
Para duas strings, se os hashes retornados forem iguais para ambas, então essas strings são iguais.
Sintaxe
ngramMinHash(string[, ngramsize, hashnum])Argumentos
string—Stringcujo hash será calculado.Stringngramsize— Opcional. O tamanho de um n-grama, qualquer valor de1a25. O valor padrão é3.UInt8hashnum— Opcional. A quantidade de hashes mínimos e máximos usada para calcular o resultado, qualquer valor de1a25. O valor padrão é6.UInt8
Valor retornado
Retorna uma tupla com dois hashes — o mínimo e o máximo. Tuple
Exemplos
Exemplo de uso
SELECT ngramMinHash('ClickHouse') AS Tuple;┌─Tuple──────────────────────────────────────┐
│ (18333312859352735453,9054248444481805918) │
└────────────────────────────────────────────┘ngramMinHashArg
Introduzido em: v21.1.0
Divide uma string ASCII em n-grama de ngramsize símbolos e retorna os n-grama com o menor e o maior hash, calculados pela função ngramMinHash com a mesma entrada.
Diferencia maiúsculas de minúsculas.
Sintaxe
ngramMinHashArg(string[, ngramsize, hashnum])Argumentos
string— String para a qual será calculado o hash.Stringngramsize— Opcional. O tamanho de um n-gram, qualquer número de1a25. O valor padrão é3.UInt8hashnum— Opcional. O número de hashes mínimos e máximos usados para calcular o resultado, qualquer número de1a25. O valor padrão é6.UInt8
Valor retornado
Retorna uma tupla contendo duas tuplas, cada uma com hashnum n-grama. Tuple(String)
Exemplos
Exemplo de uso
SELECT ngramMinHashArg('ClickHouse') AS Tuple;┌─Tuple─────────────────────────────────────────────────────────────────────────┐
│ (('ous','ick','lic','Hou','kHo','use'),('Hou','lic','ick','ous','ckH','Cli')) │
└───────────────────────────────────────────────────────────────────────────────┘ngramMinHashArgCaseInsensitive
Introduzido em: v21.1.0
Divide uma string ASCII em n-grams de ngramsize símbolos e retorna os n-grams com os hashes mínimo e máximo, calculados com a função ngramMinHashCaseInsensitive usando a mesma entrada.
Não diferencia maiúsculas de minúsculas.
Sintaxe
ngramMinHashArgCaseInsensitive(string[, ngramsize, hashnum])Argumentos
string— String para a qual o hash será calculado.Stringngramsize— Opcional. O tamanho de um n-grama, qualquer número de1a25. O valor padrão é3.UInt8hashnum— Opcional. O número de hashes mínimos e máximos usados para calcular o resultado, qualquer número de1a25. O valor padrão é6.UInt8
Valor retornado
Retorna uma tupla contendo duas tuplas, cada uma com hashnum n-gramas. Tuple(Tuple(String))
Exemplos
Exemplo de uso
SELECT ngramMinHashArgCaseInsensitive('ClickHouse') AS Tuple;┌─Tuple─────────────────────────────────────────────────────────────────────────┐
│ (('ous','ick','lic','kHo','use','Cli'),('kHo','lic','ick','ous','ckH','Hou')) │
└───────────────────────────────────────────────────────────────────────────────┘ngramMinHashArgCaseInsensitiveUTF8
Introduzido em: v21.1.0
Divide uma string UTF-8 em n-grams de ngramsize símbolos e retorna os n-grams com os hashes mínimo e máximo, calculados pela função ngramMinHashCaseInsensitiveUTF8 para a mesma entrada.
Não diferencia maiúsculas de minúsculas.
Sintaxe
ngramMinHashArgCaseInsensitiveUTF8(string[, ngramsize, hashnum])Argumentos
string— String cujo hash será calculado.Stringngramsize— Opcional. O tamanho de um n-grama, qualquer valor de1a25. O valor padrão é3.UInt8hashnum— Opcional. O número de hashes mínimos e máximos usados para calcular o resultado, qualquer valor de1a25. O valor padrão é6.UInt8
Valor retornado
Retorna uma tupla contendo duas tuplas, cada uma com hashnum n-gramas. Tuple(Tuple(String))
Exemplos
Exemplo de uso
SELECT ngramMinHashArgCaseInsensitiveUTF8('ClickHouse') AS Tuple;┌─Tuple─────────────────────────────────────────────────────────────────────────┐
│ (('ckH','ous','ick','lic','kHo','use'),('kHo','lic','ick','ous','ckH','Hou')) │
└───────────────────────────────────────────────────────────────────────────────┘ngramMinHashArgUTF8
Introduzido em: v21.1.0
Divide uma string UTF-8 em n-grams de ngramsize símbolos e retorna os n-grams com os hashes mínimo e máximo, calculados pela função ngramMinHashUTF8 com a mesma entrada.
Diferencia maiúsculas de minúsculas.
Sintaxe
ngramMinHashArgUTF8(string[, ngramsize, hashnum])Argumentos
string— String para a qual o hash é calculado.Stringngramsize— Opcional. O tamanho de um n-grama, qualquer número de1a25. O valor padrão é3.UInt8hashnum— Opcional. O número de hashes mínimos e máximos usados para calcular o resultado, qualquer número de1a25. O valor padrão é6.UInt8
Valor retornado
Retorna uma tupla com duas tuplas, cada uma com hashnum n-gramas. Tuple(Tuple(String))
Exemplos
Exemplo de uso
SELECT ngramMinHashArgUTF8('ClickHouse') AS Tuple;┌─Tuple─────────────────────────────────────────────────────────────────────────┐
│ (('ous','ick','lic','Hou','kHo','use'),('kHo','Hou','lic','ick','ous','ckH')) │
└───────────────────────────────────────────────────────────────────────────────┘ngramMinHashCaseInsensitive
Introduzido em: v21.1.0
Divide uma string ASCII em n-grams de ngramsize símbolos, calcula os valores de hash de cada n-gram e retorna uma tupla com esses hashes.
Usa hashnum hashes mínimos para calcular o hash mínimo e hashnum hashes máximos para calcular o hash máximo.
Não diferencia maiúsculas de minúsculas.
Pode ser usada para detectar strings semiduplicado com tupleHammingDistance.
Para duas strings, se os hashes retornados forem os mesmos para ambas, então essas strings são iguais.
Sintaxe
ngramMinHashCaseInsensitive(string[, ngramsize, hashnum])Argumentos
string— String. String. -ngramsize— O tamanho de um n-grama. Opcional. Valores possíveis: qualquer número de1a25. Valor padrão:3. UInt8. -hashnum— O número de hashes mínimos e máximos usado para calcular o resultado. Opcional. Valores possíveis: qualquer número de1a25. Valor padrão:6. UInt8.
Valor retornado
tupla com dois hashes — o mínimo e o máximo. Tuple(UInt64, UInt64). Tuple
Exemplos
Exemplo de uso
SELECT ngramMinHashCaseInsensitive('ClickHouse') AS Tuple;┌─Tuple──────────────────────────────────────┐
│ (2106263556442004574,13203602793651726206) │
└────────────────────────────────────────────┘ngramMinHashCaseInsensitiveUTF8
Introduzido em: v21.1.0
Divide uma string UTF-8 em n-grams de ngramsize símbolos, calcula os valores de hash de cada n-gram e retorna uma tupla com esses hashes.
Usa hashnum hashes mínimos para calcular o hash mínimo e hashnum hashes máximos para calcular o hash máximo.
Não diferencia maiúsculas de minúsculas.
Pode ser usado para detectar strings semiduplicadas com tupleHammingDistance.
Para duas strings, se os hashes retornados forem iguais em ambas, então essas strings são iguais.
Sintaxe
ngramMinHashCaseInsensitiveUTF8(string [, ngramsize, hashnum])Argumentos
string— String para a qual o hash deve ser calculado.Stringngramsize— Opcional. O tamanho de um n-grama, qualquer número de1a25. O valor padrão é3.UInt8hashnum— Opcional. A quantidade de hashes mínimos e máximos usada para calcular o resultado, qualquer número de1a25. O valor padrão é6.UInt8
Valor retornado
Retorna uma tupla com dois hashes — o mínimo e o máximo. Tuple
Exemplos
Exemplo de uso
SELECT ngramMinHashCaseInsensitiveUTF8('ClickHouse') AS Tuple;┌─Tuple───────────────────────────────────────┐
│ (12493625717655877135,13203602793651726206) │
└─────────────────────────────────────────────┘ngramMinHashUTF8
Introduzido em: v21.1.0
Divide uma string UTF-8 em n-grams de ngramsize símbolos, calcula os valores de hash de cada n-gram e retorna uma tupla com esses hashes.
Usa hashnum hashes mínimos para calcular o hash mínimo e hashnum hashes máximos para calcular o hash máximo.
É sensível a maiúsculas e minúsculas.
Pode ser usado para detectar strings semiduplicado com tupleHammingDistance.
Para duas strings, se os hashes retornados forem iguais para ambas, então essas strings são iguais.
Sintaxe
ngramMinHashUTF8(string[, ngramsize, hashnum])Argumentos
string— String para a qual o hash será calculado.Stringngramsize— Opcional. O tamanho de um n-grama, qualquer número de1a25. O valor padrão é3.UInt8hashnum— Opcional. A quantidade de hashes mínimos e máximos usada para calcular o resultado, qualquer número de1a25. O valor padrão é6.UInt8
Valor retornado
Retorna uma tupla com dois hashes — o mínimo e o máximo. Tuple
Exemplos
Exemplo de uso
SELECT ngramMinHashUTF8('ClickHouse') AS Tuple;┌─Tuple──────────────────────────────────────┐
│ (18333312859352735453,6742163577938632877) │
└────────────────────────────────────────────┘ngramSimHash
Introduzido em: v21.1.0
Divide uma string ASCII em n-grams de ngramsize símbolos e retorna o simhash dos n-grams.
Pode ser usado para detectar strings semiduplicadas com bitHammingDistance.
Quanto menor a distância de Hamming entre os simhashes calculados de duas strings, maior a probabilidade de que essas strings sejam iguais.
Sintaxe
ngramSimHash(string[, ngramsize])Argumentos
string— String para a qual será calculado osimhashcom diferenciação entre maiúsculas e minúsculas.Stringngramsize— Opcional. O tamanho de um n-grama, qualquer número de1a25. O valor padrão é3.UInt8
Valor retornado
Retorna o hash calculado da string de entrada. UInt64
Exemplos
Exemplo de uso
SELECT ngramSimHash('ClickHouse') AS Hash;┌───────Hash─┐
│ 1627567969 │
└────────────┘ngramSimHashCaseInsensitive
Introduzido em: v21.1.0
Divide uma string ASCII em n-grams de ngramsize símbolos e retorna o simhash do n-gram.
Não diferencia maiúsculas de minúsculas.
Pode ser usado para detectar strings semiduplicadas com bitHammingDistance.
Quanto menor a distância de Hamming entre os simhashes calculados de duas strings, maior a probabilidade de que essas strings sejam iguais.
Sintaxe
ngramSimHashCaseInsensitive(string[, ngramsize])Argumentos
string— String para a qual calcular osimhashsem distinção entre maiúsculas e minúsculas.Stringngramsize— Opcional. O tamanho de um n-grama, qualquer valor de1a25. O valor padrão é3.UInt8
Valor retornado
Exemplos
Exemplo de uso
SELECT ngramSimHashCaseInsensitive('ClickHouse') AS Hash;┌──────Hash─┐
│ 562180645 │
└───────────┘ngramSimHashCaseInsensitiveUTF8
Introduzido em: v21.1.0
Divide uma string UTF-8 em n-grams de ngramsize símbolos e retorna o simhash do n-gram.
Não diferencia maiúsculas de minúsculas.
Pode ser usado para detectar strings semiduplicadas com bitHammingDistance. Quanto menor a distância de Hamming entre os simhashes calculados de duas strings, maior a probabilidade de que essas strings sejam iguais.
Sintaxe
ngramSimHashCaseInsensitiveUTF8(string[, ngramsize])Argumentos
string— String para a qual o hash é calculado.Stringngramsize— Opcional. O tamanho de um n-grama, qualquer número de1a25. O valor padrão é3.UInt8
Valor retornado
Retorna o valor de hash calculado. UInt64
Exemplos
Exemplo de uso
SELECT ngramSimHashCaseInsensitiveUTF8('ClickHouse') AS Hash;┌───────Hash─┐
│ 1636742693 │
└────────────┘ngramSimHashUTF8
Introduzido em: v21.1.0
Divide uma string codificada em UTF-8 em n-grams de ngramsize símbolos e retorna o simhash do n-gram.
Diferencia maiúsculas de minúsculas.
Pode ser usado para detectar strings semiduplicadas com bitHammingDistance.
Quanto menor a distância de Hamming entre os simhashes calculados de duas strings, maior a probabilidade de essas strings serem iguais.
Sintaxe
ngramSimHashUTF8(string[, ngramsize])Argumentos
string— String para a qual o hash será calculado.Stringngramsize— Opcional. O tamanho de um n-grama, qualquer número de1a25. O valor padrão é3.UInt8
Valor retornado
Retorna o valor de hash calculado. UInt64
Exemplos
Exemplo de uso
SELECT ngramSimHashUTF8('ClickHouse') AS Hash;┌───────Hash─┐
│ 1628157797 │
└────────────┘sipHash128
Introduzido em: v1.1.0
Como sipHash64, mas produz um valor de hash de 128 bits, ou seja, o estado final de xor-folding é calculado em 128 bits.
Sintaxe
sipHash128(arg1[, arg2, ...])Argumentos
arg1[, arg2, ...]— Um número variável de argumentos de entrada para os quais o hash deve ser calculado.Any
Valor retornado
Retorna um valor de hash SipHash de 128 bits. FixedString(16)
Exemplos
Exemplo de uso
SELECT hex(sipHash128('foo', '\x01', 3)) AS res;┌─res──────────────────────────────┐
│ 9DE516A64A414D4B1B609415E4523F24 │
└──────────────────────────────────┘sipHash128Keyed
Introduzido em: v23.2.0
Igual a sipHash128, mas recebe também um argumento de chave explícito em vez de usar uma chave fixa.
Sintaxe
sipHash128Keyed((k0, k1), [arg1, arg2, ...])Argumentos
(k0, k1)— Uma tupla de dois valores UInt64 que representam a chave.Tuple(UInt64, UInt64)arg1[, arg2, ...]— Um número variável de argumentos de entrada para os quais o hash deve ser calculado.Any
Valor retornado
Um hash SipHash de 128 bits do tipo FixedString(16). FixedString(16)
Exemplos
Exemplo de uso
SELECT hex(sipHash128Keyed((506097522914230528, 1084818905618843912), 'foo', '\x01', 3)) AS res;┌─res──────────────────────────────┐
│ B8467F65C8B4CFD9A5F8BD733917D9BF │
└──────────────────────────────────┘sipHash128Reference
Introduzido em: v23.2.0
Semelhante a sipHash128, mas implementa o algoritmo de 128 bits original dos autores do SipHash.
Sintaxe
sipHash128Reference(arg1[, arg2, ...])Argumentos
arg1[, arg2, ...]— Um número variável de argumentos de entrada para os quais o hash deve ser calculado.Any
Valor retornado
Retorna o valor de hash SipHash de 128 bits calculado a partir dos argumentos de entrada. FixedString(16)
Exemplos
Exemplo de uso
SELECT hex(sipHash128Reference('foo', '\x01', 3)) AS res;┌─res──────────────────────────────┐
│ C3AA2F3C06A14DBE3742E9107AA9765D │
└──────────────────────────────────┘sipHash128ReferenceKeyed
Introduzido na versão: v23.2.0
Igual a sipHash128Reference, mas também recebe um argumento de chave explícito em vez de usar uma chave fixa.
Sintaxe
sipHash128ReferenceKeyed((k0, k1), arg1[, arg2, ...])Argumentos
(k0, k1)— tupla de dois valores que representam a chaveTuple(UInt64, UInt64)arg1[, arg2, ...]— Um número variável de argumentos de entrada para os quais o hash deve ser calculado.Any
Valor retornado
Retorna o hash SipHash de 128 bits calculado a partir dos argumentos de entrada. FixedString(16)
Exemplos
Exemplo de uso
SELECT hex(sipHash128ReferenceKeyed((506097522914230528, 1084818905618843912), 'foo', '\x01', 3)) AS res;┌─res──────────────────────────────┐
│ 1D010CC83FB5460C25B556CE40992E61 │
└──────────────────────────────────┘sipHash64
Introduzido em: v1.1.0
Produz um valor de hash SipHash de 64 bits.
Esta é uma função de hash criptográfica. Ela funciona pelo menos três vezes mais rápido do que a função de hash MD5.
A função interpreta todos os parâmetros de entrada como strings e calcula o valor de hash de cada um deles. Em seguida, combina os hashes usando o seguinte algoritmo:
- O primeiro e o segundo valor de hash são concatenados em um array, que é submetido a hash.
- O valor de hash calculado anteriormente e o hash do terceiro parâmetro de entrada são submetidos a hash de maneira semelhante.
- Esse cálculo é repetido para todos os valores de hash restantes da entrada original.
Sintaxe
sipHash64(arg1[, arg2, ...])Argumentos
arg1[, arg2, ...]— Um número variável de argumentos de entrada.Any
Valor retornado
Retorna um valor de hash calculado a partir dos argumentos de entrada. UInt64
Exemplos
Exemplo de uso
SELECT sipHash64(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS SipHash, toTypeName(SipHash) AS type;┌──────────────SipHash─┬─type───┐
│ 11348918044846389429 │ UInt64 │
└──────────────────────┴────────┘sipHash64Keyed
Introduzido em: v23.2.0
Como sipHash64, mas recebe adicionalmente um argumento de chave explícito em vez de usar uma chave fixa.
Sintaxe
sipHash64Keyed((k0, k1), arg1[,arg2, ...])Argumentos
(k0, k1)— Uma tupla de dois valores que representam a chave.Tuple(UInt64, UInt64)arg1[,arg2, ...]— Um número variável de argumentos de entrada.Any
Valor retornado
Retorna o hash calculado a partir dos valores de entrada. UInt64
Exemplos
Exemplo de uso
SELECT sipHash64Keyed((506097522914230528, 1084818905618843912), array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS SipHash, toTypeName(SipHash) AS type;┌─────────────SipHash─┬─type───┐
│ 8194087499447867747 │ UInt64 │
└─────────────────────┴────────┘wordShingleMinHash
Introduzido em: v21.1.0
Divide uma string ASCII em partes (shingles) de shinglesize palavras, calcula os valores de hash para cada shingle de palavras e retorna uma tupla com esses hashes.
Usa hashnum hashes mínimos para calcular o hash mínimo e hashnum hashes máximos para calcular o hash máximo.
Diferencia maiúsculas de minúsculas.
Pode ser usado para detectar strings semiduplicadas com tupleHammingDistance.
Para duas strings, se os hashes retornados forem os mesmos para ambas, então essas strings são iguais.
Sintaxe
wordShingleMinHash(string[, shinglesize, hashnum])Argumentos
string— String para a qual o hash será calculado.Stringshinglesize— Opcional. O tamanho de um shingle de palavras, qualquer número de1a25. O valor padrão é3.UInt8hashnum— Opcional. O número de hashes mínimos e máximos usados para calcular o resultado, qualquer número de1a25. O valor padrão é6.UInt8
Valor retornado
Retorna uma tupla com dois hashes — o mínimo e o máximo. Tuple(UInt64, UInt64)
Exemplos
Exemplo de uso
SELECT wordShingleMinHash('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).') AS Tuple;┌─Tuple──────────────────────────────────────┐
│ (16452112859864147620,5844417301642981317) │
└────────────────────────────────────────────┘wordShingleMinHashArg
Introduzido na versão: v1.1.0
Divide uma string ASCII em partes (shingles) de shinglesize palavras cada e retorna os shingles com o hash mínimo e o hash máximo das palavras, calculados pela função wordShingleMinHash com a mesma entrada.
Diferencia maiúsculas de minúsculas.
Sintaxe
wordShingleMinHashArg(string[, shinglesize, hashnum])Argumentos
string— String para a qual o hash será calculado.Stringshinglesize— Opcional. O tamanho de um shingle de palavras, qualquer número de1a25. O valor padrão é3.UInt8hashnum— Opcional. O número de hashes mínimos e máximos usados para calcular o resultado, qualquer número de1a25. O valor padrão é6.UInt8
Valor retornado
Retorna uma tupla contendo duas tuplas, cada uma com hashnum shingles de palavras. Tuple(Tuple(String))
Exemplos
Exemplo de uso
SELECT wordShingleMinHashArg('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).', 1, 3) AS Tuple;┌─Tuple─────────────────────────────────────────────────────────────────┐
│ (('OLAP','database','analytical'),('online','oriented','processing')) │
└───────────────────────────────────────────────────────────────────────┘wordShingleMinHashArgCaseInsensitive
Introduzido em: v21.1.0
Divide uma string ASCII em partes (shingles) de shinglesize palavras cada e retorna os shingles com os hashes mínimo e máximo das palavras, calculados pela função wordShingleMinHashCaseInsensitive para a mesma entrada.
Não diferencia letras maiúsculas de minúsculas.
Sintaxe
wordShingleMinHashArgCaseInsensitive(string[, shinglesize, hashnum])Argumentos
string— String para a qual o hash será calculado.Stringshinglesize— Opcional. O tamanho de um shingle de palavras, qualquer número de1a25. O valor padrão é3.UInt8hashnum— Opcional. O número de hashes mínimos e máximos usados para calcular o resultado, qualquer número de1a25. O valor padrão é6.UInt8
Valor retornado
Retorna uma tupla com duas tuplas, cada uma com hashnum shingles de palavras. Tuple(Tuple(String))
Exemplos
Exemplo de uso
SELECT wordShingleMinHashArgCaseInsensitive('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).', 1, 3) AS Tuple;┌─Tuple──────────────────────────────────────────────────────────────────┐
│ (('queries','database','analytical'),('oriented','processing','DBMS')) │
└────────────────────────────────────────────────────────────────────────┘wordShingleMinHashArgCaseInsensitiveUTF8
Introduzido em: v21.1.0
Divide uma string UTF-8 em partes (shingles) de shinglesize palavras cada e retorna os shingles com o hash mínimo e o hash máximo das palavras, calculados pela função wordShingleMinHashCaseInsensitiveUTF8 com a mesma entrada.
Não diferencia maiúsculas de minúsculas.
Sintaxe
wordShingleMinHashArgCaseInsensitiveUTF8(string[, shinglesize, hashnum])Argumentos
string— String para a qual o hash será calculado.Stringshinglesize— Opcional. O tamanho de um shingle de palavras, qualquer número de1a25. O valor padrão é3.UInt8hashnum— Opcional. O número de hashes mínimos e máximos usados para calcular o resultado, qualquer número de1a25. O valor padrão é6.UInt8
Valor retornado
Retorna uma tupla com duas tuplas, cada uma com hashnum shingles de palavras. Tuple(Tuple(String))
Exemplos
Exemplo de uso
SELECT wordShingleMinHashArgCaseInsensitiveUTF8('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).', 1, 3) AS Tuple;┌─Tuple──────────────────────────────────────────────────────────────────┐
│ (('queries','database','analytical'),('oriented','processing','DBMS')) │
└────────────────────────────────────────────────────────────────────────┘wordShingleMinHashArgUTF8
Introduzido em: v21.1.0
Divide uma string UTF-8 em partes (shingles) de shinglesize palavras cada e retorna os shingles com o hash mínimo e o máximo das palavras, calculados pela função wordShingleMinHashUTF8 com a mesma entrada.
Diferencia maiúsculas de minúsculas.
Sintaxe
wordShingleMinHashArgUTF8(string[, shinglesize, hashnum])Argumentos
string— String para a qual o hash será calculado.Stringshinglesize— Opcional. O tamanho de um shingle de palavras, qualquer número de1a25. O valor padrão é3.UInt8hashnum— Opcional. O número de hashes mínimos e máximos usados para calcular o resultado, qualquer número de1a25. O valor padrão é6.UInt8
Valor retornado
Retorna uma tupla contendo duas tuplas, cada uma com hashnum shingles de palavras. Tuple(Tuple(String))
Exemplos
Exemplo de uso
SELECT wordShingleMinHashArgUTF8('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).', 1, 3) AS Tuple;┌─Tuple─────────────────────────────────────────────────────────────────┐
│ (('OLAP','database','analytical'),('online','oriented','processing')) │
└───────────────────────────────────────────────────────────────────────┘wordShingleMinHashCaseInsensitive
Introduzido na versão: v21.1.0
Divide uma string ASCII em partes (shingles) de shinglesize palavras, calcula os valores de hash de cada shingle de palavras e retorna uma tupla com esses hashes.
Usa hashnum hashes mínimos para calcular o hash mínimo e hashnum hashes máximos para calcular o hash máximo.
Não diferencia letras maiúsculas de minúsculas.
Pode ser usado para detectar strings semiduplicadas com tupleHammingDistance.
Para duas strings, se os hashes retornados forem iguais para ambas, então essas strings são iguais.
Sintaxe
wordShingleMinHashCaseInsensitive(string[, shinglesize, hashnum])Argumentos
string—Stringpara a qual o hash será calculado.Stringshinglesize— Opcional. O tamanho de um shingle de palavras; pode ser qualquer número de1a25. O valor padrão é3.UInt8hashnum— Opcional. O número de hashes mínimos e máximos usados para calcular o resultado; pode ser qualquer número de1a25. O valor padrão é6.UInt8
Valor retornado
Retorna uma tupla com dois hashes — o mínimo e o máximo. Tuple(UInt64, UInt64)
Exemplos
Exemplo de uso
SELECT wordShingleMinHashCaseInsensitive('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).') AS Tuple;┌─Tuple─────────────────────────────────────┐
│ (3065874883688416519,1634050779997673240) │
└───────────────────────────────────────────┘wordShingleMinHashCaseInsensitiveUTF8
Introduzido em: v21.1.0
Divide uma string UTF-8 em partes (shingles) de shinglesize palavras, calcula os valores de hash para cada shingle de palavras e retorna uma tupla com esses hashes.
Usa hashnum hashes mínimos para calcular o hash mínimo e hashnum hashes máximos para calcular o hash máximo.
Não diferencia letras maiúsculas de minúsculas.
Pode ser usado para detectar strings semiduplicadas com tupleHammingDistance.
Para duas strings, se os hashes retornados forem os mesmos para ambas, então essas strings são iguais.
Sintaxe
wordShingleMinHashCaseInsensitiveUTF8(string[, shinglesize, hashnum])Argumentos
string— String para a qual o hash será calculado.Stringshinglesize— Opcional. O tamanho de um shingle de palavras, qualquer número de1a25. O valor padrão é3.UInt8hashnum— Opcional. A quantidade de hashes mínimo e máximo usada para calcular o resultado, qualquer número de1a25. O valor padrão é6.UInt8
Valor retornado
Retorna uma tupla com dois hashes — o mínimo e o máximo. Tuple(UInt64, UInt64)
Exemplos
Exemplo de uso
SELECT wordShingleMinHashCaseInsensitiveUTF8('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).') AS Tuple;┌─Tuple─────────────────────────────────────┐
│ (3065874883688416519,1634050779997673240) │
└───────────────────────────────────────────┘wordShingleMinHashUTF8
Introduzido em: v21.1.0
Divide uma string UTF-8 em partes (shingles) de shinglesize palavras, calcula os valores de hash para cada word shingle e retorna uma tupla com esses hashes.
Usa hashnum hashes mínimos para calcular o hash mínimo e hashnum hashes máximos para calcular o hash máximo.
Diferencia maiúsculas de minúsculas.
Pode ser usada para detectar strings semiduplicadas com tupleHammingDistance.
Para duas strings, se os hashes retornados forem os mesmos para ambas, então essas strings são iguais.
Sintaxe
wordShingleMinHashUTF8(string[, shinglesize, hashnum])Argumentos
string— String para a qual o hash será calculado.Stringshinglesize— Opcional. O tamanho de um shingle de palavras, qualquer número de1a25. O valor padrão é3.UInt8hashnum— Opcional. O número de hashes mínimos e máximos usados para calcular o resultado, qualquer número de1a25. O valor padrão é6.UInt8
Valor retornado
Retorna uma tupla com dois hashes — o mínimo e o máximo. Tuple(UInt64, UInt64)
Exemplos
Exemplo de uso
SELECT wordShingleMinHashUTF8('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).') AS Tuple;┌─Tuple──────────────────────────────────────┐
│ (16452112859864147620,5844417301642981317) │
└────────────────────────────────────────────┘wordShingleSimHash
Introduzido em: v21.1.0
Divide uma string ASCII em partes (shingles) de shinglesize palavras e retorna o simhash dos shingles de palavras.
Diferencia maiúsculas de minúsculas.
Pode ser usado para detectar strings semiduplicadas com bitHammingDistance.
Quanto menor a distância de Hamming entre os simhashes calculados de duas strings, maior a probabilidade de essas strings serem iguais.
Sintaxe
wordShingleSimHash(string[, shinglesize])Argumentos
string— String para a qual o hash será calculado.Stringshinglesize— Opcional. O tamanho de um shingle de palavras, qualquer número de1a25. O valor padrão é3.UInt8
Valor retornado
Retorna o valor de hash calculado. UInt64
Exemplos
Exemplo de uso
SELECT wordShingleSimHash('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).') AS Hash;┌───────Hash─┐
│ 2328277067 │
└────────────┘wordShingleSimHashCaseInsensitive
Introduzido na versão: v21.1.0
Divide uma string ASCII em partes (shingles) de shinglesize palavras e retorna o simhash do shingle de palavras.
Não diferencia maiúsculas de minúsculas.
Pode ser usado para detectar strings semiduplicadas com bitHammingDistance.
Quanto menor a distância de Hamming entre os simhashes calculados de duas strings, maior a probabilidade de essas strings serem iguais.
Sintaxe
wordShingleSimHashCaseInsensitive(string[, shinglesize])Argumentos
string— String para a qual o hash será calculado.Stringshinglesize— Opcional. O tamanho de um shingle de palavras, qualquer número de1a25. O valor padrão é3.UInt8
Valor retornado
Retorna o valor de hash calculado. UInt64
Exemplos
Exemplo de uso
SELECT wordShingleSimHashCaseInsensitive('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).') AS Hash;┌───────Hash─┐
│ 2194812424 │
└────────────┘wordShingleSimHashCaseInsensitiveUTF8
Introduzido em: v1.1.0
Divide uma string codificada em UTF-8 em partes (shingles) de shinglesize palavras e retorna o simhash do shingle de palavras.
Não diferencia maiúsculas de minúsculas.
Pode ser usado para detectar strings semiduplicadas com bitHammingDistance.
Quanto menor a Distância de Hamming dos simhashes calculados de duas strings, maior a probabilidade de essas strings serem iguais.
Sintaxe
wordShingleSimHashCaseInsensitiveUTF8(string[, shinglesize])Argumentos
string— String para a qual o hash será calculado.Stringshinglesize— Opcional. O tamanho de um shingle de palavras, qualquer valor de1a25. O valor padrão é3.UInt8
Valor retornado
Retorna o valor de hash calculado. UInt64
Exemplos
Exemplo de uso
SELECT wordShingleSimHashCaseInsensitiveUTF8('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).') AS Hash;┌───────Hash─┐
│ 2194812424 │
└────────────┘wordShingleSimHashUTF8
Introduzido em: v21.1.0
Divide uma string UTF-8 em partes (shingles) de shinglesize palavras e retorna o simhash do shingle de palavras.
Diferencia maiúsculas de minúsculas.
Pode ser usado para detectar strings semiduplicadas com bitHammingDistance.
Quanto menor a distância de Hamming entre os simhashes calculados de duas strings, maior a probabilidade de essas strings serem iguais.
Sintaxe
wordShingleSimHashUTF8(string[, shinglesize])Argumentos
string— String para a qual o hash será calculado.Stringshinglesize— Opcional. O tamanho de um shingle de palavras, qualquer número de1a25. O valor padrão é3.UInt8
Valor retornado
Retorna o valor de hash calculado. UInt64
Exemplos
Exemplo de uso
SELECT wordShingleSimHashUTF8('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).') AS Hash;┌───────Hash─┐
│ 2328277067 │
└────────────┘wyHash64
Introduzido em: v22.7.0
Calcula um valor de hash wyHash64 de 64 bits.
Sintaxe
wyHash64(arg)Argumentos
arg— ArgumentoStringcujo hash será calculado.String
Valor retornado
Retorna o valor de hash calculado de 64 bits UInt64
Exemplos
Exemplo de uso
SELECT wyHash64('ClickHouse') AS Hash;12336419557878201794xxHash32
Introduzido em: v20.1.0
Calcula um xxHash de uma string.
Para a versão de 64 bits, consulte xxHash64
Sintaxe
xxHash32(arg)Argumentos
arg— String de entrada para gerar o hash.String
Valor retornado
Retorna o hash de 32 bits calculado a partir da string de entrada. UInt32
Exemplos
Exemplo de uso
SELECT xxHash32('Hello, world!');┌─xxHash32('Hello, world!')─┐
│ 834093149 │
└───────────────────────────┘xxHash64
Introduzido em: v20.1.0
Calcula um xxHash de uma string.
Para a versão de 32 bits, consulte xxHash32
Sintaxe
xxHash64(arg)Argumentos
arg— String de entrada para gerar o hash.String
Valor retornado
Retorna o hash de 64 bits da string de entrada. UInt64
Exemplos
Exemplo de uso
SELECT xxHash64('Hello, world!');┌─xxHash64('Hello, world!')─┐
│ 17691043854468224118 │
└───────────────────────────┘xxHash64Spark
Introduzido em: v26.7.0
Calcula um xxHash de uma string usando a mesma seed do Spark.
Esta função é igual a xxHash64, mas usa a seed 42 e retorna o resultado como Int64.
Há suporte apenas para entradas String e NULL.
Para NULL, a função retorna 42, em conformidade com o comportamento da seed no Spark.
Sintaxe
xxHash64Spark(arg)Argumentos
arg— string de entrada para cálculo do hash.String
Valor retornado
Retorna o hash de 64 bits calculado a partir da string de entrada. Int64
Exemplos
Exemplo de uso
SELECT xxHash64Spark('ABC');┌─xxHash64Spark('ABC')─┐
│ 4105715581806190027 │
└──────────────────────┘xxh3
Introduzido em: v22.12.0
Calcula um valor de hash XXH3 de 64 bits.
Sintaxe
xxh3(expr)Argumentos
expr— Uma lista de expressões de qualquer tipo de dado.Any
Valor retornado
Retorna o valor de hash xxh3 calculado de 64 bits UInt64
Exemplos
Exemplo de uso
SELECT xxh3('ClickHouse')18009318874338624809xxh3_128
Introduzido na versão: v26.2.0
Calcula um valor de hash XXH3 de 128 bits.
Sintaxe
xxh3_128(expr)Argumentos
expr— Uma lista de expressões de qualquer tipo de dado.Any
Valor retornado
Retorna o valor de hash xxh3 calculado de 128 bits UInt128
Exemplos
Exemplo de uso
SELECT hex(xxh3_128('ClickHouse'))14C27B7BEF95D36FECF5520CA2DAF030