Хеш-функции
Хеш-функции могут использоваться для детерминированного псевдослучайного перемешивания элементов.
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
— Строка, для которой необходимо вычислить хеш.String
ngramsize
— Необязательный. Размер n-граммы, любое число от1
до25
. Значение по умолчанию —3
.UInt8
hashnum
— Необязательный. Количество минимальных и максимальных хешей, используемых для вычисления результата, любое число от1
до25
. Значение по умолчанию —6
.UInt8
Возвращаемое значение
Возвращает кортеж из двух хешей — минимального и максимального. Tuple
Примеры
Пример использования
ngramMinHashArg
Введен в: v21.1
Разделяет ASCII строку на n-граммы размером ngramsize
символов и возвращает n-граммы с минимальными и максимальными хешами, вычисленными с помощью функции ngramMinHash
с теми же входными данными.
Учитывает регистр.
Синтаксис
Аргументы
string
— Строка, для которой необходимо вычислить хеш.String
ngramsize
— Необязательный. Размер n-граммы, любое число от1
до25
. Значение по умолчанию —3
.UInt8
hashnum
— Необязательный. Количество минимальных и максимальных хешей, используемых для вычисления результата, любое число от1
до25
. Значение по умолчанию —6
.UInt8
Возвращаемое значение
Возвращает кортеж из двух кортежей с hashnum
n-граммами каждый. Tuple(String)
Примеры
Пример использования
ngramMinHashArgCaseInsensitive
Введен в: v21.1
Разделяет ASCII строку на n-граммы размером ngramsize
символов и возвращает n-граммы с минимальными и максимальными хешами, вычисленными с помощью функции ngramMinHashCaseInsensitive
с теми же входными данными.
Игнорирует регистр.
Синтаксис
Аргументы
string
— Строка, для которой необходимо вычислить хеш.String
ngramsize
— Необязательный. Размер n-граммы, любое число от1
до25
. Значение по умолчанию —3
.UInt8
hashnum
— Необязательный. Количество минимальных и максимальных хешей, используемых для вычисления результата, любое число от1
до25
. Значение по умолчанию —6
.UInt8
Возвращаемое значение
Возвращает кортеж из двух кортежей с hashnum
n-граммами каждый. Tuple(Tuple(String))
Примеры
Пример использования
ngramMinHashArgCaseInsensitiveUTF8
Введен в: v21.1
Разделяет UTF-8 строку на n-граммы размером ngramsize
символов и возвращает n-граммы с минимальными и максимальными хешами, вычисленными с помощью функции ngramMinHashCaseInsensitiveUTF8 с теми же входными данными.
Игнорирует регистр.
Синтаксис
Аргументы
string
— Строка, для которой необходимо вычислить хеш.String
ngramsize
— Необязательный. Размер n-граммы, любое число от1
до25
. Значение по умолчанию —3
.UInt8
hashnum
— Необязательный. Количество минимальных и максимальных хешей, используемых для вычисления результата, любое число от1
до25
. Значение по умолчанию —6
.UInt8
Возвращаемое значение
Возвращает кортеж из двух кортежей с hashnum
n-граммами каждый. Tuple(Tuple(String))
Примеры
Пример использования
ngramMinHashArgUTF8
Введен в: v21.1
Разделяет UTF-8 строку на n-граммы размером ngramsize
символов и возвращает n-граммы с минимальными и максимальными хешами, вычисленными с помощью функции ngramMinHashUTF8
с теми же входными данными.
Учитывает регистр.
Синтаксис
Аргументы
string
— Строка, для которой необходимо вычислить хеш.String
ngramsize
— Необязательный. Размер n-граммы, любое число от1
до25
. Значение по умолчанию —3
.UInt8
hashnum
— Необязательный. Количество минимальных и максимальных хешей, используемых для вычисления результата, любое число от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
— Строка, для которой вычисляется хэш.String
ngramsize
— Необязательный. Размер n-граммы, любое число от1
до25
. Значение по умолчанию —3
.UInt8
hashnum
— Необязательный. Количество минимальных и максимальных хэшей, используемых для вычисления результата, любое число от1
до25
. Значение по умолчанию —6
.UInt8
Возвращаемое значение
Возвращает кортеж с двумя хэшами — минимальным и максимальным. Tuple
Примеры
Пример использования
ngramMinHashUTF8
Введено в: v21.1
Разделяет строку UTF-8 на n-граммы размером ngramsize
символов и вычисляет хэш-значения для каждой n-граммы, возвращая кортеж с этими хэшами. Использует hashnum
минимальных хэшей для вычисления минимального хэша и hashnum
максимальных хэшей для вычисления максимального хэша. Этот метод чувствителен к регистру.
Может быть использован для обнаружения полудублированных строк с помощью tupleHammingDistance
. Если хэши, возвращаемые для двух строк, одинаковы, то эти строки идентичны.
Синтаксис
Аргументы
string
— Строка, для которой вычисляется хэш.String
ngramsize
— Необязательный. Размер n-граммы, любое число от1
до25
. Значение по умолчанию —3
.UInt8
hashnum
— Необязательный. Количество минимальных и максимальных хэшей, используемых для вычисления результата, любое число от1
до25
. Значение по умолчанию —6
.UInt8
Возвращаемое значение
Возвращает кортеж с двумя хэшами — минимальным и максимальным. Tuple
Примеры
Пример использования
ngramSimHash
Введено в: v21.1
Разделяет строку ASCII на n-граммы размером ngramsize
символов и возвращает n-граммовый simhash
.
Может быть использован для обнаружения полудублированных строк с помощью bitHammingDistance
. Чем меньше расстояние Хэмминга между вычисленными simhash
двух строк, тем более вероятно, что эти строки одинаковы.
Синтаксис
Аргументы
string
— Строка, для которой вычисляется чувствительный к региструsimhash
.String
ngramsize
— Необязательный. Размер n-граммы, любое число от1
до25
. Значение по умолчанию —3
.UInt8
Возвращаемое значение
Возвращает вычисленное хэш-значение входной строки. UInt64
Примеры
Пример использования
ngramSimHashCaseInsensitive
Введено в: v21.1
Разделяет строку ASCII на n-граммы размером ngramsize
символов и возвращает n-граммовый simhash
. Этот метод нечувствителен к регистру.
Может быть использован для обнаружения полудублированных строк с помощью bitHammingDistance
. Чем меньше расстояние Хэмминга между вычисленными simhash
двух строк, тем более вероятно, что эти строки одинаковы.
Синтаксис
Аргументы
string
— Строка, для которой вычисляется нечувствительный к региструsimhash
.String
ngramsize
— Необязательный. Размер n-граммы, любое число от1
до25
. Значение по умолчанию —3
.UInt8
Возвращаемое значение
Примеры
Пример использования
ngramSimHashCaseInsensitiveUTF8
Введено в: v21.1
Разделяет строку UTF-8 на n-граммы размером ngramsize
символов и возвращает n-граммовый simhash
. Этот метод нечувствителен к регистру.
Может быть использован для обнаружения полудублированных строк с помощью bitHammingDistance. Чем меньше расстояние Хэмминга между вычисленными simhash
двух строк, тем более вероятно, что эти строки одинаковы.
Синтаксис
Аргументы
string
— Строка, для которой вычисляется хэш.String
ngramsize
— Необязательный. Размер n-граммы, любое число от1
до25
. Значение по умолчанию —3
.UInt8
Возвращаемое значение
Возвращает вычисленное хэш-значение. UInt64
Примеры
Пример использования
ngramSimHashUTF8
Введено в: v21.1
Разделяет закодированную в UTF-8 строку на n-граммы размером ngramsize
символов и возвращает n-граммовый simhash
. Этот метод чувствителен к регистру.
Может быть использован для обнаружения полудублированных строк с помощью bitHammingDistance
. Чем меньше расстояние Хэмминга между вычисленными simhash
двух строк, тем более вероятно, что эти строки одинаковы.
Синтаксис
Аргументы
string
— Строка, для которой вычисляется хэш.String
ngramsize
— Необязательный. Размер 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
— Строка, для которой вычисляется хэш.String
shinglesize
— Необязательный. Размер шингла, любое число от1
до25
. Значение по умолчанию —3
.UInt8
hashnum
— Необязательный. Количество минимальных и максимальных хэшей, используемых для вычисления результата, любое число от1
до25
. Значение по умолчанию —6
.UInt8
Возвращаемое значение
Возвращает кортеж с двумя хэшами — минимальным и максимальным. Tuple(UInt64, UInt64)
Примеры
Пример использования
wordShingleMinHashArg
Введено в: v1.1
Разделяет строку ASCII на части (шинглы) размером shinglesize
слов и возвращает шинглы с минимальными и максимальными хэшами слов, вычисленными с помощью функции wordShingleMinHash с теми же входными данными. Этот метод чувствителен к регистру.
Синтаксис
Аргументы
string
— Строка, для которой вычисляется хэш.String
shinglesize
— Необязательный. Размер шингла, любое число от1
до25
. Значение по умолчанию —3
.UInt8
hashnum
— Необязательный. Количество минимальных и максимальных хэшей, используемых для вычисления результата, любое число от1
до25
. Значение по умолчанию —6
.UInt8
Возвращаемое значение
Возвращает кортеж с двумя кортежами по hashnum
шинглов. Tuple(Tuple(String))
Примеры
Пример использования
wordShingleMinHashArgCaseInsensitive
Введено в: v21.1
Разделяет строку ASCII на части (шинглы) размером shinglesize
слов и возвращает шинглы с минимальными и максимальными хэшами слов, вычисленными с помощью функции wordShingleMinHashCaseInsensitive
с теми же входными данными. Этот метод нечувствителен к регистру.
Синтаксис
Аргументы
string
— Строка, для которой вычисляется хэш.String
shinglesize
— Необязательный. Размер шингла, любое число от1
до25
. Значение по умолчанию —3
.UInt8
hashnum
— Необязательный. Количество минимальных и максимальных хэшей, используемых для вычисления результата, любое число от1
до25
. Значение по умолчанию —6
.UInt8
Возвращаемое значение
Возвращает кортеж с двумя кортежами по hashnum
шинглов. Tuple(Tuple(String))
Примеры
Пример использования
wordShingleMinHashArgCaseInsensitiveUTF8
Введено в: v21.1
Разделяет строку UTF-8 на части (шинглы) размером shinglesize
слов и возвращает шинглы с минимальными и максимальными хэшами слов, вычисленными с помощью функции wordShingleMinHashCaseInsensitiveUTF8
с теми же входными данными. Этот метод нечувствителен к регистру.
Синтаксис
Аргументы
string
— Строка, для которой вычисляется хэш.String
shinglesize
— Необязательный. Размер шингла, любое число от1
до25
. Значение по умолчанию —3
.UInt8
hashnum
— Необязательный. Количество минимальных и максимальных хэшей, используемых для вычисления результата, любое число от1
до25
. Значение по умолчанию —6
.UInt8
Возвращаемое значение
Возвращает кортеж с двумя кортежами по hashnum
шинглов. Tuple(Tuple(String))
Примеры
Пример использования
wordShingleMinHashArgUTF8
Введено в: v21.1
Разделяет строку UTF-8 на части (шинглы) размером shinglesize
слов и возвращает шинглы с минимальными и максимальными хэшами слов, вычисленными с помощью функции wordShingleMinHashUTF8
с теми же входными данными. Этот метод чувствителен к регистру.
Синтаксис
Аргументы
string
— Строка, для которой вычисляется хэш.String
shinglesize
— Необязательный. Размер шингла, любое число от1
до25
. Значение по умолчанию —3
.UInt8
hashnum
— Необязательный. Количество минимальных и максимальных хэшей, используемых для вычисления результата, любое число от1
до25
. Значение по умолчанию —6
.UInt8
Возвращаемое значение
Возвращает кортеж с двумя кортежами по hashnum
шинглов. Tuple(Tuple(String))
Примеры
Пример использования
wordShingleMinHashCaseInsensitive
Введено в: v21.1
Разделяет строку ASCII на части (шинглы) размером shinglesize
слов, вычисляет хэш-значения для каждого шингла и возвращает кортеж с этими хэшами. Использует hashnum
минимальных хэшей для вычисления минимального хэша и hashnum
максимальных хэшей для вычисления максимального хэша. Этот метод нечувствителен к регистру.
Может быть использован для обнаружения полудублированных строк с помощью tupleHammingDistance
. Если хэши, возвращаемые для двух строк, одинаковы, то эти строки идентичны.
Синтаксис
Аргументы
string
— Строка, для которой вычисляется хэш.String
shinglesize
— Необязательный. Размер шингла, любое число от1
до25
. Значение по умолчанию —3
.UInt8
hashnum
— Необязательный. Количество минимальных и максимальных хэшей, используемых для вычисления результата, любое число от1
до25
. Значение по умолчанию —6
.UInt8
Возвращаемое значение
Возвращает кортеж с двумя хэшами — минимальным и максимальным. Tuple(UInt64, UInt64)
Примеры
Пример использования
wordShingleMinHashCaseInsensitiveUTF8
Введено в: v21.1
Разделяет строку UTF-8 на части (шинглы) размером shinglesize
слов, вычисляет хэш-значения для каждого шингла и возвращает кортеж с этими хэшами. Использует hashnum
минимальных хэшей для вычисления минимального хэша и hashnum
максимальных хэшей для вычисления максимального хэша. Этот метод нечувствителен к регистру.
Может быть использован для обнаружения полудублированных строк с помощью tupleHammingDistance
. Если хэши, возвращаемые для двух строк, одинаковы, то эти строки идентичны.
Синтаксис
Аргументы
string
— Строка, для которой вычисляется хэш.String
shinglesize
— Необязательный. Размер шингла, любое число от1
до25
. Значение по умолчанию —3
.UInt8
hashnum
— Необязательный. Количество минимальных и максимальных хэшей, используемых для вычисления результата, любое число от1
до25
. Значение по умолчанию —6
.UInt8
Возвращаемое значение
Возвращает кортеж с двумя хэшами — минимальным и максимальным. Tuple(UInt64, UInt64)
Примеры
Пример использования
wordShingleMinHashUTF8
Введено в: v21.1
Разделяет строку UTF-8 на части (шинглы) размером shinglesize
слов, вычисляет хэш-значения для каждого шингла и возвращает кортеж с этими хэшами. Использует hashnum
минимальных хэшей для вычисления минимального хэша и hashnum
максимальных хэшей для вычисления максимального хэша. Этот метод чувствителен к регистру.
Может быть использован для обнаружения полудублированных строк с помощью tupleHammingDistance
. Если хэши, возвращаемые для двух строк, одинаковы, то эти строки идентичны.
Синтаксис
Аргументы
string
— Строка, для которой вычисляется хэш.String
shinglesize
— Необязательный. Размер шингла, любое число от1
до25
. Значение по умолчанию —3
.UInt8
hashnum
— Необязательный. Количество минимальных и максимальных хэшей, используемых для вычисления результата, любое число от1
до25
. Значение по умолчанию —6
.UInt8
Возвращаемое значение
Возвращает кортеж с двумя хэшами — минимальным и максимальным. Tuple(UInt64, UInt64)
Примеры
Пример использования
wordShingleSimHash
Введено в: v21.1
Разделяет строку ASCII на части (шинглы) размером shinglesize
слов и возвращает simhash
шингла. Этот метод чувствителен к регистру.
Может быть использован для обнаружения полудублированных строк с помощью bitHammingDistance
. Чем меньше расстояние Хэмминга между вычисленными simhash
двух строк, тем более вероятно, что эти строки одинаковы.
Синтаксис
Аргументы
string
— Строка, для которой вычисляется хэш.String
shinglesize
— Необязательный. Размер шингла, любое число от1
до25
. Значение по умолчанию —3
.UInt8
Возвращаемое значение
Возвращает вычисленное хэш-значение. UInt64
Примеры
Пример использования
wordShingleSimHashCaseInsensitive
Введено в: v21.1
Разделяет строку ASCII на части (шинглы) размером shinglesize
слов и возвращает simhash
шингла. Этот метод нечувствителен к регистру.
Может быть использован для обнаружения полудублированных строк с помощью bitHammingDistance
. Чем меньше расстояние Хэмминга между вычисленными simhash
двух строк, тем более вероятно, что эти строки одинаковы.
Синтаксис
Аргументы
string
— Строка, для которой вычисляется хэш.String
shinglesize
— Необязательный. Размер шингла, любое число от1
до25
. Значение по умолчанию —3
.UInt8
Возвращаемое значение
Возвращает вычисленное хэш-значение. UInt64
Примеры
Пример использования
wordShingleSimHashCaseInsensitiveUTF8
Введено в: v1.1
Разделяет закодированную в UTF-8 строку на части (шинглы) размером shinglesize
слов и возвращает simhash
шингла. Этот метод нечувствителен к регистру.
Может быть использован для обнаружения полудублированных строк с помощью bitHammingDistance
. Чем меньше расстояние Хэмминга между вычисленными simhash
двух строк, тем более вероятно, что эти строки одинаковы.
Синтаксис
Аргументы
string
— Строка, для которой вычисляется хэш.String
shinglesize
— Необязательный. Размер шингла, любое число от1
до25
. Значение по умолчанию —3
.UInt8
Возвращаемое значение
Возвращает вычисленное хэш-значение. UInt64
Примеры
Пример использования
wordShingleSimHashUTF8
Введено в: v21.1
Разделяет строку UTF-8 на части (шинглы) размером shinglesize
слов и возвращает simhash
шингла. Этот метод чувствителен к регистру.
Может быть использован для обнаружения полудублированных строк с помощью bitHammingDistance
. Чем меньше расстояние Хэмминга между вычисленными simhash
двух строк, тем более вероятно, что эти строки одинаковы.
Синтаксис
Аргументы
string
— Строка, для которой вычисляется хэш.String
shinglesize
— Необязательный. Размер шингла, любое число от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
Примеры
Пример использования