Перейти к основному содержанию
Хеш-функции можно использовать для детерминированного псевдослучайного перемешивания элементов. Simhash — это хеш-функция, которая возвращает схожие хеш-значения для близких (похожих) аргументов. Большинство хеш-функций принимают любое количество аргументов любых типов.
Хеш от NULL равен NULL. Чтобы получить хеш, отличный от NULL, для столбца типа Nullable, оберните его в tuple:
SELECT cityHash64(tuple(NULL))
Чтобы вычислить хеш всего содержимого таблицы, используйте sum(cityHash64(tuple(*))) (или другую хеш-функцию). tuple гарантирует, что строки со значениями NULL не будут пропущены. sum гарантирует, что порядок строк не имеет значения.

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
Query
SELECT hex(BLAKE3('ABC'))
Response
┌─hex(BLAKE3('ABC'))───────────────────────────────────────────────┐
│ D1717274597CF0289694F75D96D444B992A096F1AFD8E7BBFA6EBB1D360FEDFC │
└──────────────────────────────────────────────────────────────────┘

MD4

Добавленный в: v21.11.0 Вычисляет хеш MD4 от заданной строки. Синтаксис
MD4(s)
Аргументы
  • s — Строка, для которой вычисляется хеш. String
Возвращаемое значение Возвращает MD4-хеш указанной строки в виде строки фиксированной длины. FixedString(16) Примеры Пример использования
Query
SELECT HEX(MD4('abc'));
Response
┌─hex(MD4('abc'))──────────────────┐
│ A448017AAF21D8525FC10AE87AA6729D │
└──────────────────────────────────┘

MD5

Добавленный в: v1.1.0 Вычисляет хеш MD5 заданной строки. Синтаксис
MD5(s)
Аргументы
  • s — Строка, для которой вычисляется хеш. String
Возвращаемое значение Возвращает MD5-хеш заданной строки в виде строки фиксированной длины. FixedString(16) Примеры Пример использования
Query
SELECT HEX(MD5('abc'));
Response
┌─hex(MD5('abc'))──────────────────┐
│ 900150983CD24FB0D6963F7D28E17F72 │
└──────────────────────────────────┘

RIPEMD160

Добавленный в: v24.10.0 Вычисляет хеш RIPEMD-160 от заданной строки. Синтаксис
RIPEMD160(s)
Аргументы
  • s — Входная строка для вычисления хеша. String
Возвращаемое значение Возвращает хеш RIPEMD160 от заданной входной строки в виде строки фиксированной длины. FixedString(20) Примеры Пример использования
Query
SELECT HEX(RIPEMD160('The quick brown fox jumps over the lazy dog'));
Response
┌─HEX(RIPEMD160('The quick brown fox jumps over the lazy dog'))─┐
│ 37F332F68DB77BD9D7EDD4969571AD671CF9DD3B                      │
└───────────────────────────────────────────────────────────────┘

SHA1

Добавленный в: v1.1.0 Вычисляет SHA1-хеш заданной строки. Синтаксис
SHA1(s)
Аргументы
  • s — Входная строка, для которой вычисляется хеш String
Возвращаемое значение Возвращает SHA1-хеш заданной строки в виде строки фиксированной длины. FixedString(20) Примеры Пример использования
Query
SELECT HEX(SHA1('abc'));
Response
┌─hex(SHA1('abc'))─────────────────────────┐
│ A9993E364706816ABA3E25717850C26C9CD0D89D │
└──────────────────────────────────────────┘

SHA224

Добавленный в: v1.1.0 Вычисляет хеш SHA224 для заданной строки. Синтаксис
SHA224(s)
Аргументы
  • s — Входное значение, для которого вычисляется хеш. String
Возвращаемое значение Возвращает SHA224-хеш указанной входной строки в виде строки фиксированной длины. FixedString(28) Примеры Пример использования
Query
SELECT HEX(SHA224('abc'));
Response
┌─hex(SHA224('abc'))───────────────────────────────────────┐
│ 23097D223405D8228642A477BDA255B32AADBCE4BDA0B3F7E36C9DA7 │
└──────────────────────────────────────────────────────────┘

SHA256

Добавленный в: v1.1.0 Вычисляет хеш SHA256 заданной строки. Синтаксис
SHA256(s)
Аргументы
  • s — входная строка для хеширования. String
Возвращаемое значение Возвращает SHA256-хеш заданной строки в виде строки фиксированной длины. FixedString(32) Примеры Пример использования
Query
SELECT HEX(SHA256('abc'));
Response
┌─hex(SHA256('abc'))───────────────────────────────────────────────┐
│ BA7816BF8F01CFEA414140DE5DAE2223B00361A396177A9CB410FF61F20015AD │
└──────────────────────────────────────────────────────────────────┘

SHA384

Добавленный в: v1.1.0 Вычисляет хеш SHA384 для заданной строки. Синтаксис
SHA384(s)
Аргументы
  • s — Входная строка для вычисления хеша. String
Возвращаемое значение Возвращает SHA384-хеш заданной строки ввода в виде строки фиксированной длины. FixedString(48) Примеры Пример использования
Query
SELECT HEX(SHA384('abc'));
Response
┌─hex(SHA384('abc'))───────────────────────────────────────────────────────────────────────────────┐
│ CB00753F45A35E8BB5A03D699AC65007272C32AB0EDED1631A8B605A43FF5BED8086072BA1E7CC2358BAECA134C825A7 │
└──────────────────────────────────────────────────────────────────────────────────────────────────┘

SHA512

Добавленный в: v1.1.0 Вычисляет хеш SHA512 для заданной строки. Синтаксис
SHA512(s)
Аргументы
  • s — Строка, которую нужно хешировать String
Возвращаемое значение Возвращает хеш SHA512 указанной строки в виде строки фиксированной длины. FixedString(64) Примеры Пример использования
Query
SELECT HEX(SHA512('abc'));
Response
┌─hex(SHA512('abc'))───────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ DDAF35A193617ABACC417349AE20413112E6FA4E89A97EA20A9EEEE64B55D39A2192992A274FC1A836BA3C23A3FEEBBD454D4423643CE80E2A9AC94FA54CA49F │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

SHA512_256

Добавленный в: v1.1.0 Вычисляет хеш SHA512_256 заданной строки. Синтаксис
SHA512_256(s)
Аргументы
  • s — Входная строка, для которой вычисляется хеш. String
Возвращаемое значение Возвращает хеш SHA512_256 заданной строки ввода в виде строки фиксированной длины. FixedString(32) Примеры Пример использования
Query
SELECT HEX(SHA512_256('abc'));
Response
┌─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 Примеры Пример использования
Query
SELECT URLHash('https://www.clickhouse.com')
Response
┌─URLHash('htt⋯house.com')─┐
│     13614512636072854701 │
└──────────────────────────┘
Хеш URL на указанном уровне
Query
SELECT URLHash('https://www.clickhouse.com/docs', 0);
SELECT URLHash('https://www.clickhouse.com/docs', 1);
Response
-- хеш https://www.clickhouse.com
┌─URLHash('htt⋯m/docs', 0)─┐
│     13614512636072854701 │
└──────────────────────────┘
-- хеш https://www.clickhouse.com/docs
┌─URLHash('htt⋯m/docs', 1)─┐
│     13167253331440520598 │
└──────────────────────────┘

cityHash64

Добавленный в: v1.1.0 Возвращает 64-битное хеш-значение CityHash. Это быстрая некриптографическая хеш-функция. Для строковых параметров она использует алгоритм CityHash, а для параметров с другими типами данных — быструю некриптографическую хеш-функцию, зависящую от реализации. Функция использует комбинатор CityHash для получения итогового результата.
Google изменила алгоритм CityHash после того, как он был добавлен в ClickHouse. Иными словами, cityHash64 в ClickHouse и исходный CityHash от Google теперь выдают разные результаты. cityHash64 в ClickHouse соответствует CityHash v1.0.2.
Вычисленные хеш-значения могут совпадать для одних и тех же входных значений аргументов разных типов. Это касается, например, целочисленных типов разного размера, именованных и неименованных Tuple с одинаковыми данными, а также Map и соответствующего типа Array(Tuple(key, value)) с одинаковыми данными.
Синтаксис
cityHash64(arg1[, arg2, ...])
Аргументы
  • arg1[, arg2, ...] — переменное количество входных аргументов, для которых вычисляется хеш. Any
Возвращаемое значение Возвращает вычисленный хеш входных аргументов. UInt64 Примеры Пример вызова
Query
SELECT cityHash64(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS CityHash, toTypeName(CityHash) AS type;
Response
┌─────────────CityHash─┬─type───┐
│ 12072650598913549138 │ UInt64 │
└──────────────────────┴────────┘
Вычисление контрольной суммы всей таблицы с точностью до порядка строк
Query
CREATE TABLE users (
    id UInt32,
    name String,
    age UInt8,
    city String
)
ENGINE = MergeTree
ORDER BY tuple();

INSERT INTO users VALUES
(1, 'Alice', 25, 'New York'),
(2, 'Bob', 30, 'London'),
(3, 'Charlie', 35, 'Tokyo');

SELECT groupBitXor(cityHash64(*)) FROM users;
Response
┌─groupBitXor(⋯age, city))─┐
│     11639977218258521182 │
└──────────────────────────┘

farmFingerprint64

Добавленный в: v20.12.0 Вычисляет 64-битное FarmHash хеш-значение с использованием метода Fingerprint64.
Для получения стабильного и переносимого значения рекомендуется использовать farmFingerprint64 вместо farmHash64.
Вычисленные хеш-значения могут совпадать для одинаковых входных значений аргументов разных типов. Это относится, например, к целочисленным типам разного размера, именованным и неименованным Tuple с одинаковыми данными, Map и соответствующему типу Array(Tuple(key, value)) с одинаковыми данными.
Синтаксис
farmFingerprint64(arg1[, arg2, ...])
Аргументы
  • arg1[, arg2, ...] — Переменное число входных аргументов, для которых вычисляется хеш. Any
Возвращаемое значение Возвращает вычисленное хеш-значение входных аргументов. UInt64 Примеры Пример использования
Query
SELECT farmFingerprint64(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS FarmFingerprint, toTypeName(FarmFingerprint) AS type;
Response
┌─────FarmFingerprint─┬─type───┐
│ 5752020380710916328 │ UInt64 │
└─────────────────────┴────────┘

farmHash64

Добавленный в: v1.1.0 Вычисляет 64-битное хеш-значение FarmHash с помощью метода Hash64.
Для получения стабильного и переносимого значения предпочтительнее использовать farmFingerprint64.
Вычисленные хеш-значения могут совпадать для одинаковых входных значений аргументов разных типов. Это касается, например, целочисленных типов разного размера, именованных и неименованных Tuple с одинаковыми данными, а также Map и соответствующего типа Array(Tuple(key, value)) с одинаковыми данными.
Синтаксис
farmHash64(arg1[, arg2, ...])
Аргументы
  • arg1[, arg2, ...] — Переменное число входных аргументов, для которых вычисляется хеш. Any
Возвращаемое значение Возвращает вычисленное хеш-значение входных аргументов. UInt64 Примеры Пример использования
Query
SELECT farmHash64(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS FarmHash, toTypeName(FarmHash) AS type;
Response
┌─────────────FarmHash─┬─type───┐
│ 18125596431186471178 │ UInt64 │
└──────────────────────┴────────┘

gccMurmurHash

Добавленный в: v20.1.0 Вычисляет 64-битный хеш MurmurHash2 входного значения, используя тот же seed, что и в GCC. Переносим между сборками Clang и GCC. Синтаксис
gccMurmurHash(arg1[, arg2, ...])
Аргументы
  • arg1[, arg2, ...] — Переменное количество аргументов, для которых вычисляется хеш. Any
Возвращаемое значение Возвращает вычисленное хеш-значение входных аргументов. UInt64 Примеры Пример использования
Query
SELECT
    gccMurmurHash(1, 2, 3) AS res1,
    gccMurmurHash(('a', [1, 2, 3], 4, (4, ['foo', 'bar'], 1, (1, 2)))) AS res2
Response
┌─────────────────res1─┬────────────────res2─┐
│ 12384823029245979431 │ 1188926775431157506 │
└──────────────────────┴─────────────────────┘

halfMD5

Добавленный в: 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 Примеры Пример использования
Query
SELECT HEX(halfMD5('abc', 'cde', 'fgh'));
Response
┌─hex(halfMD5('abc', 'cde', 'fgh'))─┐
│ 2C9506B7374CFAF4                  │
└───────────────────────────────────┘

hiveHash

Добавленный в: v20.1.0 Вычисляет “HiveHash” для строки. Это просто JavaHash с обнулёнными знаковыми битами. Эта функция используется в Apache Hive в версиях до 3.0.
Эта хеш-функция работает медленно. Используйте её только в том случае, если этот алгоритм уже используется в другой системе и вам нужно получить тот же результат.
Синтаксис
hiveHash(arg)
Аргументы
  • arg — Входная строка для вычисления хеша. String
Возвращаемое значение Возвращает вычисленное значение “hive hash” для входной строки. Int32 Примеры Пример использования
Query
SELECT hiveHash('Hello, world!');
Response
┌─hiveHash('Hello, world!')─┐
│                 267439093 │
└───────────────────────────┘

icebergHash

Добавленный в: v25.5.0 Реализует логику хеш-преобразования Iceberg Синтаксис
icebergHash(value)
Аргументы Возвращаемое значение Возвращает 32-битный хеш Murmur3 (вариант x86) с seed, равным 0 Int32 Примеры Пример
Query
SELECT icebergHash(1.0 :: Float32)
Response
-142385009

intHash32

Добавленный в: v1.1.0 Вычисляет 32-битный хеш целого числа. Эта хеш-функция работает относительно быстро, но не является криптографической. Синтаксис
intHash32(arg)
Аргументы
  • arg — Целое число для хеширования. (U)Int*
Возвращаемое значение Возвращает вычисленное 32-битное хеш-значение для входного целого числа UInt32 Примеры Пример использования
Query
SELECT intHash32(42);
Response
┌─intHash32(42)─┐
│    1228623923 │
└───────────────┘

intHash64

Добавленный в: v1.1.0 Вычисляет 64-битный хеш от целого числа. Эта хеш-функция работает относительно быстро (даже быстрее, чем intHash32), но не является криптографической хеш-функцией. Синтаксис
intHash64(int)
Аргументы
  • int — Целое число, для которого вычисляется хеш. (U)Int*
Возвращаемое значение 64-битное значение хеша. UInt64 Примеры Пример использования
Query
SELECT intHash64(42);
Response
┌────────intHash64(42)─┐
│ 11490350930367293593 │
└──────────────────────┘

javaHash

Добавленный в: v20.1.0 Вычисляет JavaHash для:
Эта хеш-функция работает медленно. Используйте её только если этот алгоритм уже используется в другой системе и вам нужно получить тот же результат.
В Java хеш можно вычислять только для знаковых целых чисел, поэтому, если вы хотите вычислить хеш для беззнаковых целых чисел, их нужно привести к соответствующим знаковым типам ClickHouse.
Синтаксис
javaHash(arg)
Аргументы
  • arg — Входное значение, для которого вычисляется хеш. Any
Возвращаемое значение Возвращает хеш, вычисленный для arg Int32 Примеры Пример использования 1
Query
SELECT javaHash(toInt32(123));
Response
┌─javaHash(toInt32(123))─┐
│               123      │
└────────────────────────┘
Пример использования 2
Query
SELECT javaHash('Hello, world!');
Response
┌─javaHash('Hello, world!')─┐
│               -1880044555 │
└───────────────────────────┘

javaHashUTF16LE

Добавленный в: v20.1.0 Вычисляет JavaHash для строки, предполагая, что она содержит байты строки в кодировке UTF-16LE. Синтаксис
javaHashUTF16LE(arg)
Аргументы
  • arg — Строка в кодировке UTF-16LE. String
Возвращаемое значение Возвращает вычисленное хеш-значение строки в кодировке UTF-16LE. Int32 Примеры Пример использования
Query
SELECT javaHashUTF16LE(convertCharset('test', 'utf-8', 'utf-16le'));
Response
┌─javaHashUTF16LE(convertCharset('test', 'utf-8', 'utf-16le'))─┐
│                                                      3556498 │
└──────────────────────────────────────────────────────────────┘

jumpConsistentHash

Добавленный в: v1.1.0 Вычисляет jump consistent hash от целого числа. Синтаксис
jumpConsistentHash(key, buckets)
Аргументы
  • key — Входной ключ. UInt64
  • buckets — Количество бакетов. Int32
Возвращаемое значение Возвращает вычисленное хеш-значение. Int32 Примеры Пример использования
Query
SELECT jumpConsistentHash(256, 4)
Response
┌─jumpConsistentHash(256, 4)─┐
│                          3 │
└────────────────────────────┘

kafkaMurmurHash

Добавленный в: v23.4.0 Вычисляет 32-битный хеш MurmurHash2 от входного значения, используя тот же seed, что и Kafka, и отбрасывая старший бит для совместимости с Default Partitioner. Синтаксис
kafkaMurmurHash(arg1[, arg2, ...])
Аргументы
  • arg1[, arg2, ...] — Переменное число параметров, для которых вычисляется хеш. Any
Возвращаемое значение Возвращает вычисленное хеш-значение переданных аргументов. UInt32 Примеры Пример использования
Query
SELECT
    kafkaMurmurHash('foobar') AS res1,
    kafkaMurmurHash(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS res2
Response
┌───────res1─┬─────res2─┐
│ 1357151166 │ 85479775 │
└────────────┴──────────┘

keccak256

Добавленный в: v25.4.0 Вычисляет криптографический хеш Keccak-256 для указанной строки. Эта хеш-функция широко используется в блокчейн-приложениях, особенно в Ethereum. Синтаксис
keccak256(message)
Аргументы
  • message — Входная строка, которую нужно хешировать. String
Возвращаемое значение Возвращает 32-байтный хеш Keccak-256 от входной строки в виде строки фиксированной длины. FixedString(32) Примеры Пример использования
Query
SELECT hex(keccak256('hello'))
Response
┌─hex(keccak256('hello'))──────────────────────────────────────────┐
│ 1C8AFF950685C2ED4BC3174F3472287B56D9517B9C948127319A09A7A36DEAC8 │
└──────────────────────────────────────────────────────────────────┘

kostikConsistentHash

Добавленный в: v22.6.0 Алгоритм согласованного хеширования Константина ‘Kostik’ Облакова со сложностью O(1) по времени и памяти. Эффективен только при n <= 32768. Синтаксис
kostikConsistentHash(input, n)
Псевдонимы: yandexConsistentHash Аргументы
  • input — Целое число, используемое в качестве ключа. UInt64
  • n — Количество бакетов. UInt16
Возвращаемое значение Возвращает вычисленное хеш-значение. UInt16 Примеры Пример использования
Query
SELECT kostikConsistentHash(16045690984833335023, 2);
Response
┌─kostikConsistentHash(16045690984833335023, 2)─┐
│                                             1 │
└───────────────────────────────────────────────┘

metroHash64

Добавленный в: v1.1.0 Возвращает 64-битное хеш-значение MetroHash.
Вычисленные хеш-значения могут совпадать для одинаковых входных значений аргументов разных типов. Это относится, например, к целочисленным типам разного размера, именованным и неименованным Tuple с одинаковыми данными, а также к Map и соответствующему типу Array(Tuple(key, value)) с одинаковыми данными.
Синтаксис
metroHash64(arg1[, arg2, ...])
Аргументы
  • arg1[, arg2, ...] — Переменное число входных аргументов, для которых вычисляется хеш. Any
Возвращаемое значение Возвращает хеш, вычисленный по входным аргументам. UInt64 Примеры Пример использования
Query
SELECT metroHash64(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS MetroHash, toTypeName(MetroHash) AS type;
Response
┌────────────MetroHash─┬─type───┐
│ 14235658766382344533 │ UInt64 │
└──────────────────────┴────────┘

murmurHash2_32

Добавленный в: v18.5.0 Вычисляет хеш MurmurHash2 от входного значения.
Вычисленные хеш-значения могут совпадать для одинаковых входных значений аргументов разных типов. Это относится, например, к целочисленным типам разного размера, именованному и неименованному Tuple с одними и теми же данными, а также Map и соответствующему типу Array(Tuple(key, value)) с одними и теми же данными.
Синтаксис
murmurHash2_32(arg1[, arg2, ...])
Аргументы
  • arg1[, arg2, ...] — Переменное количество входных аргументов, для которых вычисляется хеш. Any
Возвращаемое значение Возвращает вычисленное хеш-значение входных аргументов. UInt32 Примеры Пример использования
Query
SELECT murmurHash2_32(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS MurmurHash2, toTypeName(MurmurHash2) AS type;
Response
┌─MurmurHash2─┬─type───┐
│  3681770635 │ UInt32 │
└─────────────┴────────┘

murmurHash2_64

Добавленный в: v18.10.0 Вычисляет хеш MurmurHash2 от входного значения.
Вычисленные хеш-значения могут совпадать для одинаковых входных значений аргументов разных типов. Это относится, например, к целочисленным типам разного размера, именованным и неименованным Tuple с одинаковыми данными, а также к Map и соответствующему типу Array(Tuple(key, value)) с одинаковыми данными.
Синтаксис
murmurHash2_64(arg1[, arg2, ...])
Аргументы
  • arg1[, arg2, ...] — Переменное число входных аргументов, для которых вычисляется хеш. Any
Возвращаемое значение Возвращает хеш, вычисленный по входным аргументам. UInt64 Примеры Пример использования
Query
SELECT murmurHash2_64(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS MurmurHash2, toTypeName(MurmurHash2) AS type;
Response
┌──────────MurmurHash2─┬─type───┐
│ 11832096901709403633 │ UInt64 │
└──────────────────────┴────────┘

murmurHash3_128

Добавленный в: v18.10.0 Вычисляет 128-битный хеш MurmurHash3 для входного значения. Синтаксис
murmurHash3_128(arg1[, arg2, ...])
Аргументы
  • arg1[, arg2, ...] — Переменное число входных аргументов, для которых вычисляется хеш. Any
Возвращаемое значение Возвращает вычисленное 128-битное хеш-значение MurmurHash3 для входных аргументов. FixedString(16) Примеры Пример использования
Query
SELECT hex(murmurHash3_128('foo', 'foo', 'foo'));
Response
┌─hex(murmurHash3_128('foo', 'foo', 'foo'))─┐
│ F8F7AD9B6CD4CF117A71E277E2EC2931          │
└───────────────────────────────────────────┘

murmurHash3_32

Добавленный в: v18.10.0 Возвращает хеш-значение MurmurHash3.
Вычисленные хеш-значения могут совпадать для одних и тех же входных значений при разных типах аргументов. Это относится, например, к целочисленным типам разного размера, именованным и неименованным Tuple с одинаковыми данными, а также к Map и соответствующему типу Array(Tuple(key, value)) с одинаковыми данными.
Синтаксис
murmurHash3_32(arg1[, arg2, ...])
Аргументы
  • arg1[, arg2, ...] — переменное количество входных аргументов, для которых вычисляется хеш. Any
Возвращаемое значение Возвращает вычисленное хеш-значение входных аргументов. UInt32 Примеры Пример использования
Query
SELECT murmurHash3_32(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS MurmurHash3, toTypeName(MurmurHash3) AS type;
Response
┌─MurmurHash3─┬─type───┐
│     2152717 │ UInt32 │
└─────────────┴────────┘

murmurHash3_64

Добавленный в: v18.10.0 Вычисляет хеш MurmurHash3 от входного значения.
Вычисленные хеш-значения могут совпадать для одинаковых входных значений аргументов разных типов. Это касается, например, целочисленных типов разного размера, именованных и неименованных Tuple с одинаковыми данными, Map и соответствующего типа Array(Tuple(key, value)) с одинаковыми данными.
Синтаксис
murmurHash3_64(arg1[, arg2, ...])
Аргументы
  • arg1[, arg2, ...] — Переменное число входных аргументов, для которых вычисляется хеш. Any
Возвращаемое значение Возвращает хеш-значение, вычисленное для входных аргументов. UInt64 Примеры Пример использования
Query
SELECT murmurHash3_64(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS MurmurHash3, toTypeName(MurmurHash3) AS type;
Response
┌──────────MurmurHash3─┬─type───┐
│ 11832096901709403633 │ UInt64 │
└──────────────────────┴────────┘

ngramMinHash

Добавленный в: 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 Примеры Пример использования
Query
SELECT ngramMinHash('ClickHouse') AS Tuple;
Response
┌─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) Примеры Пример использования
Query
SELECT ngramMinHashArg('ClickHouse') AS Tuple;
Response
┌─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)) Примеры Пример использования
Query
SELECT ngramMinHashArgCaseInsensitive('ClickHouse') AS Tuple;
Response
┌─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)) Примеры Пример использования
Query
SELECT ngramMinHashArgCaseInsensitiveUTF8('ClickHouse') AS Tuple;
Response
┌─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)) Примеры Пример использования
Query
SELECT ngramMinHashArgUTF8('ClickHouse') AS Tuple;
Response
┌─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 Примеры Пример использования
Query
SELECT ngramMinHashCaseInsensitive('ClickHouse') AS Tuple;
Response
┌─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 Примеры Пример использования
Query
SELECT ngramMinHashCaseInsensitiveUTF8('ClickHouse') AS Tuple;
Response
┌─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 Примеры Пример использования
Query
SELECT ngramMinHashUTF8('ClickHouse') AS Tuple;
Response
┌─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 Примеры Пример использования
Query
SELECT ngramSimHash('ClickHouse') AS Hash;
Response
┌───────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 Примеры Пример использования
Query
SELECT ngramSimHashCaseInsensitive('ClickHouse') AS Hash;
Response
┌──────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 Примеры Пример использования
Query
SELECT ngramSimHashCaseInsensitiveUTF8('ClickHouse') AS Hash;
Response
┌───────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 Примеры Пример использования
Query
SELECT ngramSimHashUTF8('ClickHouse') AS Hash;
Response
┌───────Hash─┐
│ 1628157797 │
└────────────┘

sipHash128

Добавленный в: v1.1.0 Как sipHash64, но возвращает 128-битное хеш-значение, то есть итоговое состояние xor-folding вычисляется до 128 бит.
используйте sipHash128Reference в новых проектахЭтот 128-битный вариант отличается от эталонной реализации и менее надёжен. Эта версия существует потому, что на момент её создания не было официального 128-битного расширения для SipHash. В новых проектах рекомендуется использовать sipHash128Reference.
Синтаксис
sipHash128(arg1[, arg2, ...])
Аргументы
  • arg1[, arg2, ...] — Переменное число входных аргументов, для которых вычисляется хеш. Any
Возвращаемое значение Возвращает 128-битное хеш-значение SipHash. FixedString(16) Примеры Пример использования
Query
SELECT hex(sipHash128('foo', '\x01', 3));
Response
┌─hex(sipHash128('foo', '', 3))────┐
│ 9DE516A64A414D4B1B609415E4523F24 │
└──────────────────────────────────┘

sipHash128Keyed

Добавленный в: v23.2.0 То же, что и sipHash128, но дополнительно принимает явный аргумент key вместо использования фиксированного ключа.
используйте sipHash128ReferenceKeyed в новых проектахЭтот 128-битный вариант отличается от эталонной реализации и является менее стойким. Эта версия существует потому, что на момент её создания не было официального 128-битного расширения SipHash. В новых проектах, вероятно, следует использовать sipHash128ReferenceKeyed.
Синтаксис
sipHash128Keyed((k0, k1), [arg1, arg2, ...])
Аргументы
  • (k0, k1) — кортеж из двух значений UInt64, представляющий ключ. Tuple(UInt64, UInt64)
  • arg1[, arg2, ...] — переменное число входных аргументов, для которых вычисляется хеш. Any
Возвращаемое значение 128-битное хеш-значение SipHash типа FixedString(16). FixedString(16) Примеры Пример использования
Query
SELECT hex(sipHash128Keyed((506097522914230528, 1084818905618843912),'foo', '\x01', 3));
Response
┌─hex(sipHash128Keyed((506097522914230528, 1084818905618843912), 'foo', '', 3))─┐
│ B8467F65C8B4CFD9A5F8BD733917D9BF                                              │
└───────────────────────────────────────────────────────────────────────────────┘

sipHash128Reference

Добавленный в: v23.2.0 Как sipHash128, но использует 128-битный алгоритм от исходных авторов SipHash. Синтаксис
sipHash128Reference(arg1[, arg2, ...])
Аргументы
  • arg1[, arg2, ...] — переменное число входных аргументов, для которых вычисляется хеш. Any
Возвращаемое значение Возвращает вычисленное 128-битное хеш-значение SipHash от входных аргументов. FixedString(16) Примеры Пример использования
Query
SELECT hex(sipHash128Reference('foo', '', 3));
Response
┌─hex(sipHash128Reference('foo', '', 3))─┐
│ 4D1BE1A22D7F5933C0873E1698426260       │
└────────────────────────────────────────┘

sipHash128ReferenceKeyed

Добавленный в: v23.2.0 То же, что и sipHash128Reference, но дополнительно принимает явный аргумент key вместо использования фиксированного ключа. Синтаксис
sipHash128ReferenceKeyed((k0, k1), arg1[, arg2, ...])
Аргументы
  • (k0, k1) — кортеж из двух значений, представляющий ключ Tuple(UInt64, UInt64)
  • arg1[, arg2, ...] — Переменное число входных аргументов, для которых вычисляется хеш. Any
Возвращаемое значение Возвращает вычисленное 128-битное хеш-значение SipHash для входных аргументов. FixedString(16) Примеры Пример использования
Query
SELECT hex(sipHash128Reference('foo', '', 3));
Response
┌─hex(sipHash128Reference('foo', '', 3))─┐
│ 4D1BE1A22D7F5933C0873E1698426260       │
└────────────────────────────────────────┘

sipHash64

Добавленный в: v1.1.0 Создает 64-битное хеш-значение SipHash. Это криптографическая хеш-функция. Она работает как минимум в три раза быстрее, чем хеш-функция MD5. Функция интерпретирует все входные параметры как строки и вычисляет хеш-значение для каждого из них. Затем она объединяет хеш-значения, используя следующий алгоритм:
  1. Первое и второе хеш-значения объединяются в массив, для которого вычисляется хеш.
  2. Ранее вычисленное хеш-значение и хеш-значение третьего входного параметра хешируются аналогичным образом.
  3. Это вычисление повторяется для всех оставшихся хеш-значений исходных входных параметров.
вычисленные хеш-значения могут совпадать для одинаковых входных значений аргументов разных типов. Это относится, например, к целочисленным типам разного размера, именованным и неименованным Tuple с одинаковыми данными, Map и соответствующему типу Array(Tuple(key, value)) с одинаковыми данными.
Синтаксис
sipHash64(arg1[, arg2, ...])
Аргументы
  • arg1[, arg2, ...] — Переменное число входных аргументов. Any
Возвращаемое значение Возвращает хеш-значение, вычисленное по входным аргументам. UInt64 Примеры Пример использования
Query
SELECT sipHash64(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS SipHash, toTypeName(SipHash) AS type;
Response
┌──────────────SipHash─┬─type───┐
│ 11400366955626497465 │ UInt64 │
└──────────────────────┴────────┘

sipHash64Keyed

Добавленный в: v23.2.0 Как sipHash64, но дополнительно принимает явный ключ в качестве аргумента вместо использования фиксированного ключа. Синтаксис
sipHash64Keyed((k0, k1), arg1[,arg2, ...])
Аргументы
  • (k0, k1) — Кортеж из двух значений, образующих ключ. Tuple(UInt64, UInt64)
  • arg1[,arg2, ...] — Переменное число входных аргументов. Any
Возвращаемое значение Возвращает хеш, вычисленный по входным значениям. UInt64 Примеры Пример использования
Query
SELECT sipHash64Keyed((506097522914230528, 1084818905618843912), array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS SipHash, toTypeName(SipHash) AS type;
Response
┌─────────────SipHash─┬─type───┐
│ 8017656310194184311 │ UInt64 │
└─────────────────────┴────────┘

wordShingleMinHash

Добавленный в: 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) Примеры Пример использования
Query
SELECT wordShingleMinHash('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).') AS Tuple;
Response
┌─Tuple──────────────────────────────────────┐
│ (16452112859864147620,5844417301642981317) │
└────────────────────────────────────────────┘

wordShingleMinHashArg

Добавленный в: 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)) Примеры Пример использования
Query
SELECT wordShingleMinHashArg('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).', 1, 3) AS Tuple;
Response
┌─Tuple─────────────────────────────────────────────────────────────────┐
│ (('OLAP','database','analytical'),('online','oriented','processing')) │
└───────────────────────────────────────────────────────────────────────┘

wordShingleMinHashArgCaseInsensitive

Добавленный в: 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)) Примеры Пример использования
Query
SELECT wordShingleMinHashArgCaseInsensitive('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).', 1, 3) AS Tuple;
Response
┌─Tuple──────────────────────────────────────────────────────────────────┐
│ (('queries','database','analytical'),('oriented','processing','DBMS')) │
└────────────────────────────────────────────────────────────────────────┘

wordShingleMinHashArgCaseInsensitiveUTF8

Добавленный в: 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)) Примеры Пример использования
Query
SELECT wordShingleMinHashArgCaseInsensitiveUTF8('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).', 1, 3) AS Tuple;
Response
┌─Tuple──────────────────────────────────────────────────────────────────┐
│ (('queries','database','analytical'),('oriented','processing','DBMS')) │
└────────────────────────────────────────────────────────────────────────┘

wordShingleMinHashArgUTF8

Добавленный в: 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)) Примеры Пример использования
Query
SELECT wordShingleMinHashArgUTF8('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).', 1, 3) AS Tuple;
Response
┌─Tuple─────────────────────────────────────────────────────────────────┐
│ (('OLAP','database','analytical'),('online','oriented','processing')) │
└───────────────────────────────────────────────────────────────────────┘

wordShingleMinHashCaseInsensitive

Добавленный в: 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) Примеры Пример использования
Query
SELECT wordShingleMinHashCaseInsensitive('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).') AS Tuple;
Response
┌─Tuple─────────────────────────────────────┐
│ (3065874883688416519,1634050779997673240) │
└───────────────────────────────────────────┘

wordShingleMinHashCaseInsensitiveUTF8

Добавленный в: 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) Примеры Пример использования
Query
SELECT wordShingleMinHashCaseInsensitiveUTF8('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).') AS Tuple;
Response
┌─Tuple─────────────────────────────────────┐
│ (3065874883688416519,1634050779997673240) │
└───────────────────────────────────────────┘

wordShingleMinHashUTF8

Добавленный в: 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) Примеры Пример использования
Query
SELECT wordShingleMinHashUTF8('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).') AS Tuple;
Response
┌─Tuple──────────────────────────────────────┐
│ (16452112859864147620,5844417301642981317) │
└────────────────────────────────────────────┘

wordShingleSimHash

Добавленный в: v21.1.0 Разбивает ASCII-строку на части (шинглы) по shinglesize слов и возвращает simhash словесного шингла. Чувствительна к регистру. Может использоваться для выявления почти дублирующихся строк с помощью bitHammingDistance. Чем меньше расстояние Хэмминга между вычисленными simhash двух строк, тем выше вероятность, что эти строки совпадают. Синтаксис
wordShingleSimHash(string[, shinglesize])
Аргументы
  • string — Строка, для которой вычисляется хеш. String
  • shinglesize — Необязательный параметр. Размер словесного шингла; любое число от 1 до 25. Значение по умолчанию — 3. UInt8
Возвращаемое значение Возвращает вычисленное хеш-значение. UInt64 Примеры Пример использования
Query
SELECT wordShingleSimHash('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).') AS Hash;
Response
┌───────Hash─┐
│ 2328277067 │
└────────────┘

wordShingleSimHashCaseInsensitive

Добавленный в: v21.1.0 Разбивает ASCII-строку на части (шинглы) по shinglesize слов и возвращает simhash словесного шингла. Используется регистронезависимый поиск. Может использоваться для выявления почти дублирующихся строк с помощью bitHammingDistance. Чем меньше расстояние Хэмминга между вычисленными simhash двух строк, тем выше вероятность, что эти строки одинаковы. Синтаксис
wordShingleSimHashCaseInsensitive(string[, shinglesize])
Аргументы
  • string — Строка, для которой вычисляется хеш. String
  • shinglesize — Необязательный параметр. Размер словесного шингла, любое число от 1 до 25. Значение по умолчанию — 3. UInt8
Возвращаемое значение Возвращает вычисленное хеш-значение. UInt64 Примеры Пример использования
Query
SELECT wordShingleSimHashCaseInsensitive('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).') AS Hash;
Response
┌───────Hash─┐
│ 2194812424 │
└────────────┘

wordShingleSimHashCaseInsensitiveUTF8

Добавленный в: v1.1.0 Разбивает строку в кодировке UTF-8 на части (шинглы) по shinglesize слов и возвращает simhash словесного шингла. Использует регистронезависимый поиск. Может использоваться для обнаружения почти дублирующихся строк с помощью bitHammingDistance. Чем меньше расстояние Хэмминга между вычисленными simhash двух строк, тем выше вероятность, что эти строки одинаковы. Синтаксис
wordShingleSimHashCaseInsensitiveUTF8(string[, shinglesize])
Аргументы
  • string — Строка, для которой вычисляется хеш. String
  • shinglesize — Необязательный. Размер словесного шингла: любое число от 1 до 25. Значение по умолчанию — 3. UInt8
Возвращаемое значение Возвращает вычисленное хеш-значение. UInt64 Примеры Пример использования
Query
SELECT wordShingleSimHashCaseInsensitiveUTF8('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).') AS Hash;
Response
┌───────Hash─┐
│ 2194812424 │
└────────────┘

wordShingleSimHashUTF8

Добавленный в: v21.1.0 Разбивает UTF-8-строку на части (шинглы) размером shinglesize слов и возвращает simhash словесного шингла. Чувствительна к регистру. Может использоваться для обнаружения почти дублирующихся строк с помощью bitHammingDistance. Чем меньше расстояние Хэмминга между вычисленными simhashes двух строк, тем выше вероятность того, что эти строки совпадают. Синтаксис
wordShingleSimHashUTF8(string[, shinglesize])
Аргументы
  • string — Строка, для которой вычисляется хеш. String
  • shinglesize — Необязательный параметр. Размер словесного шингла; любое число от 1 до 25. Значение по умолчанию — 3. UInt8
Возвращаемое значение Возвращает вычисленное хеш-значение. UInt64 Примеры Пример использования
Query
SELECT wordShingleSimHashUTF8('ClickHouse® is a column-oriented database management system (DBMS) for online analytical processing of queries (OLAP).') AS Hash;
Response
┌───────Hash─┐
│ 2328277067 │
└────────────┘

wyHash64

Добавленный в: v22.7.0 Вычисляет 64-битное wyHash64 хеш-значение. Синтаксис
wyHash64(arg)
Аргументы
  • arg — аргумент типа String, для которого вычисляется хеш. String
Возвращаемое значение Вычисленное 64-битное хеш-значение UInt64 Примеры Пример использования
Query
SELECT wyHash64('ClickHouse') AS Hash;
Response
12336419557878201794

xxHash32

Добавленный в: v20.1.0 Вычисляет xxHash от строки. Версию для 64 бит см. в xxHash64 Синтаксис
xxHash32(arg)
Аргументы
  • arg — Входная строка для вычисления хеша. String
Возвращаемое значение Возвращает 32-битный хеш, вычисленный для входной строки. UInt32 Примеры Пример использования
Query
SELECT xxHash32('Hello, world!');
Response
┌─xxHash32('Hello, world!')─┐
│                 834093149 │
└───────────────────────────┘

xxHash64

Добавленный в: v20.1.0 Вычисляет xxHash для строки. Описание 32-битной версии см. в xxHash32 Синтаксис
xxHash64(arg)
Аргументы
  • arg — Строка, для которой вычисляется хеш. String
Возвращаемое значение Возвращает вычисленное 64-битное хеш-значение входной строки. UInt64 Примеры Пример использования
Query
SELECT xxHash64('Hello, world!');
Response
┌─xxHash64('Hello, world!')─┐
│      17691043854468224118 │
└───────────────────────────┘

xxh3

Добавленный в: v22.12.0 Вычисляет 64-битное хеш-значение XXH3. Синтаксис
xxh3(expr)
Аргументы
  • expr — Список выражений любого типа данных. Any
Возвращаемое значение Возвращает вычисленное 64-битное хеш-значение xxh3 UInt64 Примеры Пример использования
Query
SELECT xxh3('ClickHouse')
Response
18009318874338624809

xxh3_128

Добавленный в: v26.2.0 Вычисляет 128-битное хеш-значение XXH3. Синтаксис
xxh3_128(expr)
Аргументы
  • expr — Список выражений любого типа данных. Any
Возвращаемое значение Возвращает вычисленное 128-битное хеш-значение xxh3 UInt128 Примеры Пример использования
Query
SELECT hex(xxh3_128('ClickHouse'))
Response
3A038784C52804B4DBA43A038784C528
Последнее изменение 10 июня 2026 г.