Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Funções de hash

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 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

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 hash String

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

  • 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

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
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.

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

Valor retornado

Retorna um hash Murmur3 de 32 bits, variante x86, inicializado com 0 Int32

Exemplos

Exemplo

SELECT icebergHash(1.0 :: Float32)
-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

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

  • 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

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

  • 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

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

  • 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

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. 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

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. 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

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. 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

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. 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

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 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

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. 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

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. 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

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 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

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 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

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. 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

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. 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

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 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

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:

  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.

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. 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

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. 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

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. 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

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. 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

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. 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

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

  • 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

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. 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

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. 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

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. 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

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. 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

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. 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

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. 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

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 — Argumento String cujo 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;
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

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')
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

SELECT hex(xxh3_128('ClickHouse'))
14C27B7BEF95D36FECF5520CA2DAF030
Navigation