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

Хеш-функции

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

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-folding выполняется до 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 хеш в виде шестнадцатеричной неподеленной FixedString. 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, без одного из завершающих символов /,? или # на конце, если они присутствуют. Уровни такие же, как в 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. Чем меньше расстояние Хэмминга между рассчитанными 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.

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

  • Кортеж с двумя кортежами, каждый из которых содержит по hashnum n-грамм. Tuple(Tuple(String), Tuple(String)).

Пример

Запрос:

Результат:

ngramMinHashArgCaseInsensitive

Разделяет строку ASCII на n-граммы размером ngramsize символов и возвращает n-граммы с минимальными и максимальными хэшами, рассчитанными функцией ngramMinHashCaseInsensitive с теми же входными данными. Не чувствителен к регистру.

Синтаксис

Аргументы

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

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

  • Кортеж с двумя кортежами, каждый из которых содержит по hashnum n-грамм. Tuple(Tuple(String), Tuple(String)).

Пример

Запрос:

Результат:

ngramMinHashArgUTF8

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

Синтаксис

Аргументы

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

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

  • Кортеж с двумя кортежами, каждый из которых содержит по hashnum n-грамм. Tuple(Tuple(String), Tuple(String)).

Пример

Запрос:

Результат:

ngramMinHashArgCaseInsensitiveUTF8

Разделяет строку UTF-8 на n-граммы размером ngramsize символов и возвращает n-граммы с минимальными и максимальными хэшами, рассчитанными функцией ngramMinHashCaseInsensitiveUTF8 с теми же входными данными. Не чувствителен к регистру.

Синтаксис

Аргументы

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

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

  • Кортеж с двумя кортежами, каждый из которых содержит по hashnum n-грамм. Tuple(Tuple(String), Tuple(String)).

Пример

Запрос:

Результат:

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

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

Пример

Запрос:

Результат:

sqidEncode

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

Синтаксис

Псевдоним: sqid

Аргументы

  • Произвольное количество чисел UInt8, UInt16, UInt32 или UInt64.

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

Строка sqid String.

Пример

sqidDecode

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

Синтаксис

Аргументы

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

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

Пример