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

Хэш-функции

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

Simhash - это хэш-функция, которая возвращает близкие хэш-значения для близких (похожих) аргументов.

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: Входная строка. 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 и 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-хэш в виде небронированной FixedString. 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. String.

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

  • Хэш 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. Чем меньше Расстояние Хэмминга между вычисленными simhash двух строк, тем более вероятно, что эти строки одинаковы.

Синтаксис

Аргументы

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

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

  • Хэш-значение. UInt64.

Пример

Запрос:

Результат:

ngramSimHashCaseInsensitive

Разделяет строку ASCII на n-граммы размером ngramsize символов и возвращает n-граммный simhash. Не чувствителен к регистру.

Может использоваться для обнаружения полудубликатов строк с помощью bitHammingDistance. Чем меньше Расстояние Хэмминга между вычисленными simhash двух строк, тем более вероятно, что эти строки одинаковы.

Синтаксис

Аргументы

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

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

  • Хэш-значение. UInt64.

Пример

Запрос:

Результат:

ngramSimHashUTF8

Разделяет строку UTF-8 на n-граммы размером ngramsize символов и возвращает n-граммный simhash. Чувствителен к регистру.

Может использоваться для обнаружения полудубликатов строк с помощью bitHammingDistance. Чем меньше Расстояние Хэмминга между вычисленными simhash двух строк, тем более вероятно, что эти строки одинаковы.

Синтаксис

Аргументы

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

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

  • Хэш-значение. UInt64.

Пример

Запрос:

Результат:

ngramSimHashCaseInsensitiveUTF8

Разделяет строку UTF-8 на n-граммы размером ngramsize символов и возвращает n-граммный simhash. Без учета регистра.

Может быть использовано для обнаружения полудубликатов строк с помощью bitHammingDistance. Чем меньше дистанция Хэмминга между рассчитанными simhash двух строк, тем более вероятно, что эти строки одинаковы.

Синтаксис

Аргументы

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

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

  • Хеш-значение. UInt64.

Пример

Запрос:

Результат:

wordShingleSimHash

Разделяет строку ASCII на части (шинглы) размером shinglesize слов и возвращает хеш шингла слова simhash. Учитывает регистр.

Может быть использовано для обнаружения полудубликатов строк с помощью bitHammingDistance. Чем меньше дистанция Хэмминга между рассчитанными simhash двух строк, тем более вероятно, что эти строки одинаковы.

Синтаксис

Аргументы

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

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

  • Хеш-значение. UInt64.

Пример

Запрос:

Результат:

wordShingleSimHashCaseInsensitive

Разделяет строку ASCII на части (шинглы) размером shinglesize слов и возвращает хеш шингла слова simhash. Без учета регистра.

Может быть использовано для обнаружения полудубликатов строк с помощью bitHammingDistance. Чем меньше дистанция Хэмминга между рассчитанными simhash двух строк, тем более вероятно, что эти строки одинаковы.

Синтаксис

Аргументы

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

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

  • Хеш-значение. UInt64.

Пример

Запрос:

Результат:

wordShingleSimHashUTF8

Разделяет строку UTF-8 на части (шинглы) размером shinglesize слов и возвращает хеш шингла слова simhash. Учитывает регистр.

Может быть использовано для обнаружения полудубликатов строк с помощью bitHammingDistance. Чем меньше дистанция Хэмминга между рассчитанными simhash двух строк, тем более вероятно, что эти строки одинаковы.

Синтаксис

Аргументы

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

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

  • Хеш-значение. UInt64.

Пример

Запрос:

Результат:

wordShingleSimHashCaseInsensitiveUTF8

Разделяет строку UTF-8 на части (шинглы) размером shinglesize слов и возвращает хеш шингла слова simhash. Без учета регистра.

Может быть использовано для обнаружения полудубликатов строк с помощью bitHammingDistance. Чем меньше дистанция Хэмминга между рассчитанными simhash двух строк, тем более вероятно, что эти строки одинаковы.

Синтаксис

Аргументы

  • 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).

Пример

Запрос:

Результат:

wordShingleMinHashArg

Разделяет строку ASCII на части (шинглы) размером shinglesize слов и возвращает шинглы с минимальными и максимальными хешами слов, рассчитанными с помощью функции wordShingleMinHash с такими же входными данными. Учитывает регистр.

Синтаксис

Аргументы

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

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

  • Кортеж с двумя кортежами по hashnum слов-шинглов в каждом. Tuple(Tuple(String), Tuple(String)).

Пример

Запрос:

Результат:

wordShingleMinHashArgCaseInsensitive

Разделяет строку ASCII на части (шинглы) размером shinglesize слов и возвращает шинглы с минимальными и максимальными хешами слов, рассчитанными с помощью функции wordShingleMinHashCaseInsensitive с такими же входными данными. Без учета регистра.

Синтаксис

Аргументы

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

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

  • Кортеж с двумя кортежами по hashnum слов-шинглов в каждом. Tuple(Tuple(String), Tuple(String)).

Пример

Запрос:

Результат:

wordShingleMinHashArgUTF8

Разделяет строку UTF-8 на части (шинглы) размером shinglesize слов и возвращает шинглы с минимальными и максимальными хешами слов, рассчитанными с помощью функции wordShingleMinHashUTF8 с такими же входными данными. Учитывает регистр.

Синтаксис

Аргументы

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

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

  • Кортеж с двумя кортежами по hashnum слов-шинглов в каждом. Tuple(Tuple(String), Tuple(String)).

Пример

Запрос:

Результат:

wordShingleMinHashArgCaseInsensitiveUTF8

Разделяет строку UTF-8 на части (шинги) размером shinglesize слов и возвращает шинглы с минимальными и максимальными хэшами слов, вычисленными с помощью функции wordShingleMinHashCaseInsensitiveUTF8 с теми же входными данными. Не учитывает регистр.

Синтаксис

Аргументы

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

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

Пример

Запрос:

Результат:

sqidEncode

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

Синтаксис

Псевдоним: 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, чтобы отформатировать результат в виде шестнадцатеричной закодированной строки.

Запрос:

Результат: