Хеш-функции
Хеш-функции можно использовать для детерминированного псевдослучайного перемешивания элементов.
Simhash — это хеш-функция, которая возвращает близкие значения хеша для близких (похожих) аргументов.
Большинство хеш-функций принимают любое количество аргументов любых типов.
Хеш от NULL равен NULL. Чтобы получить хеш Nullable-столбца, отличный от NULL, оберните его в tuple:
Для вычисления хеша всего содержимого таблицы используйте 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
Возвращаемое значение
Возвращает SHA512-хеш переданной входной строки в виде строки фиксированной длины FixedString(64).
Примеры
Пример использования
SHA512_256
Появилось в версии: v1.1
Вычисляет хэш SHA512_256 для заданной строки.
Синтаксис
Аргументы
s— входная строка для хеширования.String
Возвращаемое значение
Возвращает хеш-значение SHA512_256 для указанной входной строки в виде строки фиксированной длины. FixedString(32)
Примеры
Пример использования
URLHash
Введена в: v1.1
Быстрая, достаточно качественная некриптографическая хеш‑функция для строки, полученной из URL с использованием некоторого вида нормализации.
Эта хеш‑функция имеет два режима:
| Mode | Description |
|---|---|
URLHash(url) | Вычисляет хеш из строки без одного из завершающих символов /, ? или # в конце, если такой символ присутствует. |
URLHash(url, N) | Вычисляет хеш из строки до N‑го уровня в иерархии URL, без одного из завершающих символов /, ? или # в конце, если такой символ присутствует. Уровни такие же, как в URLHierarchy. |
Синтаксис
Аргументы
Возвращаемое значение
Возвращает вычисленное хеш-значение 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.
Чем меньше расстояние Хэмминга между вычисленными simhash двух строк, тем выше вероятность, что эти строки совпадают.
Синтаксис
Аргументы
string— Строка, для которой нужно вычислить регистронезависимыйsimhash.Stringngramsize— Необязательный параметр. Размер n-граммы, любое число от1до25. Значение по умолчанию —3.UInt8
Возвращаемое значение
Примеры
Пример использования
ngramSimHashCaseInsensitiveUTF8
Появилась в версии: v21.1
Разбивает строку в кодировке UTF-8 на n-граммы из ngramsize символов и возвращает simhash этих n-грамм.
Функция нечувствительна к регистру.
Может использоваться для обнаружения почти совпадающих строк совместно с bitHammingDistance. Чем меньше расстояние Хэмминга между вычисленными значениями simhash двух строк, тем выше вероятность, что эти строки совпадают.
Синтаксис
Аргументы
string— Строка, для которой нужно вычислить хеш.Stringngramsize— Необязательный параметр. Размер n-граммы — число от1до25. Значение по умолчанию —3.UInt8
Возвращаемое значение
Возвращает вычисленное значение хеша. UInt64
Примеры
Пример использования
ngramSimHashUTF8
Добавлена в: v21.1
Разбивает строку в кодировке UTF-8 на n-граммы из ngramsize символов и возвращает simhash этих n-грамм.
Функция чувствительна к регистру.
Может использоваться для обнаружения частично дублирующихся строк совместно с bitHammingDistance.
Чем меньше расстояние Хэмминга между вычисленными значениями simhash двух строк, тем выше вероятность, что эти строки совпадают.
Синтаксис
Аргументы
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-строку на части (шинглы) по 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 на части (shingles), каждая содержит по shinglesize слов, и возвращает shingles с минимальными и максимальными хешами слов, вычисленными функцией 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-строку на части (шинглы) по shinglesize слов и возвращает simhash этих шинглов.
Функция регистронезависима.
Может использоваться для обнаружения частично дублирующихся строк с помощью bitHammingDistance.
Чем меньше расстояние Хэмминга вычисленных simhashes для двух строк, тем более вероятно, что эти строки совпадают.
Синтаксис
Аргументы
string— Строка, для которой нужно вычислить хэш.Stringshinglesize— Необязательный параметр. Размер шингла (последовательности слов), любое число от1до25. Значение по умолчанию —3.UInt8
Возвращаемое значение
Возвращает вычисленное значение хеша. UInt64
Примеры
Пример использования
wordShingleSimHashCaseInsensitiveUTF8
Введено в версии: v1.1
Разбивает строку в кодировке UTF-8 на части (шинглы) по shinglesize слов и возвращает simhash для словесного шингла.
Функция регистронезависима.
Может использоваться для обнаружения частичных дубликатов строк с помощью bitHammingDistance.
Чем меньше расстояние Хэмминга вычисленных simhash‑значений двух строк, тем выше вероятность, что эти строки совпадают.
Синтаксис
Аргументы
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
Примеры
Пример использования