Хеш-функции
Хеш-функции могут использоваться для детерминированного псевдослучайного перемешивания элементов.
Simhash — это хеш-функция, которая возвращает близкие хеш-значения для близких (похожих) аргументов.
Большинство хеш-функций принимают любое количество аргументов любого типа.
Хеш 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
Возвращаемое значение
Возвращает хеш SHA512 для данной входной строки в виде строки фиксированной длины. 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. 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 для входного значения, используя тот же сид, что и 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
Примеры
Пример использования
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 для входного значения, используя тот же сид, что и 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) времени и пространства от Константина "Костика" Облакова.
Эффективен только при n <= 32768.
Синтаксис
Аргументы
Возвращаемое значение
Возвращает вычисленное хеш-значение. 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 символов и возвращает n-граммовый simhash.
Может быть использован для обнаружения полудублированных строк с помощью bitHammingDistance. Чем меньше расстояние Хэмминга между вычисленными simhash двух строк, тем более вероятно, что эти строки одинаковы.
Синтаксис
Аргументы
string— Строка, для которой вычисляется чувствительный к региструsimhash.Stringngramsize— Необязательный. Размер n-граммы, любое число от1до25. Значение по умолчанию —3.UInt8
Возвращаемое значение
Возвращает вычисленное хэш-значение входной строки. UInt64
Примеры
Пример использования
ngramSimHashCaseInsensitive
Введено в: v21.1
Разделяет строку ASCII на n-граммы размером ngramsize символов и возвращает n-граммовый simhash. Этот метод нечувствителен к регистру.
Может быть использован для обнаружения полудублированных строк с помощью bitHammingDistance. Чем меньше расстояние Хэмминга между вычисленными simhash двух строк, тем более вероятно, что эти строки одинаковы.
Синтаксис
Аргументы
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 символов и возвращает n-граммовый simhash. Этот метод чувствителен к регистру.
Может быть использован для обнаружения полудублированных строк с помощью 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 на части (шинглы) размером 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 на части (шинглы) размером shinglesize слов и возвращает simhash шингла. Этот метод нечувствителен к регистру.
Может быть использован для обнаружения полудублированных строк с помощью bitHammingDistance. Чем меньше расстояние Хэмминга между вычисленными simhash двух строк, тем более вероятно, что эти строки одинаковы.
Синтаксис
Аргументы
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
Примеры
Пример использования