Хеш-функции
Хеш-функции можно использовать для детерминированного псевдослучайного перемешивания элементов.
Simhash — это хеш-функция, которая возвращает близкие хеш-значения для близких (похожих) аргументов.
Большинство хеш-функций принимают любое количество аргументов любых типов.
Хеш от значения NULL равен NULL. Чтобы получить отличный от NULL хеш для столбца типа Nullable, оберните его в кортеж:
Чтобы вычислить хеш всего содержимого таблицы, используйте sum(cityHash64(tuple(*))) (или другую хеш‑функцию). tuple гарантирует, что строки со значениями NULL не будут пропущены. sum гарантирует, что порядок строк не имеет значения.
BLAKE3
Введена в версии v22.10
Вычисляет хеш-значение BLAKE3 и возвращает полученный набор байт в виде FixedString. Эта криптографическая хеш-функция интегрирована в ClickHouse с использованием библиотеки BLAKE3 на языке Rust. Функция достаточно быстрая и показывает приблизительно в два раза более высокую производительность по сравнению с SHA-2, при этом генерируя хеши той же длины, что и SHA-256. Она возвращает хеш BLAKE3 в виде массива байт с типом FixedString(32).
Синтаксис
Аргументы
message— входная строка для хэширования.String
Возвращаемое значение
Возвращает 32-байтовый хэш BLAKE3 от входной строки в виде строки фиксированной длины. FixedString(32)
Примеры
hash
MD4
Добавлена в версии v21.11
Вычисляет хеш MD4 для заданной строки.
Синтаксис
Аргументы
s— Входная строка для хеширования.String
Возвращаемое значение
Возвращает хеш-сумму MD4 заданной входной строки в виде строки фиксированной длины. FixedString(16)
Примеры
Пример использования
MD5
Добавлена в: v1.1
Вычисляет MD5‑хэш заданной строки.
Синтаксис
Аргументы
s— входная строка для хэширования.String
Возвращаемое значение
Возвращает значение хэша MD5 для заданной входной строки в виде строки фиксированной длины. FixedString(16)
Примеры
Пример использования
RIPEMD160
Добавлено в версии: v24.10
Вычисляет хеш RIPEMD-160 для заданной строки.
Синтаксис
Аргументы
s— входная строка для хеширования.String
Возвращаемое значение
Возвращает хеш RIPEMD160 заданной входной строки в виде строки фиксированной длины. FixedString(20)
Примеры
Пример использования
SHA1
Появилась в версии: v1.1
Вычисляет хэш SHA1 для указанной строки.
Синтаксис
Аргументы
s— входная строка для хешированияString
Возвращаемое значение
Возвращает SHA1-хеш заданной входной строки в виде строки фиксированной длины. FixedString(20)
Примеры
Пример использования
SHA224
Добавлено в версии: v1.1
Вычисляет SHA224-хэш для указанной строки.
Синтаксис
Аргументы
s— входное значение для хэширования.String
Возвращаемое значение
Возвращает хэш SHA224 для указанной входной строки в виде строки фиксированной длины. FixedString(28)
Примеры
Пример использования
SHA256
Впервые добавлена в версии: v1.1
Вычисляет хэш SHA256 для заданной строки.
Синтаксис
Аргументы
s— входная строка для хеширования.String
Возвращаемое значение
Возвращает хеш SHA256 для заданной входной строки в виде строки фиксированной длины. FixedString(32)
Примеры
Пример использования
SHA384
Появилась в версии: v1.1
Вычисляет хэш SHA384 для заданной строки.
Синтаксис
Аргументы
s— входная строка для хеширования.String
Возвращаемое значение
Возвращает SHA384-хеш заданной входной строки в виде строки фиксированной длины. FixedString(48)
Примеры
Пример использования
SHA512
Добавлена в версии v1.1
Вычисляет хэш SHA512 для заданной строки.
Синтаксис
Аргументы
s— входная строка для хешированияString
Возвращаемое значение
Возвращает хеш SHA-512 для заданной входной строки в виде строки фиксированной длины. FixedString(64)
Примеры
Пример использования
SHA512_256
Добавлена в: v1.1
Вычисляет хеш SHA512_256 для указанной строки.
Синтаксис
Аргументы
s— входная строка для хеширования.String
Возвращаемое значение
Возвращает хеш SHA512_256 заданной входной строки в виде строки фиксированной длины. FixedString(32)
Примеры
Пример использования
URLHash
Добавлено в: v1.1
Быстрая, достаточно качественная некриптографическая хеш-функция для строки, полученной из URL после некоторой нормализации.
У этой хеш-функции есть два режима:
| Режим | Описание |
|---|---|
URLHash(url) | Вычисляет хеш строки без одного из завершающих символов /, ? или # на конце, если он присутствует. |
URLHash(url, N) | Вычисляет хеш строки до уровня N в иерархии URL, без одного из завершающих символов /, ? или # на конце, если он присутствует. Уровни такие же, как в URLHierarchy. |
Синтаксис
Аргументы
url— URL-адрес для хеширования.StringN— необязательный параметр. Уровень в иерархии URL.(U)Int*
Возвращаемое значение
Возвращает вычисленное хеш-значение url. UInt64
Примеры
Пример использования
Хеш URL-адреса с заданным уровнем
cityHash64
Добавлена в версии: v1.1
Возвращает 64-битное хэш-значение CityHash.
Это быстрая некриптографическая хэш-функция. Для строковых параметров она использует алгоритм CityHash, а для параметров с другими типами данных — зависящую от реализации быструю некриптографическую хэш-функцию. Функция использует комбинатор CityHash для получения итогового результата.
Google изменил алгоритм CityHash после того, как он был добавлен в ClickHouse. Другими словами, cityHash64 в ClickHouse и исходная реализация CityHash от Google теперь выдают разные результаты. cityHash64 в ClickHouse соответствует CityHash v1.0.2.
Вычисленные хэш-значения могут совпадать для одинаковых входных значений разных типов аргументов.
Это касается, например, целочисленных типов разного размера, именованных и неименованных Tuple с одинаковыми данными, Map и соответствующего типа Array(Tuple(key, value)) с одинаковыми данными.
Синтаксис
Аргументы
arg1[, arg2, ...]— Произвольное число входных аргументов, для которых вычисляется хеш.Any
Возвращаемое значение
Возвращает вычисленный хеш входных аргументов. UInt64
Примеры
Пример вызова
Вычисление контрольной суммы всей таблицы с учётом порядка строк
farmFingerprint64
Появилась в версии: v20.12
Возвращает 64-битное значение FarmHash, используя метод Fingerprint64.
farmFingerprint64 предпочтительнее для получения стабильного и переносимого значения по сравнению с farmHash64.
Вычисленные значения хеша могут совпадать для одинаковых входных значений аргументов разных типов.
Это относится, например, к целочисленным типам разного размера, именованным и неименованным Tuple с одинаковыми данными, Map и соответствующему типу Array(Tuple(key, value)) с одинаковыми данными.
Синтаксис
Аргументы
arg1[, arg2, ...]— Переменное число входных аргументов, для которых вычисляется хеш.Any
Возвращаемое значение
Возвращает вычисленное значение хеша входных аргументов. UInt64
Примеры
Пример использования
farmHash64
Добавлена в: v1.1
Возвращает 64-битный FarmHash, используя метод Hash64.
Для получения стабильного и переносимого значения предпочтительно использовать farmFingerprint64.
Вычисленные значения хэша могут совпадать для одинаковых входных значений разных типов аргументов.
Это касается, например, целочисленных типов разного размера, именованного и неименованного Tuple с одинаковыми данными, Map и соответствующего типа Array(Tuple(key, value)) с одинаковыми данными.
Синтаксис
Аргументы
arg1[, arg2, ...]— Переменное число входных аргументов, для которых вычисляется хеш.Any
Возвращаемое значение
Возвращает вычисленное значение хеша входных аргументов. UInt64
Примеры
Пример использования
gccMurmurHash
Добавлена в версии v20.1
Вычисляет 64-битный хеш MurmurHash2 от входного значения, используя то же значение seed, что и в GCC.
Функция переносима между сборками Clang и GCC.
Синтаксис
Аргументы
arg1[, arg2, ...]— Переменное количество аргументов, для которых вычисляется хеш.Any
Возвращаемое значение
Возвращает вычисленное значение хеша входных аргументов. UInt64
Примеры
Пример использования
halfMD5
Добавлена в версии v1.1
Интерпретирует все входные параметры как строки и вычисляет для каждого из них значение хеша MD5. Затем объединяет хеши, берёт первые 8 байт хеша результирующей строки и интерпретирует их как UInt64 в порядке байт big-endian. Функция работает относительно медленно (5 миллионов коротких строк в секунду на одно ядро процессора).
Рекомендуется использовать вместо неё функцию sipHash64.
Функция принимает переменное число входных параметров. Аргументами могут быть любые поддерживаемые типы данных. Для некоторых типов данных вычисленное значение хеш-функции может совпадать для одинаковых значений даже при различии типов аргументов (целые числа разного размера, именованный и неименованный Tuple с одинаковыми данными, Map и соответствующий тип Array(Tuple(key, value)) с одинаковыми данными).
Синтаксис
Аргументы
arg1[, arg2, ..., argN]— Произвольное число аргументов, для которых вычисляется хэш.Any
Возвращаемое значение
Возвращает вычисленную половину MD5-хэша заданных входных параметров в виде значения типа UInt64 в порядке байт big-endian. UInt64
Примеры
Пример использования
hiveHash
Введена в: v20.1
Вычисляет «HiveHash» по строке.
Это просто JavaHash с обнулёнными знаковыми битами.
Эта функция используется в Apache Hive в версиях до 3.0.
Эта хеш‑функция имеет низкую производительность. Используйте её только в том случае, если этот алгоритм уже применяется в другой системе и вам нужно получить тот же результат.
Синтаксис
Аргументы
arg— входная строка, подлежащая хэшированию.String
Возвращаемое значение
Возвращает вычисленное значение хеша «hive hash» для входной строки. Int32
Примеры
Пример использования
icebergHash
Введено в: v25.5
Реализует логику хеширующего преобразования Iceberg
Синтаксис
Аргументы
value— исходное значение, для которого вычисляется хэш:IntegerилиBoolилиDecimalилиFloat*илиStringилиFixedStringилиUUIDилиDateилиTimeилиDateTime
Возвращаемое значение
Возвращает 32-битный хэш Murmur3, вариант x86, с seed = 0, типа Int32
Примеры
Пример
intHash32
Впервые представлена в версии: v1.1
Вычисляет 32-битный хеш от целого числа.
Эта хеш-функция относительно быстрая, но не является криптографической хеш-функцией.
Синтаксис
Аргументы
arg— целое число для хеширования.(U)Int*
Возвращаемое значение
Возвращает 32-битный хеш-код входного целого числа типа UInt32
Примеры
Пример использования
intHash64
Появилась в версии v1.1
Вычисляет 64-битный хеш целого числа.
Хеш-функция относительно быстрая (даже быстрее, чем intHash32), но не относится к криптографическим хеш-функциям.
Синтаксис
Аргументы
int— целое число для хеширования.(U)Int*
Возвращаемое значение
64-битный хеш-код. UInt64
Примеры
Пример использования
javaHash
Добавлено в версии v20.1
Вычисляет JavaHash для:
Эта хеш‑функция обладает низкой производительностью. Используйте её только в том случае, если этот алгоритм уже применяется в другой системе и вам нужно получить тот же результат.
Java поддерживает вычисление хеша только для знаковых целых чисел, поэтому, если требуется вычислить хеш беззнаковых целых чисел, их необходимо привести к соответствующим знаковым типам ClickHouse.
Синтаксис
Аргументы
arg— входное значение для хеширования.Any
Возвращаемое значение
Возвращает вычисленное хеш-значение arg Int32
Примеры
Пример использования 1
Пример использования 2
javaHashUTF16LE
Появилась в версии v20.1
Вычисляет хеш JavaHash из строки, предполагая, что она содержит байты строки в кодировке UTF-16LE.
Синтаксис
Аргументы
arg— строка в кодировке UTF-16LE.String
Возвращаемое значение
Возвращает вычисленное хэш-значение строки в кодировке UTF-16LE. Int32
Примеры
Пример использования
jumpConsistentHash
Добавлена в версии: v1.1
Вычисляет jump consistent hash для целого числа.
Синтаксис
Аргументы
Возвращаемое значение
Возвращает вычисленное хеш-значение. Int32
Примеры
Пример использования
kafkaMurmurHash
Добавлена в: v23.4
Вычисляет 32-битный хеш MurmurHash2 от входного значения, используя то же значение seed, что и в Kafka, и обнуляя старший бит, чтобы быть совместимой с Default Partitioner.
Синтаксис
Аргументы
arg1[, arg2, ...]— Переменное число параметров, для которых вычисляется хеш.Any
Возвращаемое значение
Возвращает рассчитанное значение хеша для входных аргументов. UInt32
Примеры
Пример использования
keccak256
Введена в версии: v25.4
Вычисляет криптографический хеш Keccak-256 для указанной строки. Эта хеш-функция широко используется в блокчейн-приложениях, в частности в Ethereum.
Синтаксис
Аргументы
message— Входная строка для хеширования.String
Возвращаемое значение
Возвращает 32-байтовый хеш Keccak-256 входной строки в виде строки фиксированной длины. FixedString(32)
Примеры
Пример использования
kostikConsistentHash
Впервые появился в: v22.6
Консистентный алгоритм хеширования с O(1) по времени и по памяти, разработанный Konstantin 'Kostik' Oblakov.
Эффективен только при n <= 32768.
Синтаксис
Псевдонимы: yandexConsistentHash
Аргументы
Возвращаемое значение
Возвращает вычисленное значение хеша. UInt16
Примеры
Пример использования
metroHash64
Добавлена в: v1.1
Возвращает 64-битное значение хеша MetroHash.
Вычисленные хеш-значения могут совпадать для одинаковых входных данных разных типов аргументов.
Это относится, например, к целочисленным типам разного размера, именованным и неименованным Tuple с одинаковыми данными, типам Map и соответствующему типу Array(Tuple(key, value)) с одинаковыми данными.
Синтаксис
Аргументы
arg1[, arg2, ...]— Произвольное число входных аргументов, для которых вычисляется хеш.Any
Возвращаемое значение
Возвращает вычисленный хеш входных аргументов. UInt64
Примеры
Пример использования
murmurHash2_32
Появилась в версии: v18.5
Вычисляет хэш входного значения с помощью алгоритма MurmurHash2.
Вычисленные значения хэша могут совпадать для одинаковых входных значений аргументов разных типов.
Это относится, например, к целочисленным типам разного размера, именованным и неименованным Tuple с одинаковыми данными, а также к Map и соответствующему типу Array(Tuple(key, value)) с одинаковыми данными.
Синтаксис
Аргументы
arg1[, arg2, ...]— Произвольное число входных аргументов, для которых вычисляется хэш.Any
Возвращаемое значение
Возвращает вычисленное хэш-значение входных аргументов. UInt32
Примеры
Пример использования
murmurHash2_64
Появилась в версии: v18.10
Вычисляет хеш MurmurHash2 для входного значения.
Вычисленные хеш-значения могут совпадать для одних и тех же входных значений разных типов аргументов.
Например, это касается целочисленных типов разного размера, именованных и неименованных Tuple с одинаковыми данными, а также Map и соответствующего типа Array(Tuple(key, value)) с одинаковыми данными.
Синтаксис
Аргументы
arg1[, arg2, ...]— Переменное количество входных аргументов, для которых вычисляется хеш.Any
Возвращаемое значение
Возвращает вычисленный хеш входных аргументов. UInt64
Примеры
Пример использования
murmurHash3_128
Добавлено в: v18.10
Вычисляет 128-битный хэш MurmurHash3 от входного значения.
Синтаксис
Аргументы
arg1[, arg2, ...]— переменное число входных аргументов, для которых вычисляется хеш.Any
Возвращаемое значение
Возвращает вычисленное 128-битное значение хеша MurmurHash3 для входных аргументов. FixedString(16)
Примеры
Пример использования
murmurHash3_32
Введена в версии v18.10
Возвращает хеш-значение MurmurHash3.
Вычисленные хеш-значения могут совпадать при одинаковых входных значениях для аргументов разных типов.
Это, например, относится к целочисленным типам разного размера, именованным и неименованным Tuple с одинаковыми данными, Map и соответствующему типу Array(Tuple(key, value)) с одинаковыми данными.
Синтаксис
Аргументы
arg1[, arg2, ...]— Произвольное количество входных аргументов, для которых вычисляется хеш.Any
Возвращаемое значение
Возвращает вычисленное значение хеша входных аргументов. UInt32
Примеры
Пример использования
murmurHash3_64
Введена в версии: v18.10
Вычисляет хеш MurmurHash3 от входного значения.
Вычисленные хеш-значения могут совпадать для одинаковых входных значений разных типов аргументов.
Это касается, например, целочисленных типов разного размера, именованных и неименованных Tuple с одинаковыми данными, Map и соответствующего типа Array(Tuple(key, value)) с одинаковыми данными.
Синтаксис
Аргументы
arg1[, arg2, ...]— Произвольное число входных аргументов, для которых вычисляется хеш.Any
Возвращаемое значение
Возвращает вычисленное значение хеша для входных аргументов. UInt64
Примеры
Пример использования
ngramMinHash
Введена в версии: v21.1
Разбивает ASCII-строку на n-граммы из ngramsize символов, вычисляет хеш-значения для каждой n-граммы и возвращает кортеж с этими хешами.
Использует hashnum минимальных хешей для вычисления минимального хеша и hashnum максимальных хешей для вычисления максимального хеша.
Чувствительна к регистру.
Может использоваться для обнаружения почти дублирующихся строк с помощью tupleHammingDistance.
Для двух строк, если возвращаемые хеши совпадают для обеих строк, то эти строки идентичны.
Синтаксис
Аргументы
string— Строка, для которой нужно вычислить хеш.Stringngramsize— Необязательный параметр. Размер n-граммы, целое число от1до25. Значение по умолчанию —3.UInt8hashnum— Необязательный параметр. Количество минимальных и максимальных хешей, используемых при вычислении результата, целое число от1до25. Значение по умолчанию —6.UInt8
Возвращаемое значение
Возвращает кортеж из двух хешей — минимального и максимального. Tuple
Примеры
Пример использования
ngramMinHashArg
Впервые представлен в версии: v21.1
Разбивает ASCII-строку на n-граммы из ngramsize символов и возвращает n-граммы с минимальным и максимальным хешами, вычисленными функцией ngramMinHash с теми же входными данными.
Чувствителен к регистру.
Синтаксис
Аргументы
string— Строка, для которой нужно вычислить хеш.Stringngramsize— Необязательный параметр. Размер n-граммы, любое число от1до25. Значение по умолчанию —3.UInt8hashnum— Необязательный параметр. Количество минимальных и максимальных хешей, используемых при вычислении результата, любое число от1до25. Значение по умолчанию —6.UInt8
Возвращаемое значение
Возвращает кортеж, состоящий из двух кортежей, в каждом — по hashnum n-грамм. Tuple(String)
Примеры
Пример использования
ngramMinHashArgCaseInsensitive
Введена в версии: v21.1
Разбивает ASCII-строку на n-граммы из ngramsize символов и возвращает n-граммы с минимальным и максимальным хешами, вычисленными функцией ngramMinHashCaseInsensitive с теми же входными данными.
Работает без учета регистра.
Синтаксис
Аргументы
string— Строка, для которой вычисляется хеш.Stringngramsize— Необязательный параметр. Размер n-граммы, любое число от1до25. Значение по умолчанию —3.UInt8hashnum— Необязательный параметр. Количество минимальных и максимальных хешей, используемых при вычислении результата, любое число от1до25. Значение по умолчанию —6.UInt8
Возвращаемое значение
Возвращает кортеж из двух кортежей, в каждом по hashnum n-грамм. Tuple(Tuple(String))
Примеры
Пример использования
ngramMinHashArgCaseInsensitiveUTF8
Добавлена в: v21.1
Разбивает строку в кодировке UTF-8 на n-граммы длиной ngramsize символов и возвращает n-граммы с минимальным и максимальным хешами, вычисленными функцией ngramMinHashCaseInsensitiveUTF8 с теми же входными данными.
Функция нечувствительна к регистру.
Синтаксис
Аргументы
string— Строка, для которой вычисляется хеш.Stringngramsize— Необязательный параметр. Размер n-граммы, любое число от1до25. Значение по умолчанию —3.UInt8hashnum— Необязательный параметр. Количество минимальных и максимальных хешей, используемых для вычисления результата, любое число от1до25. Значение по умолчанию —6.UInt8
Возвращаемое значение
Возвращает кортеж из двух кортежей, каждый с hashnum n-граммами. Tuple(Tuple(String))
Примеры
Пример использования
ngramMinHashArgUTF8
Добавлена в: v21.1
Разбивает строку в кодировке UTF-8 на n-граммы из ngramsize символов и возвращает n-граммы с минимальным и максимальным хэшами, вычисленными функцией ngramMinHashUTF8 с теми же входными данными.
Функция чувствительна к регистру.
Синтаксис
Аргументы
string— Строка, для которой вычисляется хеш.Stringngramsize— Необязательный параметр. Размер n-граммы, любое число от1до25. Значение по умолчанию —3.UInt8hashnum— Необязательный параметр. Количество минимальных и максимальных хешей, используемых для вычисления результата, любое число от1до25. Значение по умолчанию —6.UInt8
Возвращаемое значение
Возвращает кортеж из двух кортежей, в каждом по hashnum n-грамм. Tuple(Tuple(String))
Примеры
Пример использования
ngramMinHashCaseInsensitive
Введена в версии v21.1
Разбивает ASCII-строку на n-граммы из ngramsize символов, вычисляет хэш-значения для каждой n-граммы и возвращает кортеж с этими хэшами.
Использует hashnum минимальных хэшей для вычисления минимального хэша и hashnum максимальных хэшей для вычисления максимального хэша.
Функция нечувствительна к регистру.
Может использоваться для обнаружения почти дублирующихся строк с помощью tupleHammingDistance.
Для двух строк, если возвращённые хэши совпадают для обеих строк, то строки считаются одинаковыми.
Синтаксис
Аргументы
string— строка. String. -ngramsize— размер n-граммы. Необязательный параметр. Возможные значения: любое число от1до25. Значение по умолчанию:3. UInt8. -hashnum— количество минимальных и максимальных хешей, используемых для вычисления результата. Необязательный параметр. Возможные значения: любое число от1до25. Значение по умолчанию:6. UInt8.
Возвращаемое значение
Кортеж из двух хешей — минимального и максимального. Tuple(UInt64, UInt64). Tuple
Примеры
Пример использования
ngramMinHashCaseInsensitiveUTF8
Введена в версии v21.1
Разбивает строку в кодировке UTF-8 на n-граммы по ngramsize символов, вычисляет хеш-значения для каждой n-граммы и возвращает кортеж с этими хешами.
Использует hashnum минимальных хешей для вычисления минимального хеша и hashnum максимальных хешей для вычисления максимального хеша.
Не учитывает регистр символов.
Может использоваться для обнаружения частично дублирующихся строк с помощью tupleHammingDistance.
Если для двух строк возвращаемые хеши совпадают, эти строки считаются одинаковыми.
Синтаксис
Аргументы
string— Строка, для которой нужно вычислить хеш.Stringngramsize— Необязательный параметр. Размер n-граммы, любое число от1до25. Значение по умолчанию —3.UInt8hashnum— Необязательный параметр. Количество минимальных и максимальных хешей, используемых при вычислении результата, любое число от1до25. Значение по умолчанию —6.UInt8
Возвращаемое значение
Возвращает кортеж из двух хешей — минимального и максимального. Tuple
Примеры
Пример использования
ngramMinHashUTF8
Введена в версии: v21.1
Разбивает строку в кодировке UTF-8 на n-граммы длиной ngramsize символов, вычисляет хеш-значения для каждой n-граммы и возвращает кортеж с этими хешами.
Использует hashnum минимальных хешей для вычисления минимального хеша и hashnum максимальных хешей для вычисления максимального хеша.
Функция чувствительна к регистру.
Может использоваться для обнаружения частично дублирующихся строк с помощью tupleHammingDistance.
Для двух строк, если возвращаемые хеши для обеих строк совпадают, то эти строки совпадают.
Синтаксис
Аргументы
string— Строка, для которой вычисляется хэш.Stringngramsize— Необязательный параметр. Размер n-граммы, любое число от1до25. Значение по умолчанию —3.UInt8hashnum— Необязательный параметр. Количество хэшей (минимальных и максимальных), используемых для вычисления результата, любое число от1до25. Значение по умолчанию —6.UInt8
Возвращаемое значение
Возвращает кортеж из двух хэшей — минимального и максимального. Tuple
Примеры
Пример использования
ngramSimHash
Появилась в версии: v21.1
Разбивает ASCII-строку на n-граммы длиной ngramsize символов и возвращает значение simhash для этих n-грамм.
Может использоваться для обнаружения частичных дубликатов строк с помощью bitHammingDistance.
Чем меньше расстояние Хэмминга между значениями simhash, вычисленными для двух строк, тем выше вероятность, что эти строки совпадают.
Синтаксис
Аргументы
string— Строка, для которой вычисляется регистрозависимыйsimhash.Stringngramsize— Необязательный параметр. Размер n-граммы, любое число от1до25. Значение по умолчанию —3.UInt8
Возвращаемое значение
Возвращает вычисленный хеш входной строки. UInt64
Примеры
Пример использования
ngramSimHashCaseInsensitive
Добавлена в версии: v21.1
Разбивает ASCII-строку на n-граммы из ngramsize символов и возвращает simhash этих n-грамм.
Функция нечувствительна к регистру.
Может использоваться для обнаружения почти дублирующихся строк совместно с bitHammingDistance.
Чем меньше расстояние Хэмминга между вычисленными simhashes двух строк, тем выше вероятность, что эти строки совпадают.
Синтаксис
Аргументы
string— Строка, для которой вычисляется регистронезависимыйsimhash.Stringngramsize— Необязательный аргумент. Размер n-граммы, любое число от1до25. Значение по умолчанию —3.UInt8
Возвращаемое значение
Примеры
Пример использования
ngramSimHashCaseInsensitiveUTF8
Введена в: v21.1
Разбивает строку в кодировке UTF-8 на n-граммы из ngramsize символов и возвращает n-граммный simhash.
Функция нечувствительна к регистру.
Может использоваться для обнаружения почти дублирующихся строк с помощью bitHammingDistance. Чем меньше расстояние Хэмминга вычисленных simhash для двух строк, тем выше вероятность, что эти строки совпадают.
Синтаксис
Аргументы
string— Строка, для которой вычисляется хеш.Stringngramsize— Необязательный параметр. Размер n-граммы, любое число в диапазоне от1до25. Значение по умолчанию —3.UInt8
Возвращаемое значение
Возвращает вычисленное значение хеша. UInt64
Примеры
Пример использования
ngramSimHashUTF8
Появилась в версии: v21.1
Разбивает строку в кодировке UTF-8 на n-граммы по ngramsize символов и возвращает simhash для этих n-грамм.
Функция чувствительна к регистру.
Может использоваться для обнаружения частично дублирующихся строк вместе с bitHammingDistance.
Чем меньше расстояние Хэмминга между вычисленными simhashes двух строк, тем выше вероятность, что эти строки одинаковы.
Синтаксис
Аргументы
string— Строка, для которой нужно вычислить хэш.Stringngramsize— Необязательный параметр. Размер n-граммы, целое число от1до25. Значение по умолчанию —3.UInt8
Возвращаемое значение
Возвращает вычисленный хэш. UInt64
Примеры
Пример использования
sipHash128
Добавлена в: v1.1
Аналог sipHash64, но возвращает 128-битное хеш-значение, т.е. финальное состояние после xor-свёртки рассчитывается до 128 бит.
Этот 128-битный вариант отличается от эталонной реализации и является более слабым.
Эта версия существует потому, что на момент её разработки не было официального 128-битного расширения для SipHash.
Для новых проектов рекомендуется использовать sipHash128Reference.
Синтаксис
Аргументы
arg1[, arg2, ...]— Переменное число входных аргументов, для которых нужно вычислить хеш.Any
Возвращаемое значение
Возвращает 128-битное значение хеша SipHash. FixedString(16)
Примеры
Пример использования
sipHash128Keyed
Появилась в версии: v23.2
То же, что и sipHash128, но дополнительно принимает явный аргумент ключа вместо использования фиксированного ключа.
Этот 128-битный вариант отличается от эталонной реализации и является более слабым.
Эта версия существует потому, что на момент её создания не было официального 128-битного расширения для SipHash.
В новых проектах, вероятно, следует использовать sipHash128ReferenceKeyed.
Синтаксис
Аргументы
(k0, k1)— кортеж из двух значений типа UInt64, представляющих ключ.Tuple(UInt64, UInt64)arg1[, arg2, ...]— произвольное число входных аргументов, для которых вычисляется хэш.Any
Возвращаемое значение
128-битное хэш-значение SipHash типа FixedString(16). FixedString(16)
Примеры
Пример использования
sipHash128Reference
Появилась в версии: v23.2
Аналог sipHash128, но реализует 128-битный алгоритм, предложенный оригинальными авторами SipHash.
Синтаксис
Аргументы
arg1[, arg2, ...]— Переменное число входных аргументов, для которых вычисляется хеш.Any
Возвращаемое значение
Возвращает вычисленное 128-битное значение хеша SipHash для входных аргументов. FixedString(16)
Примеры
Пример использования
sipHash128ReferenceKeyed
Добавлено в: v23.2
Аналог sipHash128Reference, но вместо фиксированного ключа принимает явный ключ в качестве аргумента.
Синтаксис
Аргументы
(k0, k1)— кортеж из двух значений, задающий ключTuple(UInt64, UInt64)arg1[, arg2, ...]— переменное число входных аргументов, для которых вычисляется хеш.Any
Возвращаемое значение
Возвращает вычисленное 128-битное значение хеша SipHash для входных аргументов. FixedString(16)
Примеры
Пример использования
sipHash64
Введена в версии v1.1
Возвращает 64-битное хэш-значение SipHash.
Это криптографическая хэш-функция. Работает как минимум в три раза быстрее, чем хэш-функция MD5.
Функция интерпретирует все входные параметры как строки и вычисляет хэш-значение для каждого из них. Затем она комбинирует хэши с использованием следующего алгоритма:
- Первое и второе хэш-значения объединяются в массив, который затем хэшируется.
- Ранее вычисленное хэш-значение и хэш третьего входного параметра хэшируются аналогичным образом.
- Это вычисление повторяется для всех оставшихся хэш-значений исходных аргументов.
Вычисленные хэш-значения могут совпадать для одинаковых входных значений аргументов разных типов.
Это влияет, например, на целочисленные типы разного размера, именованный и неименованный Tuple с одинаковыми данными, Map и соответствующий тип Array(Tuple(key, value)) с одинаковыми данными.
Синтаксис
Аргументы
arg1[, arg2, ...]— Переменное количество входных аргументов.Any
Возвращаемое значение
Возвращает вычисленное хеш-значение входных аргументов. UInt64
Примеры
Пример использования
sipHash64Keyed
Введена в версии v23.2
Аналог функции sipHash64, но принимает дополнительный явный аргумент ключа вместо использования фиксированного ключа.
Синтаксис
Аргументы
(k0, k1)— кортеж из двух значений, представляющий ключ.Tuple(UInt64, UInt64)arg1[,arg2, ...]— произвольное число входных аргументов.Any
Возвращаемое значение
Возвращает вычисленный хэш от входных значений. UInt64
Примеры
Пример использования
wordShingleMinHash
Впервые появилась в: v21.1
Разбивает ASCII-строку на части (shingles) по shinglesize слов, вычисляет хэш-значения для каждого такого шингла и возвращает кортеж с этими хэшами.
Использует hashnum минимальных хэшей для вычисления минимального хэша и hashnum максимальных хэшей для вычисления максимального хэша.
Чувствительна к регистру.
Может использоваться для обнаружения частично дублирующихся строк с помощью tupleHammingDistance.
Для двух строк, если возвращаемые хэши совпадают для обеих строк, то эти строки идентичны.
Синтаксис
Аргументы
string— Строка, для которой вычисляется хеш.Stringshinglesize— Необязательный параметр. Размер шингла по словам, любое число от1до25. Значение по умолчанию —3.UInt8hashnum— Необязательный параметр. Количество хешей для минимума и максимума, используемых при вычислении результата, любое число от1до25. Значение по умолчанию —6.UInt8
Возвращаемое значение
Возвращает кортеж из двух хешей — минимального и максимального. Tuple(UInt64, UInt64)
Примеры
Пример использования
wordShingleMinHashArg
Введена в версии: v1.1
Разбивает строку в кодировке ASCII на части (шинглы) по shinglesize слов в каждом и возвращает шинглы с минимальными и максимальными хешами слов, вычисленными функцией wordShingleMinHash с теми же входными данными.
Функция чувствительна к регистру.
Синтаксис
Аргументы
string— Строка, для которой вычисляется хеш.Stringshinglesize— Необязательный параметр. Размер шингла слов, любое число от1до25. Значение по умолчанию —3.UInt8hashnum— Необязательный параметр. Количество минимальных и максимальных хешей, используемых при вычислении результата, любое число от1до25. Значение по умолчанию —6.UInt8
Возвращаемое значение
Возвращает кортеж из двух кортежей, каждый из которых содержит по hashnum шинглов слов. Tuple(Tuple(String))
Примеры
Пример использования
wordShingleMinHashArgCaseInsensitive
Добавлена в версии: v21.1
Разбивает строку в кодировке ASCII на части (шинглы) по shinglesize слов в каждом и возвращает шинглы с минимальными и максимальными хешами слов, вычисленными функцией wordShingleMinHashCaseInsensitive для тех же входных данных.
Функция регистронезависима.
Синтаксис
Аргументы
string— Строка, для которой вычисляется хеш.Stringshinglesize— Необязательный параметр. Размер словесного шингла, целое число от1до25. Значение по умолчанию —3.UInt8hashnum— Необязательный параметр. Количество минимальных и максимальных хешей, используемых для вычисления результата, целое число от1до25. Значение по умолчанию —6.UInt8
Возвращаемое значение
Возвращает кортеж из двух кортежей, в каждом — по hashnum словесных шинглов. Tuple(Tuple(String))
Примеры
Пример использования
wordShingleMinHashArgCaseInsensitiveUTF8
Впервые представлена в: v21.1
Разбивает строку в кодировке UTF-8 на части (шинглы) по shinglesize слов каждая и возвращает шинглы с минимальным и максимальным хешами слов, вычисленными функцией wordShingleMinHashCaseInsensitiveUTF8 с теми же входными данными.
Функция регистронезависимая.
Синтаксис
Аргументы
string— Строка, для которой нужно вычислить хеш.Stringshinglesize— Необязательный параметр. Размер шингла по словам, любое число от1до25. Значение по умолчанию —3.UInt8hashnum— Необязательный параметр. Количество минимальных и максимальных хеш-значений, используемых для вычисления результата, любое число от1до25. Значение по умолчанию —6.UInt8
Возвращаемое значение
Возвращает кортеж из двух кортежей, каждый из которых содержит по hashnum шинглов по словам. Tuple(Tuple(String))
Примеры
Пример использования
wordShingleMinHashArgUTF8
Впервые появилась в версии: v21.1
Разбивает строку в кодировке UTF-8 на части (шинглы), каждый из которых содержит по shinglesize слов, и возвращает шинглы с минимальным и максимальным хэшами слов, вычисленными функцией wordShingleMinHashUTF8 с теми же входными данными.
Функция чувствительна к регистру.
Синтаксис
Аргументы
string— Строка, для которой вычисляется хеш.Stringshinglesize— Необязательный параметр. Размер шингла слов, любое число от1до25. Значение по умолчанию —3.UInt8hashnum— Необязательный параметр. Количество минимальных и максимальных хешей, используемых для вычисления результата, любое число от1до25. Значение по умолчанию —6.UInt8
Возвращаемое значение
Возвращает кортеж из двух кортежей, каждый из которых содержит по hashnum шинглов слов. Tuple(Tuple(String))
Примеры
Пример использования
wordShingleMinHashCaseInsensitive
Добавлена в версии: v21.1
Разбивает ASCII-строку на части (шинглы) по shinglesize слов, вычисляет хеш-значения для каждого шингла и возвращает кортеж этих хешей.
Использует hashnum минимальных значений хеша для вычисления минимального хеша и hashnum максимальных значений хеша для вычисления максимального хеша.
Нечувствительна к регистру.
Может использоваться для обнаружения частично дублирующихся строк с помощью tupleHammingDistance.
Для двух строк, если возвращаемые хеши совпадают для обеих строк, то строки считаются одинаковыми.
Синтаксис
Аргументы
string— Строка, для которой нужно вычислить хэш.Stringshinglesize— Необязательный параметр. Размер словесного шингла, любое число от1до25. Значение по умолчанию —3.UInt8hashnum— Необязательный параметр. Количество минимальных и максимальных хэшей, используемых для вычисления результата, любое число от1до25. Значение по умолчанию —6.UInt8
Возвращаемое значение
Возвращает кортеж из двух хэшей — минимального и максимального. Tuple(UInt64, UInt64)
Примеры
Пример использования
wordShingleMinHashCaseInsensitiveUTF8
Добавлена в версии: v21.1
Разбивает строку в кодировке UTF-8 на части (шинглы), состоящие из shinglesize слов, вычисляет хэш-значения для каждого шингла и возвращает кортеж с этими хэшами.
Использует hashnum минимальных хэшей для вычисления минимального хэша и hashnum максимальных хэшей для вычисления максимального хэша.
Нечувствительна к регистру.
Может использоваться для обнаружения частично дублирующихся строк с помощью tupleHammingDistance.
Для двух строк, если возвращаемые хэши совпадают для обеих, то эти строки считаются одинаковыми.
Синтаксис
Аргументы
string— Строка, для которой вычисляется хеш.Stringshinglesize— Необязательный параметр. Размер шингла (количества слов), любое число от1до25. Значение по умолчанию —3.UInt8hashnum— Необязательный параметр. Количество минимальных и максимальных хешей, используемых для вычисления результата, любое число от1до25. Значение по умолчанию —6.UInt8
Возвращаемое значение
Возвращает кортеж из двух хешей — минимального и максимального. Tuple(UInt64, UInt64)
Примеры
Пример использования
wordShingleMinHashUTF8
Введена в: v21.1
Разбивает строку UTF-8 на части (шинглы) по shinglesize слов, вычисляет хеш-значения для каждого словесного шингла и возвращает кортеж с этими хешами.
Использует hashnum минимальных хешей для вычисления минимального хеша и hashnum максимальных хешей для вычисления максимального хеша.
Учитывает регистр.
Может использоваться для обнаружения почти дублирующихся строк с помощью tupleHammingDistance.
Для двух строк, если возвращаемые хеши совпадают для обеих строк, то эти строки одинаковы.
Синтаксис
Аргументы
string— Строка, для которой вычисляется хэш.Stringshinglesize— Необязательный параметр. Размер шингла слов, любое целое число от1до25. Значение по умолчанию —3.UInt8hashnum— Необязательный параметр. Количество минимальных и максимальных хэшей, используемых для вычисления результата, любое целое число от1до25. Значение по умолчанию —6.UInt8
Возвращаемое значение
Возвращает кортеж из двух хэшей — минимального и максимального. Tuple(UInt64, UInt64)
Примеры
Пример использования
wordShingleSimHash
Введена в версии v21.1
Разбивает строку ASCII на части (шинглы) по shinglesize слов и возвращает simhash шингла.
Чувствительна к регистру.
Может использоваться для обнаружения почти дублирующихся строк с помощью bitHammingDistance.
Чем меньше расстояние Хэмминга вычисленных simhash для двух строк, тем выше вероятность, что эти строки совпадают.
Синтаксис
Аргументы
string— Строка, для которой нужно вычислить хеш.Stringshinglesize— Необязательный параметр. Размер словесного шингла, любое число от1до25. Значение по умолчанию —3.UInt8
Возвращаемое значение
Возвращает вычисленное значение хеша. UInt64
Примеры
Пример использования
wordShingleSimHashCaseInsensitive
Введена в: v21.1
Разбивает ASCII-строку на части (shingles) по shinglesize слов и возвращает simhash для этих шинглов.
Функция регистронезависима.
Может использоваться для обнаружения частично дублирующихся строк с bitHammingDistance.
Чем меньше расстояние Хэмминга вычисленных simhashes двух строк, тем выше вероятность, что эти строки совпадают.
Синтаксис
Аргументы
string— Строка, для которой вычисляется хеш‑значение.Stringshinglesize— Необязательный параметр. Длина словесного шингла, любое число от1до25. Значение по умолчанию —3.UInt8
Возвращаемое значение
Возвращает вычисленное хеш‑значение. UInt64
Примеры
Пример использования
wordShingleSimHashCaseInsensitiveUTF8
Впервые представлен в: v1.1
Разбивает строку в кодировке UTF-8 на части (шинглы) по shinglesize слов и возвращает simhash словесных шинглов.
Функция регистронезависима.
Может использоваться для обнаружения частичных дубликатов строк с помощью bitHammingDistance.
Чем меньше расстояние Хэмминга вычисленных simhashes двух строк, тем более вероятно, что эти строки совпадают.
Синтаксис
Аргументы
string— Строка, для которой рассчитывается хэш.Stringshinglesize— Необязательный параметр. Размер шингла (последовательности слов), целое число от1до25. Значение по умолчанию —3.UInt8
Возвращаемое значение
Возвращает вычисленное значение хэша. UInt64
Примеры
Пример использования
wordShingleSimHashUTF8
Впервые появилась в версии v21.1
Разбивает строку в кодировке UTF-8 на части (шинглы) длиной shinglesize слов и возвращает simhash этих словесных шинглов.
Функция чувствительна к регистру.
Может использоваться для обнаружения частичных дубликатов строк с помощью bitHammingDistance.
Чем меньше расстояние Хэмминга между вычисленными значениями simhash для двух строк, тем более вероятно, что эти строки совпадают.
Синтаксис
Аргументы
string— Строка, для которой вычисляется хеш.Stringshinglesize— Необязательный параметр. Размер шингла слов, любое число от1до25. Значение по умолчанию —3.UInt8
Возвращаемое значение
Возвращает вычисленное значение хеша. UInt64
Примеры
Пример использования
wyHash64
Введена в версии: v22.7
Вычисляет 64-битное значение хеша wyHash64.
Синтаксис
Аргументы
arg— строковый аргумент, для которого нужно вычислить хеш.String
Возвращаемое значение
Возвращает вычисленное 64-битное значение хеша UInt64
Примеры
Пример использования
xxHash32
Добавлена в версии: v20.1
Вычисляет значение хеш-функции xxHash для строки.
Для 64-битного варианта см. xxHash64.
Синтаксис
Аргументы
arg— входная строка для хеширования.String
Возвращаемое значение
Возвращает вычисленный 32-битный хеш входной строки. UInt32
Примеры
Пример использования
xxHash64
Появилась в версии v20.1
Вычисляет хеш-сумму xxHash для строки.
Для 32-битной версии см. xxHash32
Синтаксис
Аргументы
arg— входная строка для хеширования.String
Возвращаемое значение
Возвращает 64-битный хеш, вычисленный из входной строки. UInt64
Примеры
Пример использования
xxh3
Добавлена в: v22.12
Вычисляет 64-битный хеш по алгоритму XXH3.
Синтаксис
Аргументы
expr— список выражений произвольного типа данных.Any
Возвращаемое значение
Возвращает вычисленное 64-битное значение хеша xxh3 типа UInt64
Примеры
Пример использования