Хеш-функции
Хеш-функции могут быть использованы для детерминированного псевдослучайного перемешивания элементов.
Simhash — это хеш-функция, которая возвращает близкие хеш-значения для близких (похожие) аргументов.
Большинство хеш-функций принимают любое количество аргументов любого типа.
Хеш NULL равен NULL. Чтобы получить не-NULL хеш колонки Nullable, оберните его в кортеж:
Чтобы вычислить хеш всего содержания таблицы, используйте sum(cityHash64(tuple(*)))
(или другую хеш-функцию). tuple
гарантирует, что строки с NULL значениями не будут пропущены. sum
гарантирует, что порядок строк не имеет значения.
halfMD5
Интерпретирует все входные параметры как строки и вычисляет MD5 хеш для каждого из них. Затем объединяет хеши, берет первые 8 байт хеша полученной строки и интерпретирует их как UInt64
в порядке байтов big-endian.
Функция относительно медленная (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
: Входная строка. Строка
Возвращаемое значение
- 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-битное хеш-значение, то есть финальное состояние побитового исключения производится до 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-хеша. Строка.
Возвращаемое значение
- SHA-хеш в виде фиксированной строки без кодирования шестнадцатеричных символов. SHA-1 возвращает как FixedString(20), SHA-224 — FixedString(28), SHA-256 — FixedString(32), SHA-512 — FixedString(64). FixedString.
Пример
Используйте функцию hex, чтобы представить результат как строку с шестнадцатеричным кодированием.
Запрос:
Результат:
BLAKE3
Вычисляет строку хеша BLAKE3 и возвращает полученный набор байт как FixedString.
Синтаксис
Эта криптографическая хеш-функция интегрирована в ClickHouse с помощью библиотеки Rust BLAKE3. Функция довольно быстрая и показывает производительность примерно в два раза быстрее по сравнению с SHA-2, генерируя хеши такой же длины, как у SHA-256.
Аргументы
s
— входная строка для вычисления хеша BLAKE3. Строка.
Возвращаемое значение
- Хеш BLAKE3 в виде массива байтов с типом FixedString(32). FixedString.
Пример
Используйте функцию hex, чтобы представить результат как строку с шестнадцатеричным кодированием.
Запрос:
Результат:
URLHash(url[, N])
Быстрая, хеш-функция среднего качества для строки, полученной из URL, с использованием какого-либо типа нормализации.
URLHash(s)
– Вычисляет хеш из строки без одного из завершающих символов /
,?
или #
в конце, если таковой есть.
URLHash(s, N)
– Вычисляет хеш из строки до уровня N в иерархии URL, без одного из завершающих символов /
,?
или #
в конце, если таковой есть.
Уровни такие же, как в 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
— строка. Строка.ngramsize
— размер n-граммы. Необязательно. Возможные значения: любое число от1
до25
. Значение по умолчанию:3
. UInt8.
Возвращаемое значение
- Хеш-значение. UInt64.
Пример
Запрос:
Результат:
ngramSimHashCaseInsensitive
Разбиение ASCII строки на n-граммы размером ngramsize
символов и возврат n-граммного simhash
. Игнорирует регистр.
Может использоваться для обнаружения полудублированных строк с помощью bitHammingDistance. Чем меньше расстояние Хэмминга между вычисленными simhashes
двух строк, тем выше вероятность, что эти строки одинаковы.
Синтаксис
Аргументы
string
— строка. Строка.ngramsize
— размер n-граммы. Необязательно. Возможные значения: любое число от1
до25
. Значение по умолчанию:3
. UInt8.
Возвращаемое значение
- Хеш-значение. UInt64.
Пример
Запрос:
Результат:
ngramSimHashUTF8
Разбиение строки UTF-8 на n-граммы размером ngramsize
символов и возврат n-граммного simhash
. Чувствителен к регистру.
Может использоваться для обнаружения полудублированных строк с помощью bitHammingDistance. Чем меньше расстояние Хэмминга между вычисленными simhashes
двух строк, тем выше вероятность, что эти строки одинаковы.
Синтаксис
Аргументы
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
слов и возвращает слово шингл simhash
. Чувствителен к регистру.
Может быть использован для обнаружения полудубликатов строк с помощью bitHammingDistance. Чем меньше расстояние Хэмминга между вычисленными simhashes
двух строк, тем более вероятно, что эти строки одинаковые.
Синтаксис
Аргументы
string
— Строка. String.shinglesize
— Размер слова шингла. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:3
. UInt8.
Возвращаемое значение
- Хэш-значение. UInt64.
Пример
Запрос:
Результат:
wordShingleSimHashCaseInsensitive
Разделяет строку ASCII на части (шинглы) размером shinglesize
слов и возвращает слово шингл simhash
. Игнорирует регистр.
Может быть использован для обнаружения полудубликатов строк с помощью bitHammingDistance. Чем меньше расстояние Хэмминга между вычисленными simhashes
двух строк, тем более вероятно, что эти строки одинаковые.
Синтаксис
Аргументы
string
— Строка. String.shinglesize
— Размер слова шингла. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:3
. UInt8.
Возвращаемое значение
- Хэш-значение. UInt64.
Пример
Запрос:
Результат:
wordShingleSimHashUTF8
Разделяет строку UTF-8 на части (шинглы) размером shinglesize
слов и возвращает слово шингл simhash
. Чувствителен к регистру.
Может быть использован для обнаружения полудубликатов строк с помощью bitHammingDistance. Чем меньше расстояние Хэмминга между вычисленными simhashes
двух строк, тем более вероятно, что эти строки одинаковые.
Синтаксис
Аргументы
string
— Строка. String.shinglesize
— Размер слова шингла. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:3
. UInt8.
Возвращаемое значение
- Хэш-значение. UInt64.
Пример
Запрос:
Результат:
wordShingleSimHashCaseInsensitiveUTF8
Разделяет строку UTF-8 на части (шинглы) размером shinglesize
слов и возвращает слово шингл simhash
. Игнорирует регистр.
Может быть использован для обнаружения полудубликатов строк с помощью 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
— Строка. Строка.shinglesize
— Размер шинга слова. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:3
. UInt8.hashnum
— Количество наименьших и наибольших хешей, которые используются для вычисления результата. Необязательный. Возможные значения: любое число от1
до25
. Значение по умолчанию:6
. UInt8.
Возвращаемое значение
Пример
Запрос:
Результат:
sqidEncode
Кодирует числа как Sqid, что является подобной строкой ID для YouTube.
Алфавит вывода: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
.
Не используйте эту функцию для хеширования - сгенерированные идентификаторы могут быть декодированы обратно в оригинальные числа.
Синтаксис
Псевдоним: sqid
Аргументы
- Переменное количество чисел UInt8, UInt16, UInt32 или UInt64.
Возвращаемое значение
Sqid Строка.
Пример
sqidDecode
Декодирует Sqid обратно в его оригинальные числа. Возвращает пустой массив в случае, если входная строка не является правильным sqid.
Синтаксис
Аргументы
- Sqid - Строка
Возвращаемое значение
Sqid, преобразованный в числа Массив(UInt64).
Пример
keccak256
Вычисляет строку хеша Keccak-256 и возвращает полученный набор байтов в виде FixedString.
Синтаксис
Эта криптографическая хеш-функция широко используется в блокчейнах на основе EVM.
Аргументы
- s - входная строка для вычисления хеша Keccak-256. Строка.
Возвращаемое значение
- Хеш Keccak-256 в виде массива байтов с типом FixedString(32). FixedString.
Пример
Используйте функцию hex, чтобы отформатировать результат как шестнадцатеричную строку.
Запрос:
Результат: