Хеш-функции можно использовать для детерминированного псевдослучайного перемешивания элементов.
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. 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
13167253331440520598cityHash64
Добавленный в: 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)Аргументы
value— исходное значение, для которого вычисляется хеш:IntegerилиBoolилиDecimalилиFloat*илиStringилиFixedStringилиUUIDилиDateилиTimeилиDateTime
Возвращаемое значение
Возвращает 32-битный хеш Murmur3 (вариант x86) с seed, равным 0 Int32
Примеры
Пример
SELECT icebergHash(1.0 :: Float32)-142385009intHash32
Добавленный в: 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)Аргументы
Возвращаемое значение
Возвращает вычисленное хеш-значение. 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
Аргументы
Возвращаемое значение
Возвращает вычисленное хеш-значение. 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— Строка, для которой вычисляется хеш.Stringngramsize— Необязательный параметр. Размер n-граммы, любое число от1до25. Значение по умолчанию —3.UInt8hashnum— Необязательный параметр. Количество минимальных и максимальных хешей, используемых для вычисления результата, любое число от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— Строка, для которой вычисляется хеш.Stringngramsize— Необязательно. Размер n-граммы, любое значение от1до25. Значение по умолчанию —3.UInt8hashnum— Необязательно. Число минимальных и максимальных хешей, используемых для вычисления результата, любое значение от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— Строка, для которой вычисляется хеш.Stringngramsize— Необязательно. Размер n-граммы, любое число от1до25. Значение по умолчанию —3.UInt8hashnum— Необязательно. Количество минимальных и максимальных хешей, используемых для вычисления результата, любое число от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— Строка, для которой вычисляется хеш.Stringngramsize— Необязательно. Размер n-граммы, любое число от1до25. Значение по умолчанию —3.UInt8hashnum— Необязательно. Количество минимальных и максимальных хешей, используемых для вычисления результата, любое число от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— Строка, для которой вычисляется хеш.Stringngramsize— Необязательно. Размер n-граммы, любое число от1до25. Значение по умолчанию —3.UInt8hashnum— Необязательно. Количество минимальных и максимальных хешей, используемых для вычисления результата, любое число от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— Строка, для которой вычисляется хеш.Stringngramsize— Необязательный. Размер n-граммы, любое число от1до25. Значение по умолчанию —3.UInt8hashnum— Необязательный. Количество минимальных и максимальных хешей, используемых для вычисления результата, любое число от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— Строка, для которой вычисляется хеш.Stringngramsize— Необязательный параметр. Размер n-граммы, любое число от1до25. Значение по умолчанию —3.UInt8hashnum— Необязательный параметр. Количество минимальных и максимальных хешей, используемых для вычисления результата; любое число от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с учетом регистра.Stringngramsize— Необязательный параметр. Размер 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для регистронезависимого поиска.Stringngramsize— Необязательный параметр. Размер n-граммы, любое число от1до25. Значение по умолчанию —3.UInt8
Возвращаемое значение
Примеры
Пример использования
SELECT ngramSimHashCaseInsensitive('ClickHouse') AS Hash;┌──────Hash─┐
│ 562180645 │
└───────────┘ngramSimHashCaseInsensitiveUTF8
Добавленный в: v21.1.0
Разбивает UTF-8-строку на n-граммы размером ngramsize символов и возвращает simhash n-грамм.
Выполняет регистронезависимый поиск.
Может использоваться для обнаружения частично дублирующихся строк с помощью bitHammingDistance. Чем меньше расстояние Хэмминга между вычисленными simhashes двух строк, тем выше вероятность, что эти строки совпадают.
Синтаксис
ngramSimHashCaseInsensitiveUTF8(string[, ngramsize])Аргументы
string— Строка, для которой вычисляется хеш.Stringngramsize— Необязательно. Размер 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— Строка, для которой вычисляется хеш.Stringngramsize— Необязательный параметр. Размер 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.
Функция интерпретирует все входные параметры как строки и вычисляет хеш-значение для каждого из них. Затем она объединяет хеш-значения, используя следующий алгоритм:
- Первое и второе хеш-значения объединяются в массив, для которого вычисляется хеш.
- Ранее вычисленное хеш-значение и хеш-значение третьего входного параметра хешируются аналогичным образом.
- Это вычисление повторяется для всех оставшихся хеш-значений исходных входных параметров.
Синтаксис
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— Строка, для которой вычисляется хеш.Stringshinglesize— Необязательно. Размер словесного шингла: любое число от1до25. Значение по умолчанию —3.UInt8hashnum— Необязательно. Количество минимальных и максимальных хешей, используемых для вычисления результата: любое число от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— Строка, для которой вычисляется хеш.Stringshinglesize— Необязательный параметр. Размер словесного шингла; любое число от1до25. Значение по умолчанию —3.UInt8hashnum— Необязательный параметр. Количество минимальных и максимальных хешей, используемых для вычисления результата; любое число от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— Строка, для которой вычисляется хеш.Stringshinglesize— Необязательно. Размер словесного шингла; любое число от1до25. Значение по умолчанию —3.UInt8hashnum— Необязательно. Количество минимальных и максимальных хешей, используемых для вычисления результата; любое число от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— Строка, для которой вычисляется хеш.Stringshinglesize— Необязательно. Размер словесного шингла, любое число от1до25. Значение по умолчанию —3.UInt8hashnum— Необязательно. Количество минимальных и максимальных хешей, используемых для вычисления результата, любое число от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— Строка, для которой вычисляется хеш.Stringshinglesize— Необязательный параметр. Размер словесного шингла: любое число от1до25. Значение по умолчанию —3.UInt8hashnum— Необязательный параметр. Количество минимальных и максимальных хешей, используемых для вычисления результата: любое число от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— Строка, для которой вычисляется хеш.Stringshinglesize— Необязательно. Размер словесного шингла, любое число от1до25. Значение по умолчанию —3.UInt8hashnum— Необязательно. Количество минимальных и максимальных хешей, используемых для вычисления результата; любое число от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— Строка, для которой вычисляется хеш.Stringshinglesize— Необязательный аргумент. Размер словесного шингла, любое число от1до25. Значение по умолчанию —3.UInt8hashnum— Необязательный аргумент. Количество минимальных и максимальных хешей, используемых для вычисления результата, любое число от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— Строка, для которой вычисляется хеш.Stringshinglesize— Необязательный аргумент. Размер словесного шингла; любое число от1до25. Значение по умолчанию —3.UInt8hashnum— Необязательный аргумент. Количество минимальных и максимальных хешей, используемых для вычисления результата; любое число от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— Строка, для которой вычисляется хеш.Stringshinglesize— Необязательный параметр. Размер словесного шингла; любое число от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— Строка, для которой вычисляется хеш.Stringshinglesize— Необязательный параметр. Размер словесного шингла, любое число от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— Строка, для которой вычисляется хеш.Stringshinglesize— Необязательный. Размер словесного шингла: любое число от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— Строка, для которой вычисляется хеш.Stringshinglesize— Необязательный параметр. Размер словесного шингла; любое число от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;12336419557878201794xxHash32
Добавленный в: 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')18009318874338624809xxh3_128
Добавленный в: v26.2.0
Вычисляет 128-битное хеш-значение XXH3.
Синтаксис
xxh3_128(expr)Аргументы
expr— Список выражений любого типа данных.Any
Возвращаемое значение
Возвращает вычисленное 128-битное хеш-значение xxh3 UInt128
Примеры
Пример использования
SELECT hex(xxh3_128('ClickHouse'))14C27B7BEF95D36FECF5520CA2DAF030