Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Хеш-функции

Хеш-функции можно использовать для детерминированного псевдослучайного перемешивания элементов.

Simhash — это хеш-функция, которая возвращает схожие хеш-значения для близких (похожих) аргументов.

Большинство хеш-функций принимают любое количество аргументов любых типов.

BLAKE3

Добавленный в: v22.10.0

Вычисляет хеш-строку BLAKE3 и возвращает результирующий набор байтов в виде FixedString. Эта криптографическая хеш-функция интегрирована в ClickHouse с помощью библиотеки BLAKE3 для Rust. Функция достаточно быстрая и работает примерно в два раза быстрее по сравнению с SHA-2, при этом генерируя хеши той же длины, что и SHA-256. Возвращает хеш BLAKE3 как массив байтов типа FixedString(32).

Синтаксис

BLAKE3(message)

Аргументы

  • message — Входная строка для хеширования. String

Возвращаемое значение

Возвращает 32-байтный хеш BLAKE3 входной строки в виде строки фиксированной длины. FixedString(32)

Примеры

hash

SELECT hex(BLAKE3('ABC'))
┌─hex(BLAKE3('ABC'))───────────────────────────────────────────────┐
│ D1717274597CF0289694F75D96D444B992A096F1AFD8E7BBFA6EBB1D360FEDFC │
└──────────────────────────────────────────────────────────────────┘

MD4

Добавленный в: v21.11.0

Вычисляет хеш MD4 от заданной строки.

Синтаксис

MD4(s)

Аргументы

  • s — Строка, для которой вычисляется хеш. String

Возвращаемое значение

Возвращает MD4-хеш указанной строки в виде строки фиксированной длины. FixedString(16)

Примеры

Пример использования

SELECT HEX(MD4('abc'));
┌─HEX(MD4('abc'))──────────────────┐
│ A448017AAF21D8525FC10AE87AA6729D │
└──────────────────────────────────┘

MD5

Добавленный в: v1.1.0

Вычисляет хеш MD5 заданной строки.

Синтаксис

MD5(s)

Аргументы

  • s — Строка, для которой вычисляется хеш. String

Возвращаемое значение

Возвращает MD5-хеш заданной строки в виде строки фиксированной длины. FixedString(16)

Примеры

Пример использования

SELECT HEX(MD5('abc'));
┌─HEX(MD5('abc'))──────────────────┐
│ 900150983CD24FB0D6963F7D28E17F72 │
└──────────────────────────────────┘

RIPEMD160

Добавленный в: v24.10.0

Вычисляет хеш RIPEMD-160 от заданной строки.

Синтаксис

RIPEMD160(s)

Аргументы

  • s — Входная строка для вычисления хеша. String

Возвращаемое значение

Возвращает хеш RIPEMD160 от заданной входной строки в виде строки фиксированной длины. FixedString(20)

Примеры

Пример использования

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

Добавленный в: v1.1.0

Вычисляет SHA1-хеш заданной строки.

Синтаксис

SHA1(s)

Аргументы

  • s — Входная строка, для которой вычисляется хеш String

Возвращаемое значение

Возвращает SHA1-хеш заданной строки в виде строки фиксированной длины. FixedString(20)

Примеры

Пример использования

SELECT HEX(SHA1('abc'));
┌─HEX(SHA1('abc'))─────────────────────────┐
│ A9993E364706816ABA3E25717850C26C9CD0D89D │
└──────────────────────────────────────────┘

SHA224

Добавленный в: v1.1.0

Вычисляет хеш SHA224 для заданной строки.

Синтаксис

SHA224(s)

Аргументы

  • s — Входное значение, для которого вычисляется хеш. String

Возвращаемое значение

Возвращает SHA224-хеш указанной входной строки в виде строки фиксированной длины. FixedString(28)

Примеры

Пример использования

SELECT HEX(SHA224('abc'));
┌─HEX(SHA224('abc'))───────────────────────────────────────┐
│ 23097D223405D8228642A477BDA255B32AADBCE4BDA0B3F7E36C9DA7 │
└──────────────────────────────────────────────────────────┘

SHA256

Добавленный в: v1.1.0

Вычисляет хеш SHA256 заданной строки.

Синтаксис

SHA256(s)

Аргументы

  • s — входная строка для хеширования. String

Возвращаемое значение

Возвращает SHA256-хеш заданной строки в виде строки фиксированной длины. FixedString(32)

Примеры

Пример использования

SELECT HEX(SHA256('abc'));
┌─HEX(SHA256('abc'))───────────────────────────────────────────────┐
│ BA7816BF8F01CFEA414140DE5DAE2223B00361A396177A9CB410FF61F20015AD │
└──────────────────────────────────────────────────────────────────┘

SHA384

Добавленный в: v1.1.0

Вычисляет хеш SHA384 для заданной строки.

Синтаксис

SHA384(s)

Аргументы

  • s — Входная строка для вычисления хеша. String

Возвращаемое значение

Возвращает SHA384-хеш заданной строки ввода в виде строки фиксированной длины. FixedString(48)

Примеры

Пример использования

SELECT HEX(SHA384('abc'));
┌─HEX(SHA384('abc'))───────────────────────────────────────────────────────────────────────────────┐
│ CB00753F45A35E8BB5A03D699AC65007272C32AB0EDED1631A8B605A43FF5BED8086072BA1E7CC2358BAECA134C825A7 │
└──────────────────────────────────────────────────────────────────────────────────────────────────┘

SHA512

Добавленный в: v1.1.0

Вычисляет хеш SHA512 для заданной строки.

Синтаксис

SHA512(s)

Аргументы

  • s — Строка, которую нужно хешировать String

Возвращаемое значение

Возвращает хеш SHA512 указанной строки в виде строки фиксированной длины. FixedString(64)

Примеры

Пример использования

SELECT HEX(SHA512('abc'));
┌─HEX(SHA512('abc'))───────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ DDAF35A193617ABACC417349AE20413112E6FA4E89A97EA20A9EEEE64B55D39A2192992A274FC1A836BA3C23A3FEEBBD454D4423643CE80E2A9AC94FA54CA49F │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

SHA512_256

Добавленный в: v1.1.0

Вычисляет хеш SHA512_256 заданной строки.

Синтаксис

SHA512_256(s)

Аргументы

  • s — Входная строка, для которой вычисляется хеш. String

Возвращаемое значение

Возвращает хеш SHA512_256 заданной строки ввода в виде строки фиксированной длины. FixedString(32)

Примеры

Пример использования

SELECT HEX(SHA512_256('abc'));
┌─HEX(SHA512_256('abc'))───────────────────────────────────────────┐
│ 53048E2681941EF99B2E29B76B4C7DABE4C2D0C634FC6D46E0E2F13107E7AF23 │
└──────────────────────────────────────────────────────────────────┘

URLHash

Добавленный в: v1.1.0

Быстрая некриптографическая хеш-функция приемлемого качества для строки, полученной из URL с применением нормализации.

У этой хеш-функции есть два режима:

Режим Описание
URLHash(url) Вычисляет хеш для строки без одного из завершающих символов /, ? или # в конце, если такой символ присутствует.
URLHash(url, N) Вычисляет хеш для строки до N-го уровня в иерархии URL без одного из завершающих символов /, ? или # в конце, если такой символ присутствует. Уровни те же, что и в URLHierarchy.

Синтаксис

URLHash(url[, N])

Аргументы

  • url — URL-строка для хеширования. String
  • N — Необязательный. Уровень в иерархии URL. (U)Int*

Возвращаемое значение

Возвращает вычисленное хеш-значение url. UInt64

Примеры

Пример использования

SELECT URLHash('https://www.clickhouse.com')
┌─URLHash('https://www.clickhouse.com')─┐
│                  13614512636072854701 │
└───────────────────────────────────────┘

Хеш URL на указанном уровне

SELECT URLHash('https://www.clickhouse.com/docs', 0);
SELECT URLHash('https://www.clickhouse.com/docs', 1);
13614512636072854701
13167253331440520598

cityHash64

Добавленный в: v1.1.0

Возвращает 64-битное хеш-значение CityHash.

Это быстрая некриптографическая хеш-функция. Для строковых параметров она использует алгоритм CityHash, а для параметров с другими типами данных — быструю некриптографическую хеш-функцию, зависящую от реализации. Функция использует комбинатор CityHash для получения итогового результата.

Синтаксис

cityHash64(arg1[, arg2, ...])

Аргументы

  • arg1[, arg2, ...] — переменное количество входных аргументов, для которых вычисляется хеш. Any

Возвращаемое значение

Возвращает вычисленный хеш входных аргументов. UInt64

Примеры

Пример вызова

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 │
└──────────────────────┴────────┘

Вычисление контрольной суммы всей таблицы с точностью до порядка строк

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

Добавленный в: v20.12.0

Вычисляет 64-битное FarmHash хеш-значение с использованием метода Fingerprint64.

Синтаксис

farmFingerprint64(arg1[, arg2, ...])

Аргументы

  • arg1[, arg2, ...] — Переменное число входных аргументов, для которых вычисляется хеш. Any

Возвращаемое значение

Возвращает вычисленное хеш-значение входных аргументов. UInt64

Примеры

Пример использования

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

Добавленный в: v1.1.0

Вычисляет 64-битное хеш-значение FarmHash с помощью метода Hash64.

Синтаксис

farmHash64(arg1[, arg2, ...])

Аргументы

  • arg1[, arg2, ...] — Переменное число входных аргументов, для которых вычисляется хеш. Any

Возвращаемое значение

Возвращает вычисленное хеш-значение входных аргументов. UInt64

Примеры

Пример использования

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

Добавленный в: v20.1.0

Вычисляет 64-битный хеш MurmurHash2 входного значения, используя тот же seed, что и в GCC.

Переносим между сборками Clang и GCC.

Синтаксис

gccMurmurHash(arg1[, arg2, ...])

Аргументы

  • arg1[, arg2, ...] — Переменное количество аргументов, для которых вычисляется хеш. Any

Возвращаемое значение

Возвращает вычисленное хеш-значение входных аргументов. UInt64

Примеры

Пример использования

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

Добавленный в: v1.1.0

Интерпретирует все входные параметры как строки и вычисляет MD5-хеш-значение для каждого из них. Затем объединяет хеши, берёт первые 8 байт хеша получившейся строки и интерпретирует их как UInt64 в порядке байтов с прямым порядком байтов (big-endian). Функция относительно медленная (5 миллионов коротких строк в секунду на одно ядро процессора).

Рекомендуется использовать вместо неё функцию sipHash64.

Функция принимает переменное число входных параметров. Аргументами могут быть любые поддерживаемые типы данных. Для некоторых типов данных вычисленное хеш-значение может совпадать для одинаковых значений, даже если типы аргументов различаются (целые числа разного размера, именованный и неименованный Tuple с одинаковыми данными, Map и соответствующий тип Array(Tuple(key, value)) с одинаковыми данными).

Синтаксис

halfMD5(arg1[, arg2, ..., argN])

Аргументы

  • arg1[, arg2, ..., argN] — переменное количество аргументов, для которых вычисляется хеш. Any

Возвращаемое значение

Возвращает вычисленную половину MD5-хеша для указанных входных параметров в виде UInt64 с порядком байтов big-endian. UInt64

Примеры

Пример использования

SELECT HEX(halfMD5('abc', 'cde', 'fgh'));
┌─HEX(halfMD5('abc', 'cde', 'fgh'))─┐
│ 2C9506B7374CFAF4                  │
└───────────────────────────────────┘

hiveHash

Добавленный в: v20.1.0

Вычисляет "HiveHash" для строки. Это просто JavaHash с обнулёнными знаковыми битами. Эта функция используется в Apache Hive в версиях до 3.0.

Синтаксис

hiveHash(arg)

Аргументы

  • arg — Входная строка для вычисления хеша. String

Возвращаемое значение

Возвращает вычисленное значение "hive hash" для входной строки. Int32

Примеры

Пример использования

SELECT hiveHash('Hello, world!');
┌─hiveHash('Hello, world!')─┐
│                 267439093 │
└───────────────────────────┘

icebergHash

Добавленный в: v25.5.0

Реализует логику хеш-преобразования Iceberg

Синтаксис

icebergHash(value)

Аргументы

Возвращаемое значение

Возвращает 32-битный хеш Murmur3 (вариант x86) с seed, равным 0 Int32

Примеры

Пример

SELECT icebergHash(1.0 :: Float32)
-142385009

intHash32

Добавленный в: v1.1.0

Вычисляет 32-битный хеш целого числа.

Эта хеш-функция работает относительно быстро, но не является криптографической.

Синтаксис

intHash32(arg)

Аргументы

  • arg — Целое число для хеширования. (U)Int*

Возвращаемое значение

Возвращает вычисленное 32-битное хеш-значение для входного целого числа UInt32

Примеры

Пример использования

SELECT intHash32(42);
┌─intHash32(42)─┐
│    1228623923 │
└───────────────┘

intHash64

Добавленный в: v1.1.0

Вычисляет 64-битный хеш от целого числа.

Эта хеш-функция работает относительно быстро (даже быстрее, чем intHash32), но не является криптографической хеш-функцией.

Синтаксис

intHash64(int)

Аргументы

  • int — Целое число, для которого вычисляется хеш. (U)Int*

Возвращаемое значение

64-битное значение хеша. UInt64

Примеры

Пример использования

SELECT intHash64(42);
┌────────intHash64(42)─┐
│ 11490350930367293593 │
└──────────────────────┘

javaHash

Добавленный в: v20.1.0

Вычисляет JavaHash для:

Синтаксис

javaHash(arg)

Аргументы

  • arg — Входное значение, для которого вычисляется хеш. Any

Возвращаемое значение

Возвращает хеш, вычисленный для arg Int32

Примеры

Пример использования 1

SELECT javaHash(toInt32(123));
┌─javaHash(toInt32(123))─┐
│                    123 │
└────────────────────────┘

Пример использования 2

SELECT javaHash('Hello, world!');
┌─javaHash('Hello, world!')─┐
│               -1880044555 │
└───────────────────────────┘

javaHashUTF16LE

Добавленный в: v20.1.0

Вычисляет JavaHash для строки, предполагая, что она содержит байты строки в кодировке UTF-16LE.

Синтаксис

javaHashUTF16LE(arg)

Аргументы

  • arg — Строка в кодировке UTF-16LE. String

Возвращаемое значение

Возвращает вычисленное хеш-значение строки в кодировке UTF-16LE. Int32

Примеры

Пример использования

SELECT javaHashUTF16LE(convertCharset('test', 'utf-8', 'utf-16le'));
┌─javaHashUTF16LE(convertCharset('test', 'utf-8', 'utf-16le'))─┐
│                                                      3556498 │
└──────────────────────────────────────────────────────────────┘

jumpConsistentHash

Добавленный в: v1.1.0

Вычисляет jump consistent hash от целого числа.

Синтаксис

jumpConsistentHash(key, buckets)

Аргументы

  • key — Входной ключ. UInt64
  • buckets — Количество бакетов. Int32

Возвращаемое значение

Возвращает вычисленное хеш-значение. Int32

Примеры

Пример использования

SELECT jumpConsistentHash(256, 4)
┌─jumpConsistentHash(256, 4)─┐
│                          3 │
└────────────────────────────┘

kafkaMurmurHash

Добавленный в: v23.4.0

Вычисляет 32-битный хеш MurmurHash2 от входного значения, используя тот же seed, что и Kafka, и отбрасывая старший бит для совместимости с Default Partitioner.

Синтаксис

kafkaMurmurHash(arg1[, arg2, ...])

Аргументы

  • arg1[, arg2, ...] — Переменное число параметров, для которых вычисляется хеш. Any

Возвращаемое значение

Возвращает вычисленное хеш-значение переданных аргументов. UInt32

Примеры

Пример использования

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

Добавленный в: v25.4.0

Вычисляет криптографический хеш Keccak-256 для указанной строки. Эта хеш-функция широко используется в блокчейн-приложениях, особенно в Ethereum.

Синтаксис

keccak256(message)

Аргументы

  • message — Входная строка, которую нужно хешировать. String

Возвращаемое значение

Возвращает 32-байтный хеш Keccak-256 от входной строки в виде строки фиксированной длины. FixedString(32)

Примеры

Пример использования

SELECT hex(keccak256('hello'))
┌─hex(keccak256('hello'))──────────────────────────────────────────┐
│ 1C8AFF950685C2ED4BC3174F3472287B56D9517B9C948127319A09A7A36DEAC8 │
└──────────────────────────────────────────────────────────────────┘

kostikConsistentHash

Добавленный в: v22.6.0

Алгоритм согласованного хеширования Константина 'Kostik' Облакова со сложностью O(1) по времени и памяти. Эффективен только при n <= 32768.

Синтаксис

kostikConsistentHash(input, n)

Псевдонимы: yandexConsistentHash

Аргументы

  • input — Целое число, используемое в качестве ключа. UInt64
  • n — Количество бакетов. UInt16

Возвращаемое значение

Возвращает вычисленное хеш-значение. UInt16

Примеры

Пример использования

SELECT kostikConsistentHash(16045690984833335023, 2);
┌─kostikConsistentHash(16045690984833335023, 2)─┐
│                                             1 │
└───────────────────────────────────────────────┘

metroHash64

Добавленный в: v1.1.0

Возвращает 64-битное хеш-значение MetroHash.

Синтаксис

metroHash64(arg1[, arg2, ...])

Аргументы

  • arg1[, arg2, ...] — Переменное число входных аргументов, для которых вычисляется хеш. Any

Возвращаемое значение

Возвращает хеш, вычисленный по входным аргументам. UInt64

Примеры

Пример использования

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

Добавленный в: v18.5.0

Вычисляет хеш MurmurHash2 от входного значения.

Синтаксис

murmurHash2_32(arg1[, arg2, ...])

Аргументы

  • arg1[, arg2, ...] — переменное число входных аргументов, для которых вычисляется хеш. Any

Возвращаемое значение

Возвращает вычисленное хеш-значение входных аргументов. UInt32

Примеры

Пример использования

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

Добавленный в: v18.10.0

Вычисляет хеш MurmurHash2 от входного значения.

Синтаксис

murmurHash2_64(arg1[, arg2, ...])

Аргументы

  • arg1[, arg2, ...] — Переменное число входных аргументов, для которых вычисляется хеш. Any

Возвращаемое значение

Возвращает хеш, вычисленный по входным аргументам. UInt64

Примеры

Пример использования

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

Добавленный в: v18.10.0

Вычисляет 128-битный хеш MurmurHash3 для входного значения.

Синтаксис

murmurHash3_128(arg1[, arg2, ...])

Аргументы

  • arg1[, arg2, ...] — Переменное число входных аргументов, для которых вычисляется хеш. Any

Возвращаемое значение

Возвращает вычисленное 128-битное хеш-значение MurmurHash3 для входных аргументов. FixedString(16)

Примеры

Пример использования

SELECT hex(murmurHash3_128('foo', 'foo', 'foo'));
┌─hex(murmurHash3_128('foo', 'foo', 'foo'))─┐
│ F8F7AD9B6CD4CF117A71E277E2EC2931          │
└───────────────────────────────────────────┘

murmurHash3_32

Добавленный в: v18.10.0

Возвращает хеш-значение MurmurHash3.

Синтаксис

murmurHash3_32(arg1[, arg2, ...])

Аргументы

  • arg1[, arg2, ...] — переменное число входных аргументов, для которых вычисляется хеш. Any

Возвращаемое значение

Возвращает вычисленное хеш-значение входных аргументов. UInt32

Примеры

Пример использования

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

Добавленный в: v18.10.0

Вычисляет хеш MurmurHash3 от входного значения.

Синтаксис

murmurHash3_64(arg1[, arg2, ...])

Аргументы

  • arg1[, arg2, ...] — Переменное число входных аргументов, для которых вычисляется хеш. Any

Возвращаемое значение

Возвращает хеш-значение, вычисленное для входных аргументов. UInt64

Примеры

Пример использования

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

Добавленный в: v21.1.0

Разбивает ASCII-строку на n-граммы длиной ngramsize символов, вычисляет хеш-значение для каждой n-граммы и возвращает кортеж с этими хешами. Использует hashnum минимальных хешей для вычисления минимального хеш-значения и hashnum максимальных хешей для вычисления максимального хеш-значения. Учитывает регистр.

Можно использовать для обнаружения похожих строк с помощью tupleHammingDistance. Если для двух строк возвращаемые хеши совпадают, значит, эти строки одинаковы.

Синтаксис

ngramMinHash(string[, ngramsize, hashnum])

Аргументы

  • string — Строка, для которой вычисляется хеш. String
  • ngramsize — Необязательный параметр. Размер n-граммы, любое число от 1 до 25. Значение по умолчанию — 3. UInt8
  • hashnum — Необязательный параметр. Количество минимальных и максимальных хешей, используемых для вычисления результата, любое число от 1 до 25. Значение по умолчанию — 6. UInt8

Возвращаемое значение

Возвращает кортеж из двух хешей — минимального и максимального. Tuple

Примеры

Пример использования

SELECT ngramMinHash('ClickHouse') AS Tuple;
┌─Tuple──────────────────────────────────────┐
│ (18333312859352735453,9054248444481805918) │
└────────────────────────────────────────────┘

ngramMinHashArg

Добавленный в: v21.1.0

Разбивает ASCII-строку на n-граммы длиной ngramsize символов и возвращает n-граммы с минимальным и максимальным хешами, вычисленными функцией ngramMinHash для тех же входных данных. Функция чувствительна к регистру.

Синтаксис

ngramMinHashArg(string[, ngramsize, hashnum])

Аргументы

  • string — Строка, для которой вычисляется хеш. String
  • ngramsize — Необязательно. Размер n-граммы, любое значение от 1 до 25. Значение по умолчанию — 3. UInt8
  • hashnum — Необязательно. Число минимальных и максимальных хешей, используемых для вычисления результата, любое значение от 1 до 25. Значение по умолчанию — 6. UInt8

Возвращаемое значение

Возвращает кортеж из двух кортежей по hashnum n-грамм в каждом. Tuple(String)

Примеры

Пример использования

SELECT ngramMinHashArg('ClickHouse') AS Tuple;
┌─Tuple─────────────────────────────────────────────────────────────────────────┐
│ (('ous','ick','lic','Hou','kHo','use'),('Hou','lic','ick','ous','ckH','Cli')) │
└───────────────────────────────────────────────────────────────────────────────┘

ngramMinHashArgCaseInsensitive

Добавленный в: v21.1.0

Разбивает ASCII-строку на n-граммы длиной ngramsize символов и возвращает n-граммы с минимальными и максимальными хешами, вычисленными функцией ngramMinHashCaseInsensitive для тех же входных данных. Поддерживает регистронезависимый поиск.

Синтаксис

ngramMinHashArgCaseInsensitive(string[, ngramsize, hashnum])

Аргументы

  • string — Строка, для которой вычисляется хеш. String
  • ngramsize — Необязательно. Размер n-граммы, любое число от 1 до 25. Значение по умолчанию — 3. UInt8
  • hashnum — Необязательно. Количество минимальных и максимальных хешей, используемых для вычисления результата, любое число от 1 до 25. Значение по умолчанию — 6. UInt8

Возвращаемое значение

Возвращает кортеж из двух кортежей, каждый из которых содержит по hashnum n-грамм. Tuple(Tuple(String))

Примеры

Пример использования

SELECT ngramMinHashArgCaseInsensitive('ClickHouse') AS Tuple;
┌─Tuple─────────────────────────────────────────────────────────────────────────┐
│ (('ous','ick','lic','kHo','use','Cli'),('kHo','lic','ick','ous','ckH','Hou')) │
└───────────────────────────────────────────────────────────────────────────────┘

ngramMinHashArgCaseInsensitiveUTF8

Добавленный в: v21.1.0

Разбивает UTF-8-строку на n-граммы длиной ngramsize символов и возвращает n-граммы с минимальным и максимальным хешами, вычисленными функцией ngramMinHashCaseInsensitiveUTF8 для тех же входных данных. Поддерживает регистронезависимый поиск.

Синтаксис

ngramMinHashArgCaseInsensitiveUTF8(string[, ngramsize, hashnum])

Аргументы

  • string — Строка, для которой вычисляется хеш. String
  • ngramsize — Необязательно. Размер n-граммы, любое число от 1 до 25. Значение по умолчанию — 3. UInt8
  • hashnum — Необязательно. Количество минимальных и максимальных хешей, используемых для вычисления результата, любое число от 1 до 25. Значение по умолчанию — 6. UInt8

Возвращаемое значение

Возвращает кортеж из двух кортежей по hashnum n-грамм в каждом. Tuple(Tuple(String))

Примеры

Пример использования

SELECT ngramMinHashArgCaseInsensitiveUTF8('ClickHouse') AS Tuple;
┌─Tuple─────────────────────────────────────────────────────────────────────────┐
│ (('ckH','ous','ick','lic','kHo','use'),('kHo','lic','ick','ous','ckH','Hou')) │
└───────────────────────────────────────────────────────────────────────────────┘

ngramMinHashArgUTF8

Добавленный в: v21.1.0

Разбивает UTF-8-строку на n-граммы длиной ngramsize символов и возвращает n-граммы с минимальным и максимальным хешами, вычисленными функцией ngramMinHashUTF8 для тех же входных данных. Функция чувствительна к регистру.

Синтаксис

ngramMinHashArgUTF8(string[, ngramsize, hashnum])

Аргументы

  • string — Строка, для которой вычисляется хеш. String
  • ngramsize — Необязательно. Размер n-граммы, любое число от 1 до 25. Значение по умолчанию — 3. UInt8
  • hashnum — Необязательно. Количество минимальных и максимальных хешей, используемых для вычисления результата, любое число от 1 до 25. Значение по умолчанию — 6. UInt8

Возвращаемое значение

Возвращает кортеж из двух кортежей, в каждом из которых содержится по hashnum n-грамм. Tuple(Tuple(String))

Примеры

Пример использования

SELECT ngramMinHashArgUTF8('ClickHouse') AS Tuple;
┌─Tuple─────────────────────────────────────────────────────────────────────────┐
│ (('ous','ick','lic','Hou','kHo','use'),('kHo','Hou','lic','ick','ous','ckH')) │
└───────────────────────────────────────────────────────────────────────────────┘

ngramMinHashCaseInsensitive

Добавленный в: v21.1.0

Разбивает ASCII-строку на n-граммы длиной ngramsize символов, вычисляет хеш-значение для каждой n-граммы и возвращает кортеж с этими хешами. Использует hashnum минимальных хешей для вычисления минимального хеша и hashnum максимальных хешей для вычисления максимального хеша. Поддерживает регистронезависимый поиск.

Может использоваться для обнаружения почти повторяющихся строк с помощью tupleHammingDistance. Если для двух строк возвращаемые хеши совпадают, значит, эти строки одинаковы.

Синтаксис

ngramMinHashCaseInsensitive(string[, ngramsize, hashnum])

Аргументы

  • string — String. String. - ngramsize — Размер n-граммы. Необязательный. Возможные значения: любое число от 1 до 25. Значение по умолчанию: 3. UInt8. - hashnum — Число минимальных и максимальных хешей, используемых для вычисления результата. Необязательный. Возможные значения: любое число от 1 до 25. Значение по умолчанию: 6. UInt8.

Возвращаемое значение

кортеж с двумя хешами — минимальным и максимальным. Tuple(UInt64, UInt64). Tuple

Примеры

Пример использования

SELECT ngramMinHashCaseInsensitive('ClickHouse') AS Tuple;
┌─Tuple──────────────────────────────────────┐
│ (2106263556442004574,13203602793651726206) │
└────────────────────────────────────────────┘

ngramMinHashCaseInsensitiveUTF8

Добавленный в: v21.1.0

Разбивает UTF-8-строку на n-граммы длиной ngramsize символов, вычисляет хеш-значения для каждой n-граммы и возвращает кортеж с этими хешами. Использует hashnum минимальных хешей для вычисления минимального хеша и hashnum максимальных хешей для вычисления максимального хеша. Функция поддерживает регистронезависимый поиск.

Может использоваться для обнаружения почти одинаковых строк с помощью tupleHammingDistance. Для двух строк: если возвращаемые хеши совпадают для обеих строк, значит, эти строки одинаковы.

Синтаксис

ngramMinHashCaseInsensitiveUTF8(string [, ngramsize, hashnum])

Аргументы

  • string — Строка, для которой вычисляется хеш. String
  • ngramsize — Необязательный. Размер n-граммы, любое число от 1 до 25. Значение по умолчанию — 3. UInt8
  • hashnum — Необязательный. Количество минимальных и максимальных хешей, используемых для вычисления результата, любое число от 1 до 25. Значение по умолчанию — 6. UInt8

Возвращаемое значение

Возвращает кортеж из двух хешей — минимального и максимального. Tuple

Примеры

Пример использования

SELECT ngramMinHashCaseInsensitiveUTF8('ClickHouse') AS Tuple;
┌─Tuple───────────────────────────────────────┐
│ (12493625717655877135,13203602793651726206) │
└─────────────────────────────────────────────┘

ngramMinHashUTF8

Добавленный в: v21.1.0

Разбивает UTF-8-строку на n-граммы длиной ngramsize символов, вычисляет хеш-значения для каждой n-граммы и возвращает кортеж с этими хешами. Использует hashnum минимальных хешей для вычисления минимального хеша и hashnum максимальных хешей для вычисления максимального хеша. Функция чувствительна к регистру.

Можно использовать для обнаружения почти дублирующихся строк с помощью tupleHammingDistance. Если для двух строк возвращаемые хеши совпадают, то эти строки одинаковы.

Синтаксис

ngramMinHashUTF8(string[, ngramsize, hashnum])

Аргументы

  • string — Строка, для которой вычисляется хеш. String
  • ngramsize — Необязательный параметр. Размер n-граммы, любое число от 1 до 25. Значение по умолчанию — 3. UInt8
  • hashnum — Необязательный параметр. Количество минимальных и максимальных хешей, используемых для вычисления результата; любое число от 1 до 25. Значение по умолчанию — 6. UInt8

Возвращаемое значение

Возвращает кортеж из двух хешей — минимального и максимального. Tuple

Примеры

Пример использования

SELECT ngramMinHashUTF8('ClickHouse') AS Tuple;
┌─Tuple──────────────────────────────────────┐
│ (18333312859352735453,6742163577938632877) │
└────────────────────────────────────────────┘

ngramSimHash

Добавленный в: v21.1.0

Разбивает ASCII-строку на n-граммы длиной ngramsize символов и возвращает simhash n-граммы.

Может использоваться для обнаружения почти дублирующихся строк с помощью bitHammingDistance. Чем меньше расстояние Хэмминга между вычисленными simhash двух строк, тем выше вероятность, что эти строки совпадают.

Синтаксис

ngramSimHash(string[, ngramsize])

Аргументы

  • string — Строка, для которой вычисляется simhash с учетом регистра. String
  • ngramsize — Необязательный параметр. Размер n-граммы — любое число от 1 до 25. Значение по умолчанию — 3. UInt8

Возвращаемое значение

Возвращает вычисленный хеш входной строки. UInt64

Примеры

Пример использования

SELECT ngramSimHash('ClickHouse') AS Hash;
┌───────Hash─┐
│ 1627567969 │
└────────────┘

ngramSimHashCaseInsensitive

Добавленный в: v21.1.0

Разбивает ASCII-строку на n-граммы длиной ngramsize символов и возвращает их simhash. Поддерживает регистронезависимый поиск.

Может использоваться для поиска почти дублирующихся строк с помощью bitHammingDistance. Чем меньше расстояние Хэмминга между вычисленными simhashes двух строк, тем выше вероятность, что эти строки совпадают.

Синтаксис

ngramSimHashCaseInsensitive(string[, ngramsize])

Аргументы

  • string — Строка, для которой вычисляется simhash для регистронезависимого поиска. String
  • ngramsize — Необязательный параметр. Размер n-граммы, любое число от 1 до 25. Значение по умолчанию — 3. UInt8

Возвращаемое значение

Хеш-значение. UInt64. UInt64

Примеры

Пример использования

SELECT ngramSimHashCaseInsensitive('ClickHouse') AS Hash;
┌──────Hash─┐
│ 562180645 │
└───────────┘

ngramSimHashCaseInsensitiveUTF8

Добавленный в: v21.1.0

Разбивает UTF-8-строку на n-граммы размером ngramsize символов и возвращает simhash n-грамм. Выполняет регистронезависимый поиск.

Может использоваться для обнаружения частично дублирующихся строк с помощью bitHammingDistance. Чем меньше расстояние Хэмминга между вычисленными simhashes двух строк, тем выше вероятность, что эти строки совпадают.

Синтаксис

ngramSimHashCaseInsensitiveUTF8(string[, ngramsize])

Аргументы

  • string — Строка, для которой вычисляется хеш. String
  • ngramsize — Необязательно. Размер n-граммы — любое число от 1 до 25. Значение по умолчанию: 3. UInt8

Возвращаемое значение

Возвращает вычисленное хеш-значение. UInt64

Примеры

Пример использования

SELECT ngramSimHashCaseInsensitiveUTF8('ClickHouse') AS Hash;
┌───────Hash─┐
│ 1636742693 │
└────────────┘

ngramSimHashUTF8

Добавленный в: v21.1.0

Разбивает строку в кодировке UTF-8 на n-граммы длиной ngramsize символов и возвращает simhash n-граммы. Функция чувствительна к регистру.

Может использоваться для выявления частично дублирующихся строк с помощью bitHammingDistance. Чем меньше расстояние Хэмминга между вычисленными simhashes двух строк, тем выше вероятность, что эти строки совпадают.

Синтаксис

ngramSimHashUTF8(string[, ngramsize])

Аргументы

  • string — Строка, для которой вычисляется хеш. String
  • ngramsize — Необязательный параметр. Размер n-граммы — любое число от 1 до 25. Значение по умолчанию — 3. UInt8

Возвращаемое значение

Возвращает вычисленное хеш-значение. UInt64

Примеры

Пример использования

SELECT ngramSimHashUTF8('ClickHouse') AS Hash;
┌───────Hash─┐
│ 1628157797 │
└────────────┘

sipHash128

Добавленный в: v1.1.0

Как sipHash64, но возвращает 128-битное хеш-значение, то есть итоговое состояние xor-folding вычисляется до 128 бит.

Синтаксис

sipHash128(arg1[, arg2, ...])

Аргументы

  • arg1[, arg2, ...] — Переменное число входных аргументов, для которых вычисляется хеш. Any

Возвращаемое значение

Возвращает 128-битное хеш-значение SipHash. FixedString(16)

Примеры

Пример использования

SELECT hex(sipHash128('foo', '\x01', 3)) AS res;
┌─res──────────────────────────────┐
│ 9DE516A64A414D4B1B609415E4523F24 │
└──────────────────────────────────┘

sipHash128Keyed

Добавленный в: v23.2.0

То же, что и sipHash128, но дополнительно принимает явный аргумент ключа вместо использования фиксированного ключа.

Синтаксис

sipHash128Keyed((k0, k1), [arg1, arg2, ...])

Аргументы

  • (k0, k1) — кортеж из двух значений UInt64, представляющий ключ. Tuple(UInt64, UInt64)
  • arg1[, arg2, ...] — переменное число входных аргументов, для которых вычисляется хеш. Any

Возвращаемое значение

128-битное хеш-значение SipHash типа FixedString(16). FixedString(16)

Примеры

Пример использования

SELECT hex(sipHash128Keyed((506097522914230528, 1084818905618843912), 'foo', '\x01', 3)) AS res;
┌─res──────────────────────────────┐
│ B8467F65C8B4CFD9A5F8BD733917D9BF │
└──────────────────────────────────┘

sipHash128Reference

Добавленный в: v23.2.0

Как sipHash128, но использует 128-битный алгоритм от исходных авторов SipHash.

Синтаксис

sipHash128Reference(arg1[, arg2, ...])

Аргументы

  • arg1[, arg2, ...] — переменное число входных аргументов, для которых вычисляется хеш. Any

Возвращаемое значение

Возвращает вычисленное 128-битное хеш-значение SipHash от входных аргументов. FixedString(16)

Примеры

Пример использования

SELECT hex(sipHash128Reference('foo', '\x01', 3)) AS res;
┌─res──────────────────────────────┐
│ C3AA2F3C06A14DBE3742E9107AA9765D │
└──────────────────────────────────┘

sipHash128ReferenceKeyed

Добавленный в: v23.2.0

То же, что и sipHash128Reference, но дополнительно принимает явный аргумент ключа вместо использования фиксированного ключа.

Синтаксис

sipHash128ReferenceKeyed((k0, k1), arg1[, arg2, ...])

Аргументы

  • (k0, k1) — кортеж из двух значений, представляющий ключ Tuple(UInt64, UInt64)
  • arg1[, arg2, ...] — Переменное число входных аргументов, для которых вычисляется хеш. Any

Возвращаемое значение

Возвращает вычисленное 128-битное хеш-значение SipHash для входных аргументов. FixedString(16)

Примеры

Пример использования

SELECT hex(sipHash128ReferenceKeyed((506097522914230528, 1084818905618843912), 'foo', '\x01', 3)) AS res;
┌─res──────────────────────────────┐
│ 1D010CC83FB5460C25B556CE40992E61 │
└──────────────────────────────────┘

sipHash64

Добавленный в: v1.1.0

Создает 64-битное хеш-значение SipHash.

Это криптографическая хеш-функция. Она работает как минимум в три раза быстрее, чем хеш-функция MD5.

Функция интерпретирует все входные параметры как строки и вычисляет хеш-значение для каждого из них. Затем она объединяет хеш-значения, используя следующий алгоритм:

  1. Первое и второе хеш-значения объединяются в массив, для которого вычисляется хеш.
  2. Ранее вычисленное хеш-значение и хеш-значение третьего входного параметра хешируются аналогичным образом.
  3. Это вычисление повторяется для всех оставшихся хеш-значений исходных входных параметров.

Синтаксис

sipHash64(arg1[, arg2, ...])

Аргументы

  • arg1[, arg2, ...] — Переменное число входных аргументов. Any

Возвращаемое значение

Возвращает хеш-значение, вычисленное по входным аргументам. UInt64

Примеры

Пример использования

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

Добавленный в: v23.2.0

Как sipHash64, но дополнительно принимает явный аргумент ключа вместо использования фиксированного ключа.

Синтаксис

sipHash64Keyed((k0, k1), arg1[,arg2, ...])

Аргументы

  • (k0, k1) — Кортеж из двух значений, образующих ключ. Tuple(UInt64, UInt64)
  • arg1[,arg2, ...] — Переменное число входных аргументов. Any

Возвращаемое значение

Возвращает хеш, вычисленный по входным значениям. UInt64

Примеры

Пример использования

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

Добавленный в: v21.1.0

Разбивает ASCII-строку на части (шинглы) размером shinglesize слов, вычисляет хеш-значения для каждого словесного шингла и возвращает кортеж с этими хешами. Использует hashnum минимальных хешей для вычисления минимального хеша и hashnum максимальных хешей для вычисления максимального хеша. Чувствительна к регистру.

Может использоваться для обнаружения почти дублирующихся строк с помощью tupleHammingDistance. Если для двух строк возвращённые хеши совпадают, то строки одинаковы.

Синтаксис

wordShingleMinHash(string[, shinglesize, hashnum])

Аргументы

  • string — Строка, для которой вычисляется хеш. String
  • shinglesize — Необязательно. Размер словесного шингла: любое число от 1 до 25. Значение по умолчанию — 3. UInt8
  • hashnum — Необязательно. Количество минимальных и максимальных хешей, используемых для вычисления результата: любое число от 1 до 25. Значение по умолчанию — 6. UInt8

Возвращаемое значение

Возвращает кортеж из двух хешей — минимального и максимального. Tuple(UInt64, UInt64)

Примеры

Пример использования

SELECT wordShingleMinHash('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).') AS Tuple;
┌─Tuple──────────────────────────────────────┐
│ (16452112859864147620,5844417301642981317) │
└────────────────────────────────────────────┘

wordShingleMinHashArg

Добавленный в: v1.1.0

Разбивает ASCII-строку на части (шинглы) по shinglesize слов в каждой и возвращает шинглы с минимальным и максимальным хешами слов, вычисленные функцией wordShingleMinHash для тех же входных данных. Функция чувствительна к регистру.

Синтаксис

wordShingleMinHashArg(string[, shinglesize, hashnum])

Аргументы

  • string — Строка, для которой вычисляется хеш. String
  • shinglesize — Необязательный параметр. Размер словесного шингла; любое число от 1 до 25. Значение по умолчанию — 3. UInt8
  • hashnum — Необязательный параметр. Количество минимальных и максимальных хешей, используемых для вычисления результата; любое число от 1 до 25. Значение по умолчанию — 6. UInt8

Возвращаемое значение

Возвращает кортеж из двух кортежей, каждый из которых содержит по hashnum словесных шинглов. Tuple(Tuple(String))

Примеры

Пример использования

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

Добавленный в: v21.1.0

Разбивает строку ASCII на части (шинглы) по shinglesize слов в каждой и возвращает шинглы с минимальным и максимальным хешами слов, вычисленными функцией wordShingleMinHashCaseInsensitive при тех же входных данных. Функция использует регистронезависимый поиск.

Синтаксис

wordShingleMinHashArgCaseInsensitive(string[, shinglesize, hashnum])

Аргументы

  • string — Строка, для которой вычисляется хеш. String
  • shinglesize — Необязательно. Размер словесного шингла; любое число от 1 до 25. Значение по умолчанию — 3. UInt8
  • hashnum — Необязательно. Количество минимальных и максимальных хешей, используемых для вычисления результата; любое число от 1 до 25. Значение по умолчанию — 6. UInt8

Возвращаемое значение

Возвращает кортеж из двух кортежей, каждый из которых содержит по hashnum словесных шинглов. Tuple(Tuple(String))

Примеры

Пример использования

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

Добавленный в: v21.1.0

Разбивает UTF-8-строку на части (шинглы) по shinglesize слов в каждой и возвращает шинглы с минимальным и максимальным хешами слов, вычисленными функцией wordShingleMinHashCaseInsensitiveUTF8 для тех же входных данных. Поддерживает регистронезависимый поиск.

Синтаксис

wordShingleMinHashArgCaseInsensitiveUTF8(string[, shinglesize, hashnum])

Аргументы

  • string — Строка, для которой вычисляется хеш. String
  • shinglesize — Необязательно. Размер словесного шингла, любое число от 1 до 25. Значение по умолчанию — 3. UInt8
  • hashnum — Необязательно. Количество минимальных и максимальных хешей, используемых для вычисления результата, любое число от 1 до 25. Значение по умолчанию — 6. UInt8

Возвращаемое значение

Возвращает кортеж из двух кортежей, каждый из которых содержит по hashnum словесных шинглов. Tuple(Tuple(String))

Примеры

Пример использования

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

Добавленный в: v21.1.0

Разбивает UTF-8-строку на части (шинглы) по shinglesize слов в каждой и возвращает шинглы с минимальным и максимальным хешами слов, вычисленными функцией wordShingleMinHashUTF8 для той же входной строки. Чувствительна к регистру.

Синтаксис

wordShingleMinHashArgUTF8(string[, shinglesize, hashnum])

Аргументы

  • string — Строка, для которой вычисляется хеш. String
  • shinglesize — Необязательный параметр. Размер словесного шингла: любое число от 1 до 25. Значение по умолчанию — 3. UInt8
  • hashnum — Необязательный параметр. Количество минимальных и максимальных хешей, используемых для вычисления результата: любое число от 1 до 25. Значение по умолчанию — 6. UInt8

Возвращаемое значение

Возвращает кортеж из двух кортежей, каждый из которых содержит по hashnum словесных шинглов. Tuple(Tuple(String))

Примеры

Пример использования

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

Добавленный в: v21.1.0

Разбивает ASCII-строку на части (шинглы) по shinglesize слов, вычисляет хеш-значения для каждого словесного шингла и возвращает кортеж с этими хешами. Использует hashnum минимальных хешей для вычисления минимального хеша и hashnum максимальных хешей для вычисления максимального хеша. Функция использует регистронезависимый поиск.

Может использоваться для обнаружения почти дублирующихся строк с помощью tupleHammingDistance. Для двух строк: если возвращаемые хеши совпадают для обеих строк, значит, эти строки одинаковы.

Синтаксис

wordShingleMinHashCaseInsensitive(string[, shinglesize, hashnum])

Аргументы

  • string — Строка, для которой вычисляется хеш. String
  • shinglesize — Необязательно. Размер словесного шингла, любое число от 1 до 25. Значение по умолчанию — 3. UInt8
  • hashnum — Необязательно. Количество минимальных и максимальных хешей, используемых для вычисления результата; любое число от 1 до 25. Значение по умолчанию — 6. UInt8

Возвращаемое значение

Возвращает кортеж из двух хешей — минимального и максимального. Tuple(UInt64, UInt64)

Примеры

Пример использования

SELECT wordShingleMinHashCaseInsensitive('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).') AS Tuple;
┌─Tuple─────────────────────────────────────┐
│ (3065874883688416519,1634050779997673240) │
└───────────────────────────────────────────┘

wordShingleMinHashCaseInsensitiveUTF8

Добавленный в: v21.1.0

Разбивает UTF-8-строку на части (шинглы) по shinglesize слов, вычисляет хеш-значения для каждого словесного шингла и возвращает кортеж с этими хешами. Использует hashnum минимальных хешей для вычисления минимального хеша и hashnum максимальных хешей для вычисления максимального хеша. Используется регистронезависимый поиск.

Может использоваться для обнаружения почти дублирующихся строк с помощью tupleHammingDistance. Если для двух строк возвращаются одинаковые хеши, значит, эти строки совпадают.

Синтаксис

wordShingleMinHashCaseInsensitiveUTF8(string[, shinglesize, hashnum])

Аргументы

  • string — Строка, для которой вычисляется хеш. String
  • shinglesize — Необязательный аргумент. Размер словесного шингла, любое число от 1 до 25. Значение по умолчанию — 3. UInt8
  • hashnum — Необязательный аргумент. Количество минимальных и максимальных хешей, используемых для вычисления результата, любое число от 1 до 25. Значение по умолчанию — 6. UInt8

Возвращаемое значение

Возвращает кортеж из двух хешей — минимального и максимального. Tuple(UInt64, UInt64)

Примеры

Пример использования

SELECT wordShingleMinHashCaseInsensitiveUTF8('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).') AS Tuple;
┌─Tuple─────────────────────────────────────┐
│ (3065874883688416519,1634050779997673240) │
└───────────────────────────────────────────┘

wordShingleMinHashUTF8

Добавленный в: v21.1.0

Разбивает UTF-8-строку на части (шинглы) по shinglesize слов, вычисляет хеш-значения для каждого словесного шингла и возвращает кортеж с этими хешами. Для вычисления минимального хеша использует hashnum минимальных хешей, а для вычисления максимального хеша — hashnum максимальных хешей. Функция чувствительна к регистру.

Может использоваться для обнаружения почти дублирующихся строк с помощью tupleHammingDistance. Если для двух строк возвращённые хеши совпадают, значит, эти строки одинаковы.

Синтаксис

wordShingleMinHashUTF8(string[, shinglesize, hashnum])

Аргументы

  • string — Строка, для которой вычисляется хеш. String
  • shinglesize — Необязательный аргумент. Размер словесного шингла; любое число от 1 до 25. Значение по умолчанию — 3. UInt8
  • hashnum — Необязательный аргумент. Количество минимальных и максимальных хешей, используемых для вычисления результата; любое число от 1 до 25. Значение по умолчанию — 6. UInt8

Возвращаемое значение

Возвращает кортеж из двух хешей — минимального и максимального. Tuple(UInt64, UInt64)

Примеры

Пример использования

SELECT wordShingleMinHashUTF8('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).') AS Tuple;
┌─Tuple──────────────────────────────────────┐
│ (16452112859864147620,5844417301642981317) │
└────────────────────────────────────────────┘

wordShingleSimHash

Добавленный в: v21.1.0

Разбивает ASCII-строку на части (шинглы) по shinglesize слов и возвращает simhash словесного шингла. Чувствительна к регистру.

Может использоваться для выявления почти дублирующихся строк с помощью bitHammingDistance. Чем меньше расстояние Хэмминга между вычисленными simhash двух строк, тем выше вероятность, что эти строки совпадают.

Синтаксис

wordShingleSimHash(string[, shinglesize])

Аргументы

  • string — Строка, для которой вычисляется хеш. String
  • shinglesize — Необязательный параметр. Размер словесного шингла; любое число от 1 до 25. Значение по умолчанию — 3. UInt8

Возвращаемое значение

Возвращает вычисленное хеш-значение. UInt64

Примеры

Пример использования

SELECT wordShingleSimHash('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).') AS Hash;
┌───────Hash─┐
│ 2328277067 │
└────────────┘

wordShingleSimHashCaseInsensitive

Добавленный в: v21.1.0

Разбивает ASCII-строку на части (шинглы) по shinglesize слов и возвращает simhash словесного шингла. Используется регистронезависимый поиск.

Может использоваться для выявления почти дублирующихся строк с помощью bitHammingDistance. Чем меньше расстояние Хэмминга между вычисленными simhash двух строк, тем выше вероятность, что эти строки одинаковы.

Синтаксис

wordShingleSimHashCaseInsensitive(string[, shinglesize])

Аргументы

  • string — Строка, для которой вычисляется хеш. String
  • shinglesize — Необязательный параметр. Размер словесного шингла, любое число от 1 до 25. Значение по умолчанию — 3. UInt8

Возвращаемое значение

Возвращает вычисленное хеш-значение. UInt64

Примеры

Пример использования

SELECT wordShingleSimHashCaseInsensitive('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).') AS Hash;
┌───────Hash─┐
│ 2194812424 │
└────────────┘

wordShingleSimHashCaseInsensitiveUTF8

Добавленный в: v1.1.0

Разбивает строку в кодировке UTF-8 на части (шинглы) по shinglesize слов и возвращает simhash словесного шингла. Использует регистронезависимый поиск.

Может использоваться для обнаружения почти дублирующихся строк с помощью bitHammingDistance. Чем меньше расстояние Хэмминга между вычисленными simhash двух строк, тем выше вероятность, что эти строки одинаковы.

Синтаксис

wordShingleSimHashCaseInsensitiveUTF8(string[, shinglesize])

Аргументы

  • string — Строка, для которой вычисляется хеш. String
  • shinglesize — Необязательный. Размер словесного шингла: любое число от 1 до 25. Значение по умолчанию — 3. UInt8

Возвращаемое значение

Возвращает вычисленное хеш-значение. UInt64

Примеры

Пример использования

SELECT wordShingleSimHashCaseInsensitiveUTF8('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).') AS Hash;
┌───────Hash─┐
│ 2194812424 │
└────────────┘

wordShingleSimHashUTF8

Добавленный в: v21.1.0

Разбивает UTF-8-строку на части (шинглы) размером shinglesize слов и возвращает simhash словесного шингла. Чувствительна к регистру.

Может использоваться для обнаружения почти дублирующихся строк с помощью bitHammingDistance. Чем меньше расстояние Хэмминга между вычисленными simhashes двух строк, тем выше вероятность того, что эти строки совпадают.

Синтаксис

wordShingleSimHashUTF8(string[, shinglesize])

Аргументы

  • string — Строка, для которой вычисляется хеш. String
  • shinglesize — Необязательный параметр. Размер словесного шингла; любое число от 1 до 25. Значение по умолчанию — 3. UInt8

Возвращаемое значение

Возвращает вычисленное хеш-значение. UInt64

Примеры

Пример использования

SELECT wordShingleSimHashUTF8('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).') AS Hash;
┌───────Hash─┐
│ 2328277067 │
└────────────┘

wyHash64

Добавленный в: v22.7.0

Вычисляет 64-битное wyHash64 хеш-значение.

Синтаксис

wyHash64(arg)

Аргументы

  • arg — аргумент типа String, для которого вычисляется хеш. String

Возвращаемое значение

Вычисленное 64-битное хеш-значение UInt64

Примеры

Пример использования

SELECT wyHash64('ClickHouse') AS Hash;
12336419557878201794

xxHash32

Добавленный в: v20.1.0

Вычисляет xxHash от строки.

Версию для 64 бит см. в xxHash64

Синтаксис

xxHash32(arg)

Аргументы

  • arg — Входная строка для вычисления хеша. String

Возвращаемое значение

Возвращает 32-битный хеш, вычисленный для входной строки. UInt32

Примеры

Пример использования

SELECT xxHash32('Hello, world!');
┌─xxHash32('Hello, world!')─┐
│                 834093149 │
└───────────────────────────┘

xxHash64

Добавленный в: v20.1.0

Вычисляет xxHash для строки.

Описание 32-битной версии см. в xxHash32

Синтаксис

xxHash64(arg)

Аргументы

  • arg — Строка, для которой вычисляется хеш. String

Возвращаемое значение

Возвращает вычисленное 64-битное хеш-значение входной строки. UInt64

Примеры

Пример использования

SELECT xxHash64('Hello, world!');
┌─xxHash64('Hello, world!')─┐
│      17691043854468224118 │
└───────────────────────────┘

xxHash64Spark

Добавленный в: v26.7.0

Вычисляет xxHash для строки, используя тот же seed, что и Spark.

Эта функция аналогична xxHash64, но использует seed 42 и возвращает результат типа Int64. Поддерживаются только входные значения String и NULL. Для NULL функция возвращает 42, что соответствует поведению Spark при использовании seed.

Синтаксис

xxHash64Spark(arg)

Аргументы

  • arg — Входная строка, для которой вычисляется хеш. String

Возвращаемое значение

Возвращает вычисленный 64-битный хеш входной строки. Int64

Примеры

Пример использования

SELECT xxHash64Spark('ABC');
┌─xxHash64Spark('ABC')─┐
│  4105715581806190027 │
└──────────────────────┘

xxh3

Добавленный в: v22.12.0

Вычисляет 64-битное хеш-значение XXH3.

Синтаксис

xxh3(expr)

Аргументы

  • expr — Список выражений любого типа данных. Any

Возвращаемое значение

Возвращает вычисленное 64-битное хеш-значение xxh3 UInt64

Примеры

Пример использования

SELECT xxh3('ClickHouse')
18009318874338624809

xxh3_128

Добавленный в: v26.2.0

Вычисляет 128-битное хеш-значение XXH3.

Синтаксис

xxh3_128(expr)

Аргументы

  • expr — Список выражений любого типа данных. Any

Возвращаемое значение

Возвращает вычисленное 128-битное хеш-значение xxh3 UInt128

Примеры

Пример использования

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