Перейти к основному содержимому
Перейти к основному содержимому

Хеш-функции

Хеш-функции могут быть использованы для детерминированного псевдослучайного перемешивания элементов.

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.

Синтаксис

Параметры

Возвращаемое значение

  • 160-битное хеш-значение RIPEMD-160 типа FixedString(20).

Пример

Используйте функцию hex, чтобы представить результат в виде строки в шестнадцатеричном коде.

Запрос:

sipHash64

Выдает 64-битное хеш-значение SipHash.

Это криптографическая хеш-функция. Она работает как минимум в три раза быстрее, чем хеш-функция MD5.

Функция интерпретирует все входные параметры как строки и вычисляет хеш-значение для каждого из них. Затем она объединяет хеши по следующему алгоритму:

  1. Первое и второе хеш-значение конкатенируются в массив, который хешируется.
  2. Ранее вычисленное хеш-значение и хеш третьего входного параметра хешируются аналогичным образом.
  3. Эта операция повторяется для всех оставшихся хеш-значений исходного ввода.

Аргументы

Функция принимает переменное количество входных параметров любого из поддерживаемых типов данных.

Возвращаемое значение

Хеш-значение типа 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 (оставлен для обратной совместимости).

Параметры

  • input: Ключ типа UInt64 UInt64.
  • n: Количество бакетов. UInt16.

Возвращаемое значение

  • Хеш-значение типа 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.

Синтаксис

Аргументы

Возвращаемое значение

  • Вычисленное хеш-значение. UInt64.

Пример

Запрос:

Результат:

kafkaMurmurHash

Вычисляет 32-битное хеш-значение MurmurHash2 с использованием того же хеш-седла, что и Kafka, и без самого старшего бита для совместимости с Default Partitioner.

Синтаксис

Аргументы

Возвращаемое значение

  • Вычисленное хеш-значение. 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.

Синтаксис

Аргументы

Возвращаемое значение

64-битное хеш-значение xxh3. UInt64.

Пример

Запрос:

Результат:

xxHash32, xxHash64

Вычисляет xxHash из строки. Он предлагается в двух вариантах, 32 и 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.

Возвращаемое значение

  • Кортеж из двух хэшей — минимального и максимального. Tuple(UInt64, UInt64).

Пример

Запрос:

Результат:

ngramMinHashCaseInsensitive

Разделяет строку ASCII на n-граммы размером ngramsize символов и вычисляет хэш-значения для каждой n-граммы. Использует hashnum минимальных хэшей для вычисления минимального и hashnum максимальных хэшей для вычисления максимального. Возвращает кортеж с этими хэшами. Игнорирует регистр.

Может быть использован для обнаружения полудубликатов строк с помощью tupleHammingDistance. Для двух строк: если один из возвращаемых хэшей одинаков для обеих строк, мы считаем, что эти строки одинаковые.

Синтаксис

Аргументы

  • string — Строка. String.
  • ngramsize — Размер n-граммы. Необязательный. Возможные значения: любое число от 1 до 25. Значение по умолчанию: 3. UInt8.
  • hashnum — Количество минимальных и максимальных хэшей, используемых для вычисления результата. Необязательный. Возможные значения: любое число от 1 до 25. Значение по умолчанию: 6. UInt8.

Возвращаемое значение

  • Кортеж из двух хэшей — минимального и максимального. Tuple(UInt64, UInt64).

Пример

Запрос:

Результат:

ngramMinHashUTF8

Разделяет строку UTF-8 на n-граммы размером ngramsize символов и вычисляет хэш-значения для каждой n-граммы. Использует hashnum минимальных хэшей для вычисления минимального и hashnum максимальных хэшей для вычисления максимального. Возвращает кортеж с этими хэшами. Чувствителен к регистру.

Может быть использован для обнаружения полудубликатов строк с помощью tupleHammingDistance. Для двух строк: если один из возвращаемых хэшей одинаков для обеих строк, мы считаем, что эти строки одинаковые.

Синтаксис

Аргументы

  • string — Строка. String.
  • ngramsize — Размер n-граммы. Необязательный. Возможные значения: любое число от 1 до 25. Значение по умолчанию: 3. UInt8.
  • hashnum — Количество минимальных и максимальных хэшей, используемых для вычисления результата. Необязательный. Возможные значения: любое число от 1 до 25. Значение по умолчанию: 6. UInt8.

Возвращаемое значение

  • Кортеж из двух хэшей — минимального и максимального. Tuple(UInt64, UInt64).

Пример

Запрос:

Результат:

ngramMinHashCaseInsensitiveUTF8

Разделяет строку UTF-8 на n-граммы размером ngramsize символов и вычисляет хэш-значения для каждой n-граммы. Использует hashnum минимальных хэшей для вычисления минимального и hashnum максимальных хэшей для вычисления максимального. Возвращает кортеж с этими хэшами. Игнорирует регистр.

Может быть использован для обнаружения полудубликатов строк с помощью tupleHammingDistance. Для двух строк: если один из возвращаемых хэшей одинаков для обеих строк, мы считаем, что эти строки одинаковые.

Синтаксис

Аргументы

  • string — Строка. String.
  • ngramsize — Размер n-граммы. Необязательный. Возможные значения: любое число от 1 до 25. Значение по умолчанию: 3. UInt8.
  • hashnum — Количество минимальных и максимальных хэшей, используемых для вычисления результата. Необязательный. Возможные значения: любое число от 1 до 25. Значение по умолчанию: 6. UInt8.

Возвращаемое значение

  • Кортеж из двух хэшей — минимального и максимального. Tuple(UInt64, UInt64).

Пример

Запрос:

Результат:

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.

Возвращаемое значение

  • Кортеж из двух хэшей — минимального и максимального. Tuple(UInt64, UInt64).

Пример

Запрос:

Результат:

wordShingleMinHashCaseInsensitive

Разделяет строку ASCII на части (шинглы) размером shinglesize слов и вычисляет хэш-значения для каждого слова шингла. Использует hashnum минимальных хэшей для вычисления минимального и hashnum максимальных хэшей для вычисления максимального. Возвращает кортеж с этими хэшами. Игнорирует регистр.

Может быть использован для обнаружения полудубликатов строк с помощью tupleHammingDistance. Для двух строк: если один из возвращаемых хэшей одинаков для обеих строк, мы считаем, что эти строки одинаковые.

Синтаксис

Аргументы

  • string — Строка. String.
  • shinglesize — Размер слова шингла. Необязательный. Возможные значения: любое число от 1 до 25. Значение по умолчанию: 3. UInt8.
  • hashnum — Количество минимальных и максимальных хэшей, используемых для вычисления результата. Необязательный. Возможные значения: любое число от 1 до 25. Значение по умолчанию: 6. UInt8.

Возвращаемое значение

  • Кортеж из двух хэшей — минимального и максимального. Tuple(UInt64, UInt64).

Пример

Запрос:

Результат:

wordShingleMinHashUTF8

Разделяет строку UTF-8 на части (шинглы) размером shinglesize слов и вычисляет хэш-значения для каждого слова шингла. Использует hashnum минимальных хэшей для вычисления минимального и hashnum максимальных хэшей для вычисления максимального. Возвращает кортеж с этими хэшами. Чувствителен к регистру.

Может быть использован для обнаружения полудубликатов строк с помощью tupleHammingDistance. Для двух строк: если один из возвращаемых хэшей одинаков для обеих строк, мы считаем, что эти строки одинаковые.

Синтаксис

Аргументы

  • string — Строка. String.
  • shinglesize — Размер слова шингла. Необязательный. Возможные значения: любое число от 1 до 25. Значение по умолчанию: 3. UInt8.
  • hashnum — Количество минимальных и максимальных хэшей, используемых для вычисления результата. Необязательный. Возможные значения: любое число от 1 до 25. Значение по умолчанию: 6. UInt8.

Возвращаемое значение

  • Кортеж из двух хэшей — минимального и максимального. Tuple(UInt64, UInt64).

Пример

Запрос:

Результат:

wordShingleMinHashCaseInsensitiveUTF8

Разделяет строку UTF-8 на части (шинглы) размером shinglesize слов и вычисляет хэш-значения для каждого слова шингла. Использует hashnum минимальных хэшей для вычисления минимального и hashnum максимальных хэшей для вычисления максимального. Возвращает кортеж с этими хэшами. Игнорирует регистр.

Может быть использован для обнаружения полудубликатов строк с помощью tupleHammingDistance. Для двух строк: если один из возвращаемых хэшей одинаков для обеих строк, мы считаем, что эти строки одинаковые.

Синтаксис

Аргументы

  • string — Строка. String.
  • shinglesize — Размер слова шингла. Необязательный. Возможные значения: любое число от 1 до 25. Значение по умолчанию: 3. UInt8.
  • hashnum — Количество минимальных и максимальных хэшей, используемых для вычисления результата. Необязательный. Возможные значения: любое число от 1 до 25. Значение по умолчанию: 6. UInt8.

Возвращаемое значение

  • Кортеж из двух хэшей — минимального и максимального. Tuple(UInt64, UInt64).

Пример

Запрос:

Результат:

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, преобразованный в числа Массив(UInt64).

Пример

keccak256

Вычисляет строку хеша Keccak-256 и возвращает полученный набор байтов в виде FixedString.

Синтаксис

Эта криптографическая хеш-функция широко используется в блокчейнах на основе EVM.

Аргументы

  • s - входная строка для вычисления хеша Keccak-256. Строка.

Возвращаемое значение

  • Хеш Keccak-256 в виде массива байтов с типом FixedString(32). FixedString.

Пример

Используйте функцию hex, чтобы отформатировать результат как шестнадцатеричную строку.

Запрос:

Результат: