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

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.

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

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

Аргументы

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

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

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

Параметры

  • 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 — Строка. 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.

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

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

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

  • Кортеж из двух кортежей с hashnum словами шинглов каждый. Tuple(Tuple(String), Tuple(String)).

Пример

Запрос:

Результат:

sqidEncode

Кодирует числа как Sqid, что представляет собой строку идентификатора, аналогичную YouTube. Выходной алфавит: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789. Не используйте эту функцию для хеширования — сгенерированные идентификаторы могут быть декодированы обратно в оригинальные числа.

Синтаксис

Псевдоним: sqid

Аргументы

  • Переменное число чисел UInt8, UInt16, UInt32 или UInt64.

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

Сqid String.

Пример

sqidDecode

Декодирует Sqid обратно в его оригинальные числа. Возвращает пустой массив в случае, если входная строка не является действительным sqid.

Синтаксис

Аргументы

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

Sqid, преобразованный в числа Array(UInt64).

Пример

keccak256

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

Синтаксис

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

Аргументы

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

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

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

Пример

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

Запрос:

Результат: