Pular para o conteúdo principal
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.
O hash de NULL é NULL. Para obter um hash não NULL de uma coluna Nullable, envolva-a em uma tupla:
SELECT cityHash64(tuple(NULL))
Para calcular o hash de todo o conteúdo de uma tabela, use sum(cityHash64(tuple(*))) (ou outra função de hash). tuple garante que linhas com valores NULL não sejam ignoradas. sum garante que a ordem das linhas não importe.

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
Query
SELECT hex(BLAKE3('ABC'))
Response
┌─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 gerar 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
Query
SELECT HEX(MD4('abc'));
Response
┌─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
Query
SELECT HEX(MD5('abc'));
Response
┌─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
Query
SELECT HEX(RIPEMD160('The quick brown fox jumps over the lazy dog'));
Response
┌─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 gerar o hash String
Valor retornado Retorna o hash SHA1 da string de entrada fornecida como uma string de tamanho fixo. FixedString(20) Exemplos Exemplo de uso
Query
SELECT HEX(SHA1('abc'));
Response
┌─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 comprimento fixo. FixedString(28) Exemplos Exemplo de uso
Query
SELECT HEX(SHA224('abc'));
Response
┌─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 gerar o hash. String
Valor retornado Retorna o hash SHA256 da string de entrada especificada como uma string de comprimento fixo. FixedString(32) Exemplos Exemplo de uso
Query
SELECT HEX(SHA256('abc'));
Response
┌─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 gerar o hash. String
Valor retornado Retorna o hash SHA384 da string de entrada informada como uma string de comprimento fixo. FixedString(48) Exemplos Exemplo de uso
Query
SELECT HEX(SHA384('abc'));
Response
┌─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 gerar o hash String
Valor retornado Retorna o hash SHA512 da string de entrada informada como uma string de comprimento fixo. FixedString(64) Exemplos Exemplo de uso
Query
SELECT HEX(SHA512('abc'));
Response
┌─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 gerar 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
Query
SELECT HEX(SHA512_256('abc'));
Response
┌─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:
ModoDescriçã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
  • url — String da URL para calcular o hash. String
  • N — Opcional. Nível na hierarquia da URL. (U)Int*
Valor retornado Retorna o valor de hash calculado para url. UInt64 Exemplos Exemplo de uso
Query
SELECT URLHash('https://www.clickhouse.com')
Response
┌─URLHash('htt⋯house.com')─┐
│     13614512636072854701 │
└──────────────────────────┘
Hash da URL com o nível especificado
Query
SELECT URLHash('https://www.clickhouse.com/docs', 0);
SELECT URLHash('https://www.clickhouse.com/docs', 1);
Response
-- hash de https://www.clickhouse.com
┌─URLHash('htt⋯m/docs', 0)─┐
│     13614512636072854701 │
└──────────────────────────┘
-- hash de https://www.clickhouse.com/docs
┌─URLHash('htt⋯m/docs', 1)─┐
│     13167253331440520598 │
└──────────────────────────┘

cityHash64

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.
O Google alterou o algoritmo do CityHash depois que ele foi adicionado ao ClickHouse. Em outras palavras, o cityHash64 do ClickHouse e o CityHash upstream do Google agora produzem resultados diferentes. O cityHash64 do ClickHouse corresponde ao CityHash v1.0.2.
Os valores de hash calculados podem ser iguais para os mesmos valores de entrada de diferentes tipos de argumento. Isso afeta, por exemplo, tipos inteiros de tamanhos diferentes, Tuple com nome e sem nome com os mesmos dados, Map e o tipo Array(Tuple(key, value)) correspondente com os mesmos dados.
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
Query
SELECT cityHash64(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS CityHash, toTypeName(CityHash) AS type;
Response
┌─────────────CityHash─┬─type───┐
│ 12072650598913549138 │ UInt64 │
└──────────────────────┴────────┘
Calculando o checksum da tabela inteira, levando em conta a ordem das linhas
Query
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;
Response
┌─groupBitXor(⋯age, city))─┐
│     11639977218258521182 │
└──────────────────────────┘

farmFingerprint64

Introduzido em: v20.12.0 Produz um valor FarmHash de 64 bits usando o método Fingerprint64.
farmFingerprint64 é preferível quando se deseja um valor estável e portátil, em vez de farmHash64.
Os valores de hash calculados podem ser iguais para os mesmos valores de entrada com diferentes tipos de argumento. Isso afeta, por exemplo, tipos inteiros de tamanhos diferentes, Tuple nomeada e não nomeada com os mesmos dados, Map e o tipo correspondente Array(Tuple(key, value)) com os mesmos dados.
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
Query
SELECT farmFingerprint64(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS FarmFingerprint, toTypeName(FarmFingerprint) AS type;
Response
┌─────FarmFingerprint─┬─type───┐
│ 5752020380710916328 │ UInt64 │
└─────────────────────┴────────┘

farmHash64

Introduzido em: v1.1.0 Produz um FarmHash de 64 bits usando o método Hash64.
farmFingerprint64 é a opção preferida para um valor estável e portátil.
Os valores de hash calculados podem ser iguais para os mesmos valores de entrada de tipos de argumento diferentes. Isso afeta, por exemplo, tipos inteiros de tamanhos diferentes, Tuple nomeadas e não nomeadas com os mesmos dados, Map e o tipo Array(Tuple(key, value)) correspondente com os mesmos dados.
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
Query
SELECT farmHash64(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS FarmHash, toTypeName(FarmHash) AS type;
Response
┌─────────────FarmHash─┬─type───┐
│ 18125596431186471178 │ 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
Query
SELECT
    gccMurmurHash(1, 2, 3) AS res1,
    gccMurmurHash(('a', [1, 2, 3], 4, (4, ['foo', 'bar'], 1, (1, 2)))) AS res2
Response
┌─────────────────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
Query
SELECT HEX(halfMD5('abc', 'cde', 'fgh'));
Response
┌─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.
Essa função de hash tem baixo desempenho. Use-a apenas quando esse algoritmo já for usado em outro sistema e você precisar calcular o mesmo resultado.
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
Query
SELECT hiveHash('Hello, world!');
Response
┌─hiveHash('Hello, world!')─┐
│                 267439093 │
└───────────────────────────┘

icebergHash

Introduzido em: v25.5.0 Implementa a lógica da transformação hash do Iceberg Sintaxe
icebergHash(value)
Argumentos Valor retornado Retorna um hash Murmur3 de 32 bits, variante x86, inicializado com 0 Int32 Exemplos Exemplo
Query
SELECT icebergHash(1.0 :: Float32)
Response
-142385009

intHash32

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
Query
SELECT intHash32(42);
Response
┌─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
Query
SELECT intHash64(42);
Response
┌────────intHash64(42)─┐
│ 11490350930367293593 │
└──────────────────────┘

javaHash

Introduzido em: v20.1.0 Calcula JavaHash a partir de:
Esta função de hash é pouco eficiente. Use-a somente quando esse algoritmo já estiver em uso em outro sistema e você precisar calcular o mesmo resultado.
O Java só oferece suporte ao cálculo de hash de inteiros com sinal, portanto, se você quiser calcular o hash de inteiros sem sinal, deverá fazer cast deles para os tipos com sinal apropriados do ClickHouse.
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
Query
SELECT javaHash(toInt32(123));
Response
┌─javaHash(toInt32(123))─┐
│               123      │
└────────────────────────┘
Exemplo de uso 2
Query
SELECT javaHash('Hello, world!');
Response
┌─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
Query
SELECT javaHashUTF16LE(convertCharset('test', 'utf-8', 'utf-16le'));
Response
┌─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
  • key — A chave de entrada. UInt64
  • buckets — A quantidade de buckets. Int32
Valor retornado Retorna o valor de hash calculado. Int32 Exemplos Exemplo de uso
Query
SELECT jumpConsistentHash(256, 4)
Response
┌─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
Query
SELECT
    kafkaMurmurHash('foobar') AS res1,
    kafkaMurmurHash(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS res2
Response
┌───────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
Query
SELECT hex(keccak256('hello'))
Response
┌─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
  • input — Uma chave do tipo inteiro. UInt64
  • n — O número de buckets. UInt16
Valor retornado Retorna o valor de hash calculado. UInt16 Exemplos Exemplo de uso
Query
SELECT kostikConsistentHash(16045690984833335023, 2);
Response
┌─kostikConsistentHash(16045690984833335023, 2)─┐
│                                             1 │
└───────────────────────────────────────────────┘

metroHash64

Introduzido em: v1.1.0 Produz um valor de hash MetroHash de 64 bits.
Os valores de hash calculados podem ser iguais para os mesmos valores de entrada, mesmo quando os tipos de argumento são diferentes. Isso afeta, por exemplo, tipos inteiros de tamanhos diferentes, uma Tuple nomeada e outra não nomeada com os mesmos dados, Map e o tipo correspondente Array(Tuple(key, value)) com os mesmos dados.
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
Query
SELECT metroHash64(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS MetroHash, toTypeName(MetroHash) AS type;
Response
┌────────────MetroHash─┬─type───┐
│ 14235658766382344533 │ UInt64 │
└──────────────────────┴────────┘

murmurHash2_32

Introduzido em: v18.5.0 Calcula o hash MurmurHash2 do valor de entrada.
Os valores de hash calculados podem ser iguais para os mesmos valores de entrada de tipos de argumento diferentes. Isso afeta, por exemplo, tipos inteiros de tamanhos diferentes, Tuple nomeada e não nomeada com os mesmos dados, Map e o tipo Array(Tuple(key, value)) correspondente com os mesmos dados.
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
Query
SELECT murmurHash2_32(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS MurmurHash2, toTypeName(MurmurHash2) AS type;
Response
┌─MurmurHash2─┬─type───┐
│  3681770635 │ UInt32 │
└─────────────┴────────┘

murmurHash2_64

Introduzido em: v18.10.0 Calcula o hash MurmurHash2 do valor de entrada.
Os valores de hash calculados podem ser iguais para os mesmos valores de entrada com tipos de argumento diferentes. Isso afeta, por exemplo, tipos inteiros de tamanhos diferentes, Tuple nomeadas e não nomeadas com os mesmos dados, Map e o tipo correspondente Array(Tuple(key, value)) com os mesmos dados.
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
Query
SELECT murmurHash2_64(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS MurmurHash2, toTypeName(MurmurHash2) AS type;
Response
┌──────────MurmurHash2─┬─type───┐
│ 11832096901709403633 │ 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
Query
SELECT hex(murmurHash3_128('foo', 'foo', 'foo'));
Response
┌─hex(murmurHash3_128('foo', 'foo', 'foo'))─┐
│ F8F7AD9B6CD4CF117A71E277E2EC2931          │
└───────────────────────────────────────────┘

murmurHash3_32

Introduzido em: v18.10.0 Produz um valor de hash MurmurHash3.
Os valores de hash calculados podem ser iguais para os mesmos valores de entrada de tipos de argumento diferentes. Isso afeta, por exemplo, tipos inteiros de tamanhos diferentes, Tuple nomeada e não nomeada com os mesmos dados, Map e o tipo correspondente Array(Tuple(key, value)) com os mesmos dados.
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
Query
SELECT murmurHash3_32(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS MurmurHash3, toTypeName(MurmurHash3) AS type;
Response
┌─MurmurHash3─┬─type───┐
│     2152717 │ UInt32 │
└─────────────┴────────┘

murmurHash3_64

Introduzido em: v18.10.0 Calcula o hash MurmurHash3 do valor de entrada.
Os valores de hash calculados podem ser iguais para os mesmos valores de entrada com tipos de argumento diferentes. Isso afeta, por exemplo, tipos inteiros de tamanhos diferentes, tipos Tuple nomeados e não nomeados com os mesmos dados, Map e o tipo correspondente Array(Tuple(key, value)) com os mesmos dados.
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
Query
SELECT murmurHash3_64(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS MurmurHash3, toTypeName(MurmurHash3) AS type;
Response
┌──────────MurmurHash3─┬─type───┐
│ 11832096901709403633 │ 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
  • stringString cujo hash será calculado. String
  • ngramsize — Opcional. O tamanho de um n-grama, qualquer valor de 1 a 25. O valor padrão é 3. UInt8
  • hashnum — Opcional. A quantidade de hashes mínimos e máximos usada para calcular o resultado, qualquer valor de 1 a 25. 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
Query
SELECT ngramMinHash('ClickHouse') AS Tuple;
Response
┌─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. String
  • ngramsize — Opcional. O tamanho de um n-gram, qualquer número de 1 a 25. O valor padrão é 3. UInt8
  • hashnum — Opcional. O número de hashes mínimos e máximos usados para calcular o resultado, qualquer número de 1 a 25. 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
Query
SELECT ngramMinHashArg('ClickHouse') AS Tuple;
Response
┌─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. String
  • ngramsize — Opcional. O tamanho de um n-grama, qualquer número de 1 a 25. O valor padrão é 3. UInt8
  • hashnum — Opcional. O número de hashes mínimos e máximos usados para calcular o resultado, qualquer número de 1 a 25. 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
Query
SELECT ngramMinHashArgCaseInsensitive('ClickHouse') AS Tuple;
Response
┌─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. String
  • ngramsize — Opcional. O tamanho de um n-grama, qualquer valor de 1 a 25. O valor padrão é 3. UInt8
  • hashnum — Opcional. O número de hashes mínimos e máximos usados para calcular o resultado, qualquer valor de 1 a 25. 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
Query
SELECT ngramMinHashArgCaseInsensitiveUTF8('ClickHouse') AS Tuple;
Response
┌─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. String
  • ngramsize — Opcional. O tamanho de um n-grama, qualquer número de 1 a 25. O valor padrão é 3. UInt8
  • hashnum — Opcional. O número de hashes mínimos e máximos usados para calcular o resultado, qualquer número de 1 a 25. 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
Query
SELECT ngramMinHashArgUTF8('ClickHouse') AS Tuple;
Response
┌─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 de 1 a 25. 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 de 1 a 25. 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
Query
SELECT ngramMinHashCaseInsensitive('ClickHouse') AS Tuple;
Response
┌─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. String
  • ngramsize — Opcional. O tamanho de um n-grama, qualquer número de 1 a 25. O valor padrão é 3. UInt8
  • hashnum — Opcional. A quantidade de hashes mínimos e máximos usada para calcular o resultado, qualquer número de 1 a 25. 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
Query
SELECT ngramMinHashCaseInsensitiveUTF8('ClickHouse') AS Tuple;
Response
┌─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. String
  • ngramsize — Opcional. O tamanho de um n-grama, qualquer número de 1 a 25. O valor padrão é 3. UInt8
  • hashnum — Opcional. A quantidade de hashes mínimos e máximos usada para calcular o resultado, qualquer número de 1 a 25. 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
Query
SELECT ngramMinHashUTF8('ClickHouse') AS Tuple;
Response
┌─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 o simhash com diferenciação entre maiúsculas e minúsculas. String
  • ngramsize — Opcional. O tamanho de um n-grama, qualquer número de 1 a 25. O valor padrão é 3. UInt8
Valor retornado Retorna o hash calculado da string de entrada. UInt64 Exemplos Exemplo de uso
Query
SELECT ngramSimHash('ClickHouse') AS Hash;
Response
┌───────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 o simhash sem distinção entre maiúsculas e minúsculas. String
  • ngramsize — Opcional. O tamanho de um n-grama, qualquer valor de 1 a 25. O valor padrão é 3. UInt8
Valor retornado Valor de hash. UInt64. UInt64 Exemplos Exemplo de uso
Query
SELECT ngramSimHashCaseInsensitive('ClickHouse') AS Hash;
Response
┌──────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. String
  • ngramsize — Opcional. O tamanho de um n-grama, qualquer número de 1 a 25. O valor padrão é 3. UInt8
Valor retornado Retorna o valor de hash calculado. UInt64 Exemplos Exemplo de uso
Query
SELECT ngramSimHashCaseInsensitiveUTF8('ClickHouse') AS Hash;
Response
┌───────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. String
  • ngramsize — Opcional. O tamanho de um n-grama, qualquer número de 1 a 25. O valor padrão é 3. UInt8
Valor retornado Retorna o valor de hash calculado. UInt64 Exemplos Exemplo de uso
Query
SELECT ngramSimHashUTF8('ClickHouse') AS Hash;
Response
┌───────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.
use sipHash128Reference em novos projetosEsta variante de 128 bits difere da implementação de referência e é mais fraca. Esta versão existe porque, quando foi escrita, não havia uma extensão oficial de 128 bits para SipHash. Recomenda-se o uso de sipHash128Reference em novos projetos.
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
Query
SELECT hex(sipHash128('foo', '\x01', 3));
Response
┌─hex(sipHash128('foo', '', 3))────┐
│ 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.
use sipHash128ReferenceKeyed em novos projetosEsta variante de 128 bits difere da implementação de referência e é mais fraca. Esta versão existe porque, quando foi escrita, não havia uma extensão oficial de 128 bits para o SipHash. Novos projetos provavelmente devem usar sipHash128ReferenceKeyed.
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
Query
SELECT hex(sipHash128Keyed((506097522914230528, 1084818905618843912),'foo', '\x01', 3));
Response
┌─hex(sipHash128Keyed((506097522914230528, 1084818905618843912), 'foo', '', 3))─┐
│ 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
Query
SELECT hex(sipHash128Reference('foo', '', 3));
Response
┌─hex(sipHash128Reference('foo', '', 3))─┐
│ 4D1BE1A22D7F5933C0873E1698426260       │
└────────────────────────────────────────┘

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 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 Retorna o hash SipHash de 128 bits calculado a partir dos argumentos de entrada. FixedString(16) Exemplos Exemplo de uso
Query
SELECT hex(sipHash128Reference('foo', '', 3));
Response
┌─hex(sipHash128Reference('foo', '', 3))─┐
│ 4D1BE1A22D7F5933C0873E1698426260       │
└────────────────────────────────────────┘

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:
  1. O primeiro e o segundo valor de hash são concatenados em um array, que é submetido a hash.
  2. O valor de hash calculado anteriormente e o hash do terceiro parâmetro de entrada são submetidos a hash de maneira semelhante.
  3. Esse cálculo é repetido para todos os valores de hash restantes da entrada original.
os valores de hash calculados podem ser iguais para os mesmos valores de entrada de diferentes tipos de argumento. Isso afeta, por exemplo, tipos 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
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
Query
SELECT sipHash64(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS SipHash, toTypeName(SipHash) AS type;
Response
┌──────────────SipHash─┬─type───┐
│ 11400366955626497465 │ 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
Query
SELECT sipHash64Keyed((506097522914230528, 1084818905618843912), array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS SipHash, toTypeName(SipHash) AS type;
Response
┌─────────────SipHash─┬─type───┐
│ 8017656310194184311 │ 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. String
  • shinglesize — Opcional. O tamanho de um shingle de palavras, qualquer número de 1 a 25. O valor padrão é 3. UInt8
  • hashnum — Opcional. O número de hashes mínimos e máximos usados para calcular o resultado, qualquer número de 1 a 25. 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
Query
SELECT wordShingleMinHash('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).') AS Tuple;
Response
┌─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. String
  • shinglesize — Opcional. O tamanho de um shingle de palavras, qualquer número de 1 a 25. O valor padrão é 3. UInt8
  • hashnum — Opcional. O número de hashes mínimos e máximos usados para calcular o resultado, qualquer número de 1 a 25. 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
Query
SELECT wordShingleMinHashArg('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).', 1, 3) AS Tuple;
Response
┌─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. String
  • shinglesize — Opcional. O tamanho de um shingle de palavras, qualquer número de 1 a 25. O valor padrão é 3. UInt8
  • hashnum — Opcional. O número de hashes mínimos e máximos usados para calcular o resultado, qualquer número de 1 a 25. 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
Query
SELECT wordShingleMinHashArgCaseInsensitive('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).', 1, 3) AS Tuple;
Response
┌─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. String
  • shinglesize — Opcional. O tamanho de um shingle de palavras, qualquer número de 1 a 25. O valor padrão é 3. UInt8
  • hashnum — Opcional. O número de hashes mínimos e máximos usados para calcular o resultado, qualquer número de 1 a 25. 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
Query
SELECT wordShingleMinHashArgCaseInsensitiveUTF8('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).', 1, 3) AS Tuple;
Response
┌─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. String
  • shinglesize — Opcional. O tamanho de um shingle de palavras, qualquer número de 1 a 25. O valor padrão é 3. UInt8
  • hashnum — Opcional. O número de hashes mínimos e máximos usados para calcular o resultado, qualquer número de 1 a 25. 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
Query
SELECT wordShingleMinHashArgUTF8('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).', 1, 3) AS Tuple;
Response
┌─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
  • stringString para a qual o hash será calculado. String
  • shinglesize — Opcional. O tamanho de um shingle de palavras; pode ser qualquer número de 1 a 25. O valor padrão é 3. UInt8
  • hashnum — Opcional. O número de hashes mínimos e máximos usados para calcular o resultado; pode ser qualquer número de 1 a 25. 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
Query
SELECT wordShingleMinHashCaseInsensitive('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).') AS Tuple;
Response
┌─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. String
  • shinglesize — Opcional. O tamanho de um shingle de palavras, qualquer número de 1 a 25. O valor padrão é 3. UInt8
  • hashnum — Opcional. A quantidade de hashes mínimo e máximo usada para calcular o resultado, qualquer número de 1 a 25. 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
Query
SELECT wordShingleMinHashCaseInsensitiveUTF8('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).') AS Tuple;
Response
┌─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. String
  • shinglesize — Opcional. O tamanho de um shingle de palavras, qualquer número de 1 a 25. O valor padrão é 3. UInt8
  • hashnum — Opcional. O número de hashes mínimos e máximos usados para calcular o resultado, qualquer número de 1 a 25. 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
Query
SELECT wordShingleMinHashUTF8('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).') AS Tuple;
Response
┌─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. String
  • shinglesize — Opcional. O tamanho de um shingle de palavras, qualquer número de 1 a 25. O valor padrão é 3. UInt8
Valor retornado Retorna o valor de hash calculado. UInt64 Exemplos Exemplo de uso
Query
SELECT wordShingleSimHash('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).') AS Hash;
Response
┌───────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. String
  • shinglesize — Opcional. O tamanho de um shingle de palavras, qualquer número de 1 a 25. O valor padrão é 3. UInt8
Valor retornado Retorna o valor de hash calculado. UInt64 Exemplos Exemplo de uso
Query
SELECT wordShingleSimHashCaseInsensitive('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).') AS Hash;
Response
┌───────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. String
  • shinglesize — Opcional. O tamanho de um shingle de palavras, qualquer valor de 1 a 25. O valor padrão é 3. UInt8
Valor retornado Retorna o valor de hash calculado. UInt64 Exemplos Exemplo de uso
Query
SELECT wordShingleSimHashCaseInsensitiveUTF8('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).') AS Hash;
Response
┌───────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. String
  • shinglesize — Opcional. O tamanho de um shingle de palavras, qualquer número de 1 a 25. O valor padrão é 3. UInt8
Valor retornado Retorna o valor de hash calculado. UInt64 Exemplos Exemplo de uso
Query
SELECT wordShingleSimHashUTF8('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).') AS Hash;
Response
┌───────Hash─┐
│ 2328277067 │
└────────────┘

wyHash64

Introduzido em: v22.7.0 Calcula um valor de hash wyHash64 de 64 bits. Sintaxe
wyHash64(arg)
Argumentos
  • arg — Argumento String cujo hash será calculado. String
Valor retornado Retorna o valor de hash calculado de 64 bits UInt64 Exemplos Exemplo de uso
Query
SELECT wyHash64('ClickHouse') AS Hash;
Response
12336419557878201794

xxHash32

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
Query
SELECT xxHash32('Hello, world!');
Response
┌─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
Query
SELECT xxHash64('Hello, world!');
Response
┌─xxHash64('Hello, world!')─┐
│      17691043854468224118 │
└───────────────────────────┘

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
Query
SELECT xxh3('ClickHouse')
Response
18009318874338624809

xxh3_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
Query
SELECT hex(xxh3_128('ClickHouse'))
Response
3A038784C52804B4DBA43A038784C528
Última modificação em 10 de junho de 2026