hash-functions
description: 'Документация для Хеш-функций' sidebar_label: 'Хеш' sidebar_position: 85 slug: /sql-reference/functions/hash-functions title: 'Хеш-функции'
Функция относительно медленная (5 миллионов коротких строк в секунду на один процессорный ядро). Рассмотрите возможность использования функции sipHash64.
Аргументы
Функция принимает переменное количество входных параметров. Аргументы могут быть любого из поддерживаемых типов данных. Для некоторых типов данных вычисляемое значение хеш-функции может быть одинаковым для одинаковых значений, даже если типы аргументов различаются (целые числа различного размера, именованный и безымянный Tuple
с одни и теми же данными, Map
и соответствующий тип Array(Tuple(key, value))
с одними и теми же данными).
Возвращаемое значение
Хеш-значение типа UInt64.
Пример
MD4
Вычисляет MD4 из строки и возвращает результирующий набор байтов как FixedString(16).
MD5
Вычисляет MD5 из строки и возвращает результирующий набор байтов как FixedString(16). Если вам не нужен MD5 в частности, но вам нужен приличный криптографический 128-битный хеш, используйте функцию 'sipHash128'. Если вы хотите получить тот же результат, что выводит утилита md5sum, используйте lower(hex(MD5(s))).
RIPEMD160
Производит хеш-значение RIPEMD-160.
Синтаксис
Параметры
input
: Входная строка. String
Возвращаемое значение
- 160-битное хеш-значение
RIPEMD-160
типа FixedString(20).
Пример
Используйте функцию hex, чтобы представить результат как строку в шестнадцатеричном формате.
Запрос:
sipHash64
Производит 64-битное хеш-значение SipHash.
Это криптографическая хеш-функция. Она работает как минимум в три раза быстрее, чем функция хеширования MD5.
Функция интерпретирует все входные параметры как строки и вычисляет хеш-значение для каждого из них. Затем она комбинирует хеши следующим образом:
- Первое и второе хеш-значение конкатенируются в массив, который хешируется.
- Предыдущее вычисленное хеш-значение и хеш третьего входного параметра хешируются аналогично.
- Это вычисление повторяется для всех оставшихся хеш-значений оригинального входа.
Аргументы
Функция принимает переменное количество входных параметров любого из поддерживаемых типов данных.
Возвращаемое значение
Хеш-значение типа UInt64.
Обратите внимание, что вычисленные хеш-значения могут быть равны для одних и тех же входных значений различных типов аргументов. Это затрагивает, например, целые числа различного размера, именованный и безымянный Tuple
с одними и теми же данными, а также Map
и соответствующий тип Array(Tuple(key, value))
с одними и теми же данными.
Пример
sipHash64Keyed
Так же как и sipHash64, но дополнительно принимает явный аргумент ключа вместо использования фиксированного ключа.
Синтаксис
Аргументы
Также как и sipHash64, но первый аргумент — это кортеж из двух значений UInt64, представляющих ключ.
Возвращаемое значение
Хеш-значение типа UInt64.
Пример
Запрос:
sipHash128
Как sipHash64, но производит 128-битное хеш-значение, т.е. конечное состояние xor-свёртки выполняется до 128 бит.
Этот 128-битный вариант отличается от эталонной реализации и является слабее. Эта версия существует потому, что, когда она была написана, не было официального 128-битного расширения для SipHash. Новым проектам, возможно, следует использовать sipHash128Reference.
Синтаксис
Аргументы
То же самое, что и для sipHash64.
Возвращаемое значение
128-битное хеш-значение SipHash
типа FixedString(16).
Пример
Запрос:
Результат:
sipHash128Keyed
Так же как и sipHash128, но дополнительно принимает явный аргумент ключа вместо использования фиксированного ключа.
Этот 128-битный вариант отличается от эталонной реализации и является слабее. Эта версия существует потому, что, когда она была написана, не было официального 128-битного расширения для SipHash. Новым проектам, возможно, следует использовать sipHash128ReferenceKeyed.
Синтаксис
Аргументы
То же самое, что и для sipHash128, но первый аргумент — это кортеж из двух значений UInt64, представляющих ключ.
Возвращаемое значение
128-битное хеш-значение SipHash
типа FixedString(16).
Пример
Запрос:
Результат:
sipHash128Reference
Так же как и sipHash128, но реализует 128-битный алгоритм от оригинальных авторов SipHash.
Синтаксис
Аргументы
То же самое, что и для sipHash128.
Возвращаемое значение
128-битное хеш-значение SipHash
типа FixedString(16).
Пример
Запрос:
Результат:
sipHash128ReferenceKeyed
Так же как и sipHash128Reference, но дополнительно принимает явный аргумент ключа вместо использования фиксированного ключа.
Синтаксис
Аргументы
То же самое, что и для sipHash128Reference, но первый аргумент — это кортеж из двух значений UInt64, представляющих ключ.
Возвращаемое значение
128-битное хеш-значение SipHash
типа FixedString(16).
Пример
Запрос:
Результат
cityHash64
Производит 64-битное хеш-значение CityHash.
Это быстрая некриптографическая хеш-функция. Она использует алгоритм CityHash для строковых параметров и специфичную для реализации быструю некриптографическую хеш-функцию для параметров с другими типами данных. Функция использует комбинатор CityHash для получения окончательных результатов.
Обратите внимание, что Google изменил алгоритм CityHash после того, как он был добавлен в ClickHouse. Иными словами, cityHash64 ClickHouse и upstream CityHash Google теперь дают разные результаты. cityHash64 ClickHouse соответствует CityHash v1.0.2.
Аргументы
Функция принимает переменное количество входных параметров. Аргументы могут быть любого из поддерживаемых типов данных. Для некоторых типов данных вычисляемое значение хеш-функции может быть одинаковым для одинаковых значений, даже если типы аргументов различаются (целые числа различного размера, именованный и безымянный Tuple
с одними и теми же данными, Map
и соответствующий тип Array(Tuple(key, value))
с одними и теми же данными).
Возвращаемое значение
Хеш-значение типа UInt64.
Примеры
Пример вызова:
Следующий пример показывает, как вычислить контрольную сумму всей таблицы с точностью до порядка строк:
intHash32
Вычисляет 32-битный хеш-код из любого типа целого числа. Это относительно быстрая некриптографическая хеш-функция среднего качества для чисел.
Синтаксис
Аргументы
int
— Целое число для хеширования. (U)Int*.
Возвращаемое значение
- 32-битный хеш-код. UInt32.
Пример
Запрос:
Результат:
intHash64
Вычисляет 64-битный хеш-код из любого типа целого числа. Это относительно быстрая некриптографическая хеш-функция среднего качества для чисел. Она работает быстрее, чем intHash32.
Синтаксис
Аргументы
int
— Целое число для хеширования. (U)Int*.
Возвращаемое значение
- 64-битный хеш-код. UInt64.
Пример
Запрос:
Результат:
SHA1, SHA224, SHA256, SHA512, SHA512_256
Вычисляет хеш SHA-1, SHA-224, SHA-256, SHA-512, SHA-512-256 из строки и возвращает результирующий набор байтов как FixedString.
Синтаксис
Функция работает довольно медленно (SHA-1 обрабатывает около 5 миллионов коротких строк в секунду на одно процессорное ядро, в то время как SHA-224 и SHA-256 обрабатывают около 2,2 миллионов). Рекомендуется использовать эту функцию только в тех случаях, когда вам нужна конкретная хеш-функция, и вы не можете выбрать ее.
Даже в этих случаях мы рекомендуем применять функцию офлайн и предварительно вычислять значения при вставке их в таблицу, вместо применения в запросах SELECT
.
Аргументы
s
— Входная строка для вычисления SHA-хеша. String.
Возвращаемое значение
- SHA-хеш в виде фиксированной строки без кодирования. SHA-1 возвращается как FixedString(20), SHA-224 как FixedString(28), SHA-256 — FixedString(32), SHA-512 — FixedString(64). FixedString.
Пример
Используйте функцию hex, чтобы представить результат как строку в шестнадцатеричном формате.
Запрос:
Результат:
BLAKE3
Вычисляет хеш-строку BLAKE3 и возвращает результирующий набор байтов как FixedString.
Синтаксис
Эта криптографическая хеш-функция интегрирована в ClickHouse с библиотекой BLAKE3 Rust. Функция довольно быстрая и показывает производительность примерно в два раза быстрее, чем SHA-2, при этом генерируя хеши той же длины, что и SHA-256.
Аргументы
- s - входная строка для вычисления хеша BLAKE3. String.
Возвращаемое значение
- Хеш BLAKE3 в виде массива байтов с типом FixedString(32). FixedString.
Пример
Используйте функцию hex, чтобы представить результат как строку в шестнадцатеричном формате.
Запрос:
Результат:
URLHash(url[, N])
Быстрая, некриптографическая хеш-функция хорошего качества для строки, получаемой из URL с использованием некоторого типа нормализации.
URLHash(s)
– вычисляет хеш из строки без одного из завершающих символов /
,?
или #
на конце, если он есть.
URLHash(s, N)
– вычисляет хеш из строки до уровня N в иерархии URL, без одного из завершающих символов /
,?
или #
на конце, если он есть.
Levels такие же, как в URLHierarchy.
farmFingerprint64
farmHash64
Производит 64-битное значение хеша FarmHash или Fingerprint. farmFingerprint64
предпочтителен для стабильного и переносимого значения.
Эти функции используют методы Fingerprint64
и Hash64
соответственно из всех доступных методов.
Аргументы
Функция принимает переменное количество входных параметров. Аргументы могут быть любого из поддерживаемых типов данных. Для некоторых типов данных вычисляемое значение хеш-функции может быть одинаковым для одинаковых значений, даже если типы аргументов различаются (целые числа различного размера, именованный и безымянный Tuple
с одними и теми же данными, Map
и соответствующий тип Array(Tuple(key, value))
с одними и теми же данными).
Возвращаемое значение
Хеш-значение типа UInt64.
Пример
javaHash
Вычисляет JavaHash из строки, Byte, Short, Integer, Long. Эта хеш-функция не является ни быстрой, ни качественной. Единственная причина использовать ее — это тогда, когда этот алгоритм уже используется в другой системе, и вам нужно вычислить точно такой же результат.
Обратите внимание, что Java поддерживает только вычисление хеша знаковых целых чисел, поэтому, если вы хотите вычислить хеш беззнаковых целых чисел, вам нужно привести их к соответствующим знаковым типам ClickHouse.
Синтаксис
Возвращаемое значение
Хеш-значение типа Int32
.
Пример
Запрос:
Результат:
Запрос:
Результат:
javaHashUTF16LE
Вычисляет JavaHash из строки, предполагая, что она содержит байты, представляющие строку в кодировке UTF-16LE.
Синтаксис
Аргументы
stringUtf16le
— строка в кодировке UTF-16LE.
Возвращаемое значение
Хеш-значение типа Int32
.
Пример
Корректный запрос с закодированной строкой UTF-16LE.
Запрос:
Результат:
hiveHash
Вычисляет HiveHash
из строки.
Это просто JavaHash с установленным нулевым знаковым битом. Эта функция используется в Apache Hive для версий до 3.0. Эта хеш-функция не является ни быстрой, ни качественной. Единственная причина использовать ее — это тогда, когда этот алгоритм уже используется в другой системе, и вам нужно вычислить точно такой же результат.
Возвращаемое значение
- Хеш-значение
hiveHash
. Int32.
Пример
Запрос:
Результат:
metroHash64
Производит 64-битное хеш-значение MetroHash.
Аргументы
Функция принимает переменное количество входных параметров. Аргументы могут быть любого из поддерживаемых типов данных. Для некоторых типов данных вычисляемое значение хеш-функции может быть одинаковым для одинаковых значений, даже если типы аргументов различаются (целые числа различного размера, именованный и безымянный Tuple
с одними и теми же данными, Map
и соответствующий тип Array(Tuple(key, value))
с одними и теми же данными).
Возвращаемое значение
Хеш-значение типа UInt64.
Пример
jumpConsistentHash
Вычисляет JumpConsistentHash из UInt64. Принимает два аргумента: ключ типа UInt64 и количество бакетов. Возвращает Int32. Для получения дополнительной информации смотрите ссылку: JumpConsistentHash
kostikConsistentHash
Алгоритм согласованного хеширования времени и пространства O(1) от Константина "kostik" Облакова. Ранее yandexConsistentHash
.
Синтаксис
Псевдоним: yandexConsistentHash
(оставлен для обратной совместимости).
Параметры
Возвращаемое значение
- Хеш-значение типа UInt16.
Детали реализации
Эффективен только если n <= 32768.
Пример
Запрос:
murmurHash2_32, murmurHash2_64
Производит хеш-значение MurmurHash2.
Аргументы
Обе функции принимают переменное количество входных параметров. Аргументы могут быть любого из поддерживаемых типов данных. Для некоторых типов данных вычисляемое значение хеш-функции может быть одинаковым для одинаковых значений, даже если типы аргументов различаются (целые числа различного размера, именованный и безымянный Tuple
с одними и теми же данными, Map
и соответствующий тип Array(Tuple(key, value))
с одними и теми же данными).
Возвращаемое значение
- Функция
murmurHash2_32
возвращает хеш-значение типа UInt32. - Функция
murmurHash2_64
возвращает хеш-значение типа UInt64.
Пример
gccMurmurHash
Вычисляет 64-битное хеш-значение MurmurHash2, используя тот же хеш-сид, что и gcc. Он портативен между сборками Clang и GCC.
Синтаксис
Аргументы
par1, ...
— Переменное количество параметров, которые могут быть любого из поддерживаемых типов данных.
Возвращаемое значение
- Вычисленное хеш-значение. UInt64.
Пример
Запрос:
Результат:
kafkaMurmurHash
Вычисляет 32-битное хеш-значение MurmurHash2, используя тот же хеш-сид, что и Kafka и без самого высокого бита, чтобы быть совместимым с Default Partitioner.
Синтаксис
Аргументы
par1, ...
— Переменное количество параметров, которые могут быть любого из поддерживаемых типов данных.
Возвращаемое значение
- Вычисленное хеш-значение. UInt32.
Пример
Запрос:
Результат:
murmurHash3_32, murmurHash3_64
Производит хеш-значение MurmurHash3.
Аргументы
Обе функции принимают переменное количество входных параметров. Аргументы могут быть любого из поддерживаемых типов данных. Для некоторых типов данных вычисляемое значение хеш-функции может быть одинаковым для одинаковых значений, даже если типы аргументов различаются (целые числа различного размера, именованный и безымянный Tuple
с одними и теми же данными, Map
и соответствующий тип Array(Tuple(key, value))
с одними и теми же данными).
Возвращаемое значение
- Функция
murmurHash3_32
возвращает хеш-значение типа UInt32. - Функция
murmurHash3_64
возвращает хеш-значение типа UInt64.
Пример
murmurHash3_128
Производит 128-битное хеш-значение MurmurHash3.
Синтаксис
Аргументы
Возвращаемое значение
128-битное хеш-значение MurmurHash3
. FixedString(16).
Пример
Запрос:
Результат:
xxh3
Производит 64-битное хеш-значение xxh3.
Синтаксис
Аргументы
expr
— Список выражений любого типа данных.
Возвращаемое значение
64-битное хеш-значение xxh3
. UInt64.
Пример
Запрос:
Результат:
xxHash32, xxHash64
Вычисляет xxHash
из строки. Он предлагается в двух вариантах: 32 и 64 бита.
Возвращаемое значение
- Значение хеша. UInt32/64.
Тип возвращаемого значения будет UInt32
для xxHash32
и UInt64
для xxHash64
.
Пример
Запрос:
Результат:
См. также
ngramSimHash
Разбивает строку ASCII на n-граммы из ngramsize
символов и возвращает n-граммный simhash
. Чувствителен к регистру.
Может быть использован для обнаружения полудубликатов строк с помощью bitHammingDistance. Чем меньше расстояние Хэмминга между рассчитанными simhashes
двух строк, тем больше вероятность, что эти строки одинаковые.
Синтаксис
Аргументы
string
— Строка. String.ngramsize
— Размер n-граммы. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:3
. UInt8.
Возвращаемое значение
- Хеш-значение. UInt64.
Пример
Запрос:
Результат:
ngramSimHashCaseInsensitive
Разбивает строку ASCII на n-граммы из ngramsize
символов и возвращает n-граммный simhash
. Не чувствителен к регистру.
Может быть использован для обнаружения полудубликатов строк с помощью bitHammingDistance. Чем меньше расстояние Хэмминга между рассчитанными simhashes
двух строк, тем больше вероятность, что эти строки одинаковые.
Синтаксис
Аргументы
string
— Строка. String.ngramsize
— Размер n-граммы. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:3
. UInt8.
Возвращаемое значение
- Хеш-значение. UInt64.
Пример
Запрос:
Результат:
ngramSimHashUTF8
Разбивает строку UTF-8 на n-граммы из ngramsize
символов и возвращает n-граммный simhash
. Чувствителен к регистру.
Может быть использован для обнаружения полудубликатов строк с помощью bitHammingDistance. Чем меньше расстояние Хэмминга между рассчитанными simhashes
двух строк, тем больше вероятность, что эти строки одинаковые.
Синтаксис
Аргументы
string
— Строка. String.ngramsize
— Размер n-граммы. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:3
. UInt8.
Возвращаемое значение
- Хеш-значение. UInt64.
Пример
Запрос:
Результат:
ngramSimHashCaseInsensitiveUTF8
Разделяет UTF-8 строку на n-граммы размером ngramsize
символов и возвращает n-граммный simhash
. Не чувствителен к регистру.
Может быть использован для обнаружения полудубликатов строк с помощью bitHammingDistance. Чем меньше Расстояние Хэмминга между рассчитанными simhashes
двух строк, тем более вероятно, что эти строки идентичны.
Синтаксис
Аргументы
string
— Строка. String.ngramsize
— Размер n-граммы. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:3
. UInt8.
Возвращаемое значение
- Хеш-значение. UInt64.
Пример
Запрос:
Результат:
wordShingleSimHash
Разделяет ASCII строку на части (шинглы) размером shinglesize
слов и возвращает хеш шингла слова. Чувствителен к регистру.
Может быть использован для обнаружения полудубликатов строк с помощью bitHammingDistance. Чем меньше Расстояние Хэмминга между рассчитанными simhashes
двух строк, тем более вероятно, что эти строки идентичны.
Синтаксис
Аргументы
string
— Строка. String.shinglesize
— Размер слова шингла. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:3
. UInt8.
Возвращаемое значение
- Хеш-значение. UInt64.
Пример
Запрос:
Результат:
wordShingleSimHashCaseInsensitive
Разделяет ASCII строку на части (шинглы) размером shinglesize
слов и возвращает хеш шингла слова. Не чувствителен к регистру.
Может быть использован для обнаружения полудубликатов строк с помощью bitHammingDistance. Чем меньше Расстояние Хэмминга между рассчитанными simhashes
двух строк, тем более вероятно, что эти строки идентичны.
Синтаксис
Аргументы
string
— Строка. String.shinglesize
— Размер слова шингла. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:3
. UInt8.
Возвращаемое значение
- Хеш-значение. UInt64.
Пример
Запрос:
Результат:
wordShingleSimHashUTF8
Разделяет UTF-8 строку на части (шинглы) размером shinglesize
слов и возвращает хеш шингла слова. Чувствителен к регистру.
Может быть использован для обнаружения полудубликатов строк с помощью bitHammingDistance. Чем меньше Расстояние Хэмминга между рассчитанными simhashes
двух строк, тем более вероятно, что эти строки идентичны.
Синтаксис
Аргументы
string
— Строка. String.shinglesize
— Размер слова шингла. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:3
. UInt8.
Возвращаемое значение
- Хеш-значение. UInt64.
Пример
Запрос:
Результат:
wordShingleSimHashCaseInsensitiveUTF8
Разделяет UTF-8 строку на части (шинглы) размером shinglesize
слов и возвращает хеш шингла слова. Не чувствителен к регистру.
Может быть использован для обнаружения полудубликатов строк с помощью bitHammingDistance. Чем меньше Расстояние Хэмминга между рассчитанными simhashes
двух строк, тем более вероятно, что эти строки идентичны.
Синтаксис
Аргументы
string
— Строка. String.shinglesize
— Размер слова шингла. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:3
. UInt8.
Возвращаемое значение
- Хеш-значение. UInt64.
Пример
Запрос:
Результат:
wyHash64
Создает 64-битное wyHash64 хеш-значение.
Синтаксис
Аргументы
string
— Строка. String.
Возвращаемое значение
- Хеш-значение. UInt64.
Пример
Запрос:
Результат:
ngramMinHash
Разделяет ASCII строку на n-граммы размером ngramsize
символов и вычисляет хеш-значения для каждой n-граммы. Использует hashnum
минимальных хешей для вычисления минимального хеша и hashnum
максимальных хешей для вычисления максимального хеша. Возвращает кортеж с этими хешами. Чувствителен к регистру.
Может быть использован для обнаружения полудубликатов строк с помощью tupleHammingDistance. Для двух строк: если один из возвращенных хешей совпадает для обеих строк, мы считаем, что эти строки идентичны.
Синтаксис
Аргументы
string
— Строка. String.ngramsize
— Размер n-граммы. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:3
. UInt8.hashnum
— Количество минимальных и максимальных хешей, используемых для вычисления результата. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:6
. UInt8.
Возвращаемое значение
Пример
Запрос:
Результат:
ngramMinHashCaseInsensitive
Разделяет ASCII строку на n-граммы размером ngramsize
символов и вычисляет хеш-значения для каждой n-граммы. Использует hashnum
минимальных хешей для вычисления минимального хеша и hashnum
максимальных хешей для вычисления максимального хеша. Возвращает кортеж с этими хешами. Не чувствителен к регистру.
Может быть использован для обнаружения полудубликатов строк с помощью tupleHammingDistance. Для двух строк: если один из возвращенных хешей совпадает для обеих строк, мы считаем, что эти строки идентичны.
Синтаксис
Аргументы
string
— Строка. String.ngramsize
— Размер n-граммы. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:3
. UInt8.hashnum
— Количество минимальных и максимальных хешей, используемых для вычисления результата. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:6
. UInt8.
Возвращаемое значение
Пример
Запрос:
Результат:
ngramMinHashUTF8
Разделяет UTF-8 строку на n-граммы размером ngramsize
символов и вычисляет хеш-значения для каждой n-граммы. Использует hashnum
минимальных хешей для вычисления минимального хеша и hashnum
максимальных хешей для вычисления максимального хеша. Возвращает кортеж с этими хешами. Чувствителен к регистру.
Может быть использован для обнаружения полудубликатов строк с помощью tupleHammingDistance. Для двух строк: если один из возвращенных хешей совпадает для обеих строк, мы считаем, что эти строки идентичны.
Синтаксис
Аргументы
string
— Строка. String.ngramsize
— Размер n-граммы. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:3
. UInt8.hashnum
— Количество минимальных и максимальных хешей, используемых для вычисления результата. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:6
. UInt8.
Возвращаемое значение
Пример
Запрос:
Результат:
ngramMinHashCaseInsensitiveUTF8
Разделяет UTF-8 строку на n-граммы размером ngramsize
символов и вычисляет хеш-значения для каждой n-граммы. Использует hashnum
минимальных хешей для вычисления минимального хеша и hashnum
максимальных хешей для вычисления максимального хеша. Возвращает кортеж с этими хешами. Не чувствителен к регистру.
Может быть использован для обнаружения полудубликатов строк с помощью tupleHammingDistance. Для двух строк: если один из возвращенных хешей совпадает для обеих строк, мы считаем, что эти строки идентичны.
Синтаксис
Аргументы
string
— Строка. String.ngramsize
— Размер n-граммы. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:3
. UInt8.hashnum
— Количество минимальных и максимальных хешей, используемых для вычисления результата. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:6
. UInt8.
Возвращаемое значение
Пример
Запрос:
Результат:
ngramMinHashArg
Разделяет ASCII строку на n-граммы размером ngramsize
символов и возвращает n-граммы с минимальными и максимальными хешами, рассчитанными с помощью функции ngramMinHash с теми же входными данными. Чувствителен к регистру.
Синтаксис
Аргументы
string
— Строка. String.ngramsize
— Размер n-граммы. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:3
. UInt8.hashnum
— Количество минимальных и максимальных хешей, используемых для вычисления результата. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:6
. UInt8.
Возвращаемое значение
Пример
Запрос:
Результат:
ngramMinHashArgCaseInsensitive
Разделяет ASCII строку на n-граммы размером ngramsize
символов и возвращает n-граммы с минимальными и максимальными хешами, рассчитанными с помощью функции ngramMinHashCaseInsensitive с теми же входными данными. Не чувствителен к регистру.
Синтаксис
Аргументы
string
— Строка. String.ngramsize
— Размер n-граммы. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:3
. UInt8.hashnum
— Количество минимальных и максимальных хешей, используемых для вычисления результата. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:6
. UInt8.
Возвращаемое значение
Пример
Запрос:
Результат:
ngramMinHashArgUTF8
Разделяет UTF-8 строку на n-граммы размером ngramsize
символов и возвращает n-граммы с минимальными и максимальными хешами, рассчитанными с помощью функции ngramMinHashUTF8 с теми же входными данными. Чувствителен к регистру.
Синтаксис
Аргументы
string
— Строка. String.ngramsize
— Размер n-граммы. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:3
. UInt8.hashnum
— Количество минимальных и максимальных хешей, используемых для вычисления результата. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:6
. UInt8.
Возвращаемое значение
Пример
Запрос:
Результат:
ngramMinHashArgCaseInsensitiveUTF8
Разделяет UTF-8 строку на n-граммы размером ngramsize
символов и возвращает n-граммы с минимальными и максимальными хешами, рассчитанными с помощью функции ngramMinHashCaseInsensitiveUTF8 с теми же входными данными. Не чувствителен к регистру.
Синтаксис
Аргументы
string
— Строка. String.ngramsize
— Размер n-граммы. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:3
. UInt8.hashnum
— Количество минимальных и максимальных хешей, используемых для вычисления результата. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:6
. UInt8.
Возвращаемое значение
Пример
Запрос:
Результат:
wordShingleMinHash
Разделяет ASCII строку на части (шинглы) размером shinglesize
слов и вычисляет хеш-значения для каждого слова шингла. Использует hashnum
минимальных хешей для вычисления минимального хеша и hashnum
максимальных хешей для вычисления максимального хеша. Возвращает кортеж с этими хешами. Чувствителен к регистру.
Может быть использован для обнаружения полудубликатов строк с помощью tupleHammingDistance. Для двух строк: если один из возвращенных хешей совпадает для обеих строк, мы считаем, что эти строки идентичны.
Синтаксис
Аргументы
string
— Строка. String.shinglesize
— Размер слова шингла. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:3
. UInt8.hashnum
— Количество минимальных и максимальных хешей, используемых для вычисления результата. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:6
. UInt8.
Возвращаемое значение
Пример
Запрос:
Результат:
wordShingleMinHashCaseInsensitive
Разделяет ASCII строку на части (шинглы) размером shinglesize
слов и вычисляет хеш-значения для каждого слова шингла. Использует hashnum
минимальных хешей для вычисления минимального хеша и hashnum
максимальных хешей для вычисления максимального хеша. Возвращает кортеж с этими хешами. Не чувствителен к регистру.
Может быть использован для обнаружения полудубликатов строк с помощью tupleHammingDistance. Для двух строк: если один из возвращенных хешей совпадает для обеих строк, мы считаем, что эти строки идентичны.
Синтаксис
Аргументы
string
— Строка. String.shinglesize
— Размер слова шингла. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:3
. UInt8.hashnum
— Количество минимальных и максимальных хешей, используемых для вычисления результата. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:6
. UInt8.
Возвращаемое значение
Пример
Запрос:
Результат:
wordShingleMinHashUTF8
Разделяет UTF-8 строку на части (шинглы) размером shinglesize
слов и вычисляет хеш-значения для каждого слова шингла. Использует hashnum
минимальных хешей для вычисления минимального хеша и hashnum
максимальных хешей для вычисления максимального хеша. Возвращает кортеж с этими хешами. Чувствителен к регистру.
Может быть использован для обнаружения полудубликатов строк с помощью tupleHammingDistance. Для двух строк: если один из возвращенных хешей совпадает для обеих строк, мы считаем, что эти строки идентичны.
Синтаксис
Аргументы
string
— Строка. String.shinglesize
— Размер слова шингла. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:3
. UInt8.hashnum
— Количество минимальных и максимальных хешей, используемых для вычисления результата. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:6
. UInt8.
Возвращаемое значение
Пример
Запрос:
Результат:
wordShingleMinHashCaseInsensitiveUTF8
Разделяет UTF-8 строку на части (шинглы) размером shinglesize
слов и вычисляет хеш-значения для каждого слова шингла. Использует hashnum
минимальных хешей для вычисления минимального хеша и hashnum
максимальных хешей для вычисления максимального хеша. Возвращает кортеж с этими хешами. Не чувствителен к регистру.
Может быть использован для обнаружения полудубликатов строк с помощью tupleHammingDistance. Для двух строк: если один из возвращенных хешей совпадает для обеих строк, мы считаем, что эти строки идентичны.
Синтаксис
Аргументы
string
— Строка. String.shinglesize
— Размер слова шингла. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:3
. UInt8.hashnum
— Количество минимальных и максимальных хешей, используемых для вычисления результата. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:6
. UInt8.
Возвращаемое значение
Пример
Запрос:
Результат:
wordShingleMinHashArgCaseInsensitiveUTF8
Разбивает строку UTF-8 на части (шинглы) по shinglesize
слов в каждой и возвращает шинглы с минимальными и максимальными хэшами слов, вычисленных с помощью функции wordShingleMinHashCaseInsensitiveUTF8 с тем же входом. Не чувствителен к регистру.
Синтаксис
Аргументы
string
— Строка. String.shinglesize
— Размер слова шингла. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:3
. UInt8.hashnum
— Количество минимальных и максимальных хешей, используемых для вычисления результата. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:6
. UInt8.
Возвращаемое значение
Пример
Запрос:
Результат:
sqidEncode
Кодирует числа как Sqid, что представляет собой строку идентификатора, аналогичную YouTube.
Выходной алфавит: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
.
Не используйте эту функцию для хеширования — сгенерированные идентификаторы могут быть декодированы обратно в оригинальные числа.
Синтаксис
Псевдоним: sqid
Аргументы
- Переменное число чисел UInt8, UInt16, UInt32 или UInt64.
Возвращаемое значение
Сqid String.
Пример
sqidDecode
Декодирует Sqid обратно в его оригинальные числа. Возвращает пустой массив в случае, если входная строка не является действительным sqid.
Синтаксис
Аргументы
- Sqid - String
Возвращаемое значение
Sqid, преобразованный в числа Array(UInt64).
Пример
keccak256
Вычисляет хэш-строку Keccak-256 и возвращает полученный набор байтов как FixedString.
Синтаксис
Эта криптографическая хеш-функция широко используется в EVM-ориентированных блокчейнах.
Аргументы
- s - входная строка для вычисления хеша Keccak-256. String.
Возвращаемое значение
Хэш Keccak-256 в виде массива байтов с типом FixedString(32). FixedString.
Пример
Используйте функцию hex, чтобы отформатировать результат как строку в шестнадцатеричном коде.
Запрос:
Результат: