Другие функции
Приведённая ниже документация по функциям сгенерирована из системной таблицы system.functions.
FQDN
Введена в версии: v20.1
Возвращает полное доменное имя сервера ClickHouse.
Синтаксис
Псевдонимы: fullHostName
Аргументы
- Нет.
Возвращаемое значение
Возвращает полное доменное имя (FQDN) сервера ClickHouse. String
Примеры
Пример использования
MACNumToString
Появилась в версии: v1.1
Интерпретирует число типа UInt64 как MAC-адрес в порядке байтов big-endian.
Возвращает соответствующий MAC-адрес в формате AA:BB:CC:DD:EE:FF (разделённые двоеточиями числа в шестнадцатеричном виде) в виде строки.
Синтаксис
Аргументы
num— число типа UInt64.UInt64
Возвращаемое значение
Возвращает MAC-адрес в формате AA:BB:CC:DD:EE:FF. String
Примеры
Пример использования
MACStringToNum
Добавлена в версии: v1.1
Обратная функция для MACNumToString. Если MAC-адрес имеет неверный формат, возвращает 0.
Синтаксис
Аргументы
s— строка с MAC-адресом.String
Возвращаемое значение
Возвращает число типа UInt64. UInt64
Примеры
Пример использования
MACStringToOUI
Впервые появилась в версии v1.1
Принимает MAC-адрес в формате AA:BB:CC:DD:EE:FF (разделённые двоеточиями числа в шестнадцатеричном формате) и возвращает первые три октета в виде числа типа UInt64. Если MAC-адрес имеет некорректный формат, возвращает 0.
Синтаксис
Аргументы
s— строка с MAC-адресом.String
Возвращаемое значение
Первые три октета в виде числа типа UInt64. UInt64
Примеры
Пример использования
__applyFilter
Добавлена в версии: v25.10
Специальная функция для runtime-фильтрации при выполнении JOIN.
Синтаксис
Аргументы
filter_name— Внутреннее имя фильтра времени выполнения (runtime-фильтра). Формируется на этапе BuildRuntimeFilterStep.Stringkey— Значение любого типа, которое проверяется на наличие в фильтре
Возвращаемое значение
False, если ключ должен быть отфильтрован Bool
Примеры
Пример
__patchPartitionID
Появилась в: v25.5
Внутренняя функция. Получает на вход имя части и хеш имён столбцов патч-части. Возвращает имя партиции патч-части. Аргумент должен быть корректным именем части; в противном случае поведение не определено.
Синтаксис
Аргументы
- Отсутствуют.
Возвращаемое значение
Примеры
authenticatedUser
Введена в версии: v25.11
Если пользователь сессии был переключён с помощью команды EXECUTE AS, эта функция возвращает имя исходного пользователя, который использовался для аутентификации и создания сессии. Псевдоним: authUser()
Синтаксис
Псевдонимы: authUser
Аргументы
- Нет.
Возвращаемое значение
Имя аутентифицированного пользователя. String
Примеры
Пример использования
bar
Добавлена в: v1.1
Строит столбчатую диаграмму. Рисует полосу с шириной, пропорциональной (x - min), и равной width символам, когда x = max. Полоса рисуется с точностью до одной восьмой символа.
Синтаксис
Аргументы
x— Отображаемое значение.(U)Int*илиFloat*илиDecimalmin— Минимальное значение.(U)Int*илиFloat*илиDecimalmax— Максимальное значение.(U)Int*илиFloat*илиDecimalwidth— Необязательный параметр. Ширина полосы в символах. Значение по умолчанию —80.const (U)Int*илиconst Float*илиconst Decimal
Возвращаемое значение
Возвращает строку с Unicode-гистограммой. String
Примеры
Пример использования
blockNumber
Добавлено в версии: v1.1
Возвращает монотонно возрастающий порядковый номер блока, содержащего строку. Возвращаемый номер блока обновляется по принципу best effort, то есть может быть не полностью точным.
Синтаксис
Аргументы
- Нет.
Возвращаемое значение
Порядковый номер блока данных, в котором находится строка. UInt64
Примеры
Базовое использование
blockSerializedSize
Добавлено в версии: v20.3
Возвращает несжатый размер в байтах блока значений, хранящегося на диске.
Синтаксис
Аргументы
x1[, x2, ...]— Произвольное число значений, для которых нужно получить размер блока без сжатия.Any
Возвращаемое значение
Возвращает количество байт, которое будет записано на диск для блока значений без сжатия. UInt64
Примеры
Пример использования
blockSize
Появилась в версии: v1.1
В ClickHouse запросы обрабатываются в блоках (фрагментах). Эта функция возвращает размер блока (число строк), к которому она применяется.
Синтаксис
Аргументы
- Нет аргументов.
Возвращаемое значение
Возвращает количество строк в текущем блоке. UInt64
Примеры
Пример использования
buildId
Появилась в версии v20.5
Возвращает идентификатор сборки (buildId), сгенерированный компилятором для исполняемого бинарного файла сервера ClickHouse. Если функция выполняется в контексте distributed таблицы, она формирует обычный столбец со значениями для каждого сегмента. В противном случае она возвращает константное значение.
Синтаксис
Аргументы
- Нет.
Возвращаемое значение
Возвращает идентификатор сборки. String
Примеры
Пример использования
byteSize
Появилась в версии: v21.1
Возвращает оценку объёма памяти в байтах, занимаемой её аргументами в несжатом виде.
Для аргументов типа String функция возвращает длину строки + 8 (длина).
Если функция вызывается с несколькими аргументами, она суммирует их размеры в байтах.
Синтаксис
Аргументы
arg1[, arg2, ...]— значения любого типа данных, для которых нужно оценить несжатый размер в байтах.Any
Возвращаемое значение
Возвращает примерный размер аргументов в памяти в байтах. UInt64
Примеры
Пример использования
Несколько аргументов
catboostEvaluate
Добавлена в версии: v22.9
Выполняет оценку внешней модели CatBoost. CatBoost — это библиотека градиентного бустинга с открытым исходным кодом, разработанная компанией Яндекс для задач машинного обучения. Принимает путь к модели CatBoost и аргументы модели (признаки).
Предварительные требования
- Соберите библиотеку для оценки моделей CatBoost
Перед тем как оценивать модели CatBoost, необходимо сделать доступной библиотеку libcatboostmodel.<so|dylib>. См. в документации CatBoost, как её скомпилировать.
Затем укажите путь к libcatboostmodel.<so|dylib> в конфигурации ClickHouse:
По соображениям безопасности и изоляции оценка модели выполняется не в серверном процессе, а в процессе clickhouse-library-bridge.
При первом выполнении catboostEvaluate() сервер запускает процесс clickhouse-library-bridge, если он ещё не запущен. Оба процесса
взаимодействуют через HTTP-интерфейс. По умолчанию используется порт 9012. Другой порт можно указать следующим образом — это полезно, если порт
9012 уже занят другим сервисом.
- Обучите модель catboost с помощью libcatboost
См. раздел Training and applying models о том, как обучать модели catboost на основе обучающего набора данных.
Синтаксис
Аргументы
path_to_model— Путь к модели CatBoost.const Stringfeature— Один или несколько признаков/аргументов модели.Float*
Возвращаемое значение
Возвращает результат оценки модели. Float64
Примеры
catboostEvaluate
colorOKLCHToSRGB
Добавлена в v25.7
Преобразует цвет из перцептивного цветового пространства OKLCH в привычное цветовое пространство sRGB.
Если L находится вне диапазона [0...1], C отрицателен или H находится вне диапазона [0...360], результат зависит от реализации.
OKLCH — это цилиндрическая версия цветового пространства OKLab.
Его три координаты — L (светлота в диапазоне [0...1]), C (хрома >= 0) и H (тон в градусах из [0...360])**.
OKLab/OKLCH разработаны как перцептивно равномерные, при этом остаются вычислительно недорогими.
Преобразование является обратным к colorSRGBToOKLCH:
- OKLCH в OKLab.
- OKLab в линейный sRGB.
- Линейный sRGB в sRGB.
Второй аргумент gamma используется на последнем этапе.
Для примеров цветов в пространстве OKLCH и их соответствия цветам sRGB см. http://oklch.com/.
Синтаксис
Аргументы
tuple— Кортеж из трёх числовых значенийL,C,H, гдеLнаходится в диапазоне[0...1],C >= 0, аH— в диапазоне[0...360].Tuple(Float64, Float64, Float64)gamma— Необязательный параметр. Показатель степени, который используется для преобразования линейного sRGB обратно в sRGB, применяя(x ^ (1 / gamma)) * 255для каждого каналаx. Значение по умолчанию —2.2.Float64
Возвращаемое значение
Возвращает кортеж (R, G, B), представляющий значения цвета в пространстве sRGB. Tuple(Float64, Float64, Float64)
Примеры
Преобразование OKLCH в sRGB
colorSRGBToOKLCH
Добавлена в версии: v25.7
Преобразует цвет, закодированный в цветовом пространстве sRGB, в перцептивно равномерное цветовое пространство OKLCH.
Если какой-либо входной канал выходит за пределы диапазона [0...255] или значение гаммы неположительно, поведение определяется реализацией.
OKLCH — это цилиндрическая версия цветового пространства OKLab.
Его три координаты — L (светлота в диапазоне [0...1]), C (цветность, chroma >= 0) и H (тон, hue, в градусах из диапазона [0...360]).
OKLab/OKLCH спроектировано как перцептивно равномерное, при этом остаётся вычислительно недорогим.
Преобразование состоит из трёх этапов:
- sRGB в линейное sRGB
- Линейное sRGB в OKLab
- OKLab в OKLCH.
Для примеров цветов в пространстве OKLCH и их соответствия цветам в sRGB см. http://OKLCH.com/.
Синтаксис
Аргументы
tuple— кортеж из трёх компонент R, G, B в диапазоне[0...255].Tuple(UInt8, UInt8, UInt8)gamma— необязательный параметр. Показатель степени, который используется для линеаризации sRGB путём применения(x / 255)^gammaк каждому каналуx. По умолчанию —2.2.Float64
Возвращаемое значение
Возвращает кортеж (L, C, H), представляющий значения в цветовом пространстве OKLCH. Tuple(Float64, Float64, Float64)
Примеры
Преобразование sRGB в OKLCH
connectionId
Введена в версии v21.3
Возвращает идентификатор соединения клиента, который отправил текущий запрос.
Эта функция наиболее полезна при отладке.
Она была создана для совместимости с функцией MySQL CONNECTION_ID.
Обычно не используется в запросах в продакшене.
Синтаксис
Аргументы
- Отсутствуют.
Возвращаемое значение
Возвращает идентификатор соединения для текущего клиента. UInt64
Примеры
Пример использования
countDigits
Введена в версии v20.8
Возвращает количество десятичных цифр, необходимых для представления значения.
Эта функция учитывает масштаб десятичных значений, то есть вычисляет результат по базовому целочисленному типу, равному (value * scale).
Например:
countDigits(42) = 2countDigits(42.000) = 5countDigits(0.04200) = 4
Вы можете проверять переполнение для Decimal64 с помощью countDigits(x) > 18,
однако это медленнее, чем isDecimalOverflow.
Синтаксис
Аргументы
Возвращаемое значение
Возвращает количество цифр, необходимых для представления числа x. UInt8
Примеры
Пример использования
currentDatabase
Впервые появился в версии v1.1
Возвращает имя текущей базы данных.
Полезен в параметрах движка таблицы в запросах CREATE TABLE, когда нужно указать базу данных.
См. также команду SET.
Синтаксис
Псевдонимы: current_database, SCHEMA, DATABASE
Аргументы
- Отсутствуют.
Возвращаемое значение
Возвращает имя текущей базы данных. String
Примеры
Пример использования
currentProfiles
Добавлена в версии: v21.9
Возвращает массив профилей настроек для текущего пользователя.
Синтаксис
Аргументы
- Отсутствуют.
Возвращаемое значение
Возвращает массив профилей настроек для текущего пользователя. Array(String)
Примеры
Пример использования
currentQueryID
Впервые появилось в версии: v
Возвращает идентификатор текущего запроса.
Синтаксис
Псевдонимы: current_query_id
Аргументы
- Нет.
Возвращаемое значение
Примеры
Пример
currentRoles
Добавлено в: v21.9
Возвращает массив ролей, назначенных текущему пользователю.
Синтаксис
Аргументы
- Отсутствуют.
Возвращаемое значение
Возвращает массив ролей, назначенных текущему пользователю. Array(String)
Примеры
Пример использования
currentSchemas
Впервые появилась в версии v23.7
Та же функция, что и currentDatabase, но
- принимает булевый аргумент, который игнорируется;
- возвращает имя базы данных в виде массива с одним значением.
Функция currentSchemas существует только для совместимости с PostgreSQL.
Используйте вместо неё currentDatabase.
См. также команду SET.
Синтаксис
Псевдонимы: current_schemas
Аргументы
bool— булево значение, которое не используется.Bool
Возвращаемое значение
Возвращает массив из одного элемента с именем текущей базы данных. Array(String)
Примеры
Пример использования
currentUser
Впервые появилась в версии: v20.1
Возвращает имя текущего пользователя. В случае распределённого запроса возвращается имя пользователя, который инициировал запрос.
Синтаксис
Псевдонимы: current_user, user
Аргументы
- Нет.
Возвращаемое значение
Возвращает имя текущего пользователя, в противном случае — логин пользователя, который инициировал запрос. String
Примеры
Пример использования
defaultProfiles
Появилось в версии: v21.9
Возвращает массив имён профилей настроек по умолчанию для текущего пользователя.
Синтаксис
Аргументы
- Нет.
Возвращаемое значение
Возвращает массив имён профилей настроек по умолчанию для текущего пользователя. Array(String)
Примеры
Пример использования
defaultRoles
Добавлено в: v21.9
Возвращает массив ролей по умолчанию для текущего пользователя.
Синтаксис
Аргументы
- Нет.
Возвращаемое значение
Возвращает массив ролей по умолчанию для текущего пользователя. Array(String)
Примеры
Пример использования
defaultValueOfArgumentType
Впервые появилась в: v1.1
Возвращает значение по умолчанию для указанного типа данных. Не включает значения по умолчанию для пользовательских столбцов, заданных пользователем.
Синтаксис
Аргументы
expression— Значение произвольного типа или выражение, которое вычисляется в значение произвольного типа.Any
Возвращаемое значение
Возвращает значение 0 для чисел, пустую строку для строк или NULL для типов Nullable. Значение типа UInt8 или String или NULL
Примеры
Пример использования
Пример типа Nullable
defaultValueOfTypeName
Появилась в версии: v1.1
Возвращает значение по умолчанию для указанного имени типа.
Синтаксис
Аргументы
type— строка, задающая имя типа.String
Возвращаемое значение
Возвращает значение по умолчанию для заданного имени типа: 0 для чисел, пустую строку для строк или NULL для типов Nullable UInt8 и String, а также для значения NULL.
Примеры
Пример использования
Пример типа Nullable
displayName
Добавлена в версии: v22.11
Возвращает значение display_name из config или полное доменное имя сервера (FQDN), если параметр не задан.
Синтаксис
Аргументы
- Нет.
Возвращаемое значение
Возвращает значение display_name из конфигурации или FQDN сервера, если оно не задано. String
Примеры
Пример использования
dumpColumnStructure
Введено в версии: v1.1
Выводит подробное описание внутренней структуры столбца и его типа данных.
Синтаксис
Аргументы
x— Значение, для которого нужно получить описание.Any
Возвращаемое значение
Возвращает описание структуры столбца, используемой для представления этого значения. String
Примеры
Пример использования
enabledProfiles
Добавлена в версии: v21.9
Возвращает массив названий профилей настроек, которые активированы для текущего пользователя.
Синтаксис
Аргументы
- Отсутствуют.
Возвращаемое значение
Возвращает массив названий профилей настроек, которые включены для текущего пользователя. Array(String)
Примеры
Пример использования
enabledRoles
Появилась в версии: v21.9
Возвращает массив ролей, которые активированы для текущего пользователя.
Синтаксис
Аргументы
- Нет.
Возвращаемое значение
Возвращает массив названий ролей, которые активированы для текущего пользователя. Array(String)
Примеры
Пример использования
errorCodeToName
Введена в версии v20.12
Возвращает текстовое имя числового кода ошибки ClickHouse. Соответствие числовых кодов ошибок их именам доступно здесь.
Синтаксис
Аргументы
Возвращаемое значение
Возвращает текстовое название error_code. String
Примеры
Пример использования
file
Появилась в версии v21.3
Читает файл как строку и загружает данные в указанный столбец. Содержимое файла не интерпретируется.
См. также табличную функцию file.
Синтаксис
Аргументы
path— Путь к файлу относительноuser_files_path. Поддерживает шаблоны*,**,?,{abc,def}и{N..M}, гдеN,M— числа, а'abc', 'def'— строки.Stringdefault— Значение, которое возвращается, если файл не существует или к нему нет доступа.StringилиNULL
Возвращаемое значение
Возвращает содержимое файла в виде строки. String
Примеры
Добавление файлов в таблицу
filesystemAvailable
Добавлена в версии: v20.1
Возвращает объём свободного места в файловой системе, на которой размещено хранилище базы данных.
Возвращаемое значение всегда меньше общего свободного места (filesystemUnreserved), поскольку часть пространства зарезервирована для операционной системы.
Синтаксис
Аргументы
disk_name— необязательный параметр. Имя диска, для которого нужно определить объём свободного пространства. Если не указано, используется диск по умолчанию.StringилиFixedString
Возвращаемое значение
Возвращает количество оставшегося свободного пространства в байтах. UInt64
Примеры
Пример использования
filesystemCapacity
Введена в версии v20.1
Возвращает ёмкость файловой системы в байтах. Требует настройки параметра path для каталога данных.
Синтаксис
Аргументы
disk_name— необязательный параметр. Имя диска, для которого нужно получить ёмкость. Если не указано, используется диск по умолчанию.StringилиFixedString
Возвращаемое значение
Возвращает ёмкость файловой системы в байтах. UInt64
Примеры
Пример использования
filesystemUnreserved
Добавлен в: v22.12
Возвращает общий объём свободного места в файловой системе, на которой размещено персистентное хранилище данных базы (ранее filesystemFree).
См. также filesystemAvailable.
Синтаксис
Аргументы
disk_name— необязательный параметр. Имя диска, для которого нужно определить общее количество свободного места. Если не указан, используется диск по умолчанию.StringилиFixedString
Возвращаемое значение
Возвращает количество свободного места в байтах. UInt64
Примеры
Пример использования
finalizeAggregation
Введена в версии v1.1
Функция принимает состояние агрегации и возвращает результат агрегации (или финализированное состояние при использовании комбинатора -State).
Синтаксис
Аргументы
state— состояние агрегации.AggregateFunction
Возвращаемое значение
Возвращает окончательный результат агрегации. Any
Примеры
Пример использования
Совместно с initializeAggregation
flipCoordinates
Добавлена в версии: v25.10
Меняет местами координаты Point, Ring, Polygon или MultiPolygon. Для Point просто переставляет координаты. Для массивов рекурсивно применяет то же преобразование к каждой паре координат.
Синтаксис
Аргументы
geometry— Геометрия для преобразования. Поддерживаемые типы: Point (Tuple(Float64, Float64)), Ring (Array(Point)), Polygon (Array(Ring)), MultiPolygon (Array(Polygon)).
Возвращаемое значение
Геометрия с переставленными координатами. Тип совпадает с входным типом. Point или Ring или Polygon или MultiPolygon
Примеры
basic_point
кольцо
многоугольник
formatQuery
Введена в версии: v
Возвращает отформатированный вариант заданного SQL‑запроса, возможно в несколько строк. Выбрасывает исключение при ошибке разбора. [example:multiline]
Синтаксис
Аргументы
query— SQL-запрос, который нужно отформатировать. String
Возвращаемое значение
Отформатированный запрос типа String
Примеры
multiline
formatQueryOrNull
Добавлено в: v
Возвращает отформатированный SQL-запрос, который при необходимости может занимать несколько строк. В случае ошибки синтаксического анализа возвращает NULL. [example:multiline]
Синтаксис
Аргументы
query— SQL-запрос, который нужно отформатировать. String
Возвращаемое значение
Отформатированный запрос типа String
Примеры
multiline
formatQuerySingleLine
Добавлено в: v
Аналогично formatQuery(), но возвращаемая форматированная строка не содержит разрывов строк. Выбрасывает исключение при ошибке разбора. [example:multiline]
Синтаксис
Аргументы
query— SQL-запрос, который нужно отформатировать. String
Возвращаемое значение
Отформатированный запрос String
Примеры
multiline
formatQuerySingleLineOrNull
Появилась в версии: v
Аналогично функции formatQuery(), но возвращаемая отформатированная строка не содержит переводов строк. Возвращает NULL в случае ошибки разбора. [example:multiline]
Синтаксис
Аргументы
query— SQL-запрос для форматирования.String
Возвращаемое значение
Отформатированный запрос String
Примеры
многострочный
formatReadableDecimalSize
Впервые появилась в версии: v22.11
Получив размер (количество байт), эта функция возвращает удобочитаемый, округлённый размер с суффиксом (KB, MB и т. д.) в виде строки.
Обратной операцией к этой функции является parseReadableSize.
Синтаксис
Аргументы
x— размер в байтах.UInt64
Возвращаемое значение
Возвращает строку с удобочитаемым, округлённым размером и суффиксом. String
Примеры
Форматирование размеров файлов
formatReadableQuantity
Введена в версии: v20.10
Эта функция по заданному числу возвращает округлённое значение со строковым суффиксом (тысяча, миллион, миллиард и т. д.).
Функция принимает на вход значение любого числового типа, но внутри преобразует его к Float64.
При очень больших значениях результаты могут быть неидеальными.
Синтаксис
Аргументы
x— число, которое нужно отформатировать.UInt64
Возвращаемое значение
Возвращает округлённое число с суффиксом в строковом формате. String
Примеры
Форматирование чисел с суффиксами
formatReadableSize
Впервые представлена в: v1.1
Для заданного размера (количества байт) эта функция возвращает читаемый, округлённый размер с суффиксом единиц (KiB, MiB и т. д.) в виде строки.
Обратными операциями к этой функции являются parseReadableSize, parseReadableSizeOrZero и parseReadableSizeOrNull.
Эта функция принимает любой числовой тип в качестве входного значения, но внутренне приводит значения к типу Float64. Результаты могут быть неоптимальными для очень больших значений.
Синтаксис
Псевдонимы: FORMAT_BYTES
Аргументы
x— размер в байтах.UInt64
Возвращаемое значение
Возвращает человекочитаемый округлённый размер с суффиксом единицы измерения в виде значения типа строки. String
Примеры
Форматирование размеров файлов
formatReadableTimeDelta
Добавлена в: v20.12
Для заданного временного интервала (дельты) в секундах эта функция возвращает этот интервал в виде строки с годами/месяцами/днями/часами/минутами/секундами/миллисекундами/микросекундами/наносекундами.
Эта функция принимает на вход любой числовой тип, но внутри преобразует его к Float64. Результаты могут быть неоптимальными при больших значениях.
Синтаксис
Аргументы
column— Столбец с числовым значением дельты времени.Float64maximum_unit— Необязательный параметр. Максимальная единица времени для отображения. Допустимые значения:nanoseconds,microseconds,milliseconds,seconds,minutes,hours,days,months,years. Значение по умолчанию:years.const Stringminimum_unit— Необязательный параметр. Минимальная единица времени для отображения. Все более мелкие единицы усекаются. Допустимые значения:nanoseconds,microseconds,milliseconds,seconds,minutes,hours,days,months,years. Если явно заданное значение большеmaximum_unit, будет сгенерировано исключение. Значение по умолчанию:seconds, еслиmaximum_unitравноsecondsили больше, иначеnanoseconds.const String
Возвращаемое значение
Возвращает дельту времени в виде строки. String
Примеры
Пример использования
С максимальной единицей измерения
generateRandomStructure
Впервые появилась в версии v23.5
Генерирует случайную структуру таблицы в формате column1_name column1_type, column2_name column2_type, ....
Синтаксис
Аргументы
number_of_columns— требуемое количество столбцов в результирующей структуре таблицы. Если значение равно 0 илиNull, количество столбцов выбирается случайным образом в диапазоне от 1 до 128. Значение по умолчанию:Null.UInt64seed— начальное значение (seed) генератора случайных чисел для получения стабильных результатов. Если seed не задан или установлен вNull, он генерируется случайным образом.UInt64
Возвращаемое значение
Случайно сгенерированная структура таблицы. String
Примеры
Пример использования
с заданным количеством столбцов
с заданным значением seed
generateSerialID
Впервые добавлена в: v25.1
Генерирует и возвращает последовательные числа, начиная с предыдущего значения счётчика.
Эта функция принимает строковый аргумент — идентификатор серии, а также необязательное начальное значение.
Сервер должен быть настроен с Keeper.
Серии хранятся в узлах Keeper по пути, который можно задать параметром series_keeper_path в конфигурации сервера.
Синтаксис
Аргументы
series_identifier— идентификатор серииconst Stringstart_value— необязательный параметр. Начальное значение счётчика, по умолчанию 0. Примечание: это значение используется только при создании новой серии и игнорируется, если серия уже существуетUInt*
Возвращаемое значение
Возвращает последовательность чисел, начиная с предыдущего значения счётчика. UInt64
Примеры
первый вызов
второй вызов
обращение к столбцу
с начальным значением
со стартовым значением, второй вызов
getClientHTTPHeader
Добавлено в: v24.5
Получает значение HTTP-заголовка.
Если такого заголовка нет или текущий запрос не выполняется через HTTP-интерфейс, функция возвращает пустую строку.
Некоторые HTTP-заголовки (например, Authentication и X-ClickHouse-*) недоступны для получения.
allow_get_client_http_headerДля работы функции необходимо, чтобы настройка allow_get_client_http_header была включена.
По соображениям безопасности настройка по умолчанию отключена, так как некоторые заголовки, такие как Cookie, могут содержать конфиденциальную информацию.
Для этой функции в HTTP-заголовках учитывается регистр. Если функция используется в контексте распределённого запроса, она возвращает непустой результат только на инициирующем узле.
Синтаксис
Аргументы
name— имя HTTP-заголовка.String
Возвращаемое значение
Возвращает значение заголовка. String
Примеры
Пример использования
getMacro
Впервые появилась в: v20.1
Возвращает значение макроса из конфигурационного файла сервера.
Макросы определяются в разделе <macros> конфигурационного файла и могут использоваться для различения серверов по удобным именам, даже если у них сложные hostnames.
Если функция выполняется в контексте distributed таблицы, она генерирует обычный столбец со значениями, соответствующими каждому сегменту.
Синтаксис
Аргументы
name— Имя макроса, значение которого нужно получить.const String
Возвращаемое значение
Возвращает значение указанного макроса. String
Примеры
Базовое использование
getMaxTableNameLengthForDatabase
Появилась в версии: v
Возвращает максимально допустимую длину имени таблицы в указанной базе данных.
Синтаксис
Аргументы
database_name— имя указанной базы данных.String
Возвращаемое значение
Возвращает максимальную длину имени таблицы в виде целого числа.
Примеры
типичный пример
getMergeTreeSetting
Введена в версии: v25.6
Возвращает текущее значение настройки MergeTree.
Синтаксис
Аргументы
setting_name— имя настройки.String
Возвращаемое значение
Возвращает текущее значение настройки MergeTree.
Примеры
Пример использования
getOSKernelVersion
Появилась в версии: v21.11
Возвращает строку с версией ядра операционной системы.
Синтаксис
Аргументы
- Нет.
Возвращаемое значение
Возвращает текущую версию ядра ОС. String
Примеры
Пример использования
getServerPort
Появилась в версии: v21.10
Возвращает номер порта сервера для заданного протокола.
Синтаксис
Аргументы
port_name— Имя порта.String
Возвращаемое значение
Возвращает номер серверного порта. UInt16
Примеры
Пример использования
getServerSetting
Введено в: v25.6
Возвращает текущее значение параметра сервера по его имени.
Синтаксис
Аргументы
setting_name— Имя настройки сервера.String
Возвращаемое значение
Возвращает текущее значение настройки сервера. Any
Примеры
Пример использования
getSetting
Появилась в версии: v20.7
Возвращает текущее значение настройки.
Синтаксис
Аргументы
setting_Name— Имя настройки.const String
Возвращаемое значение
Возвращает текущее значение настройки. Any
Примеры
Пример использования
getSettingOrDefault
Добавлена в: v24.10
Возвращает текущее значение настройки или значение по умолчанию, указанное во втором аргументе, если настройка не задана в текущем профиле.
Синтаксис
Аргументы
setting_name— имя настройки.Stringdefault_value— значение, которое возвращается, если custom_setting не задана. Значение может иметь любой тип данных или быть Null.
Возвращаемое значение
Возвращает текущее значение указанной настройки или default_value, если настройка не задана.
Примеры
Пример использования
getSizeOfEnumType
Впервые появилась в версии v1.1
Возвращает количество элементов в заданном типе Enum.
Синтаксис
Аргументы
x— значение типаEnum.Enum
Возвращаемое значение
Возвращает количество полей со значениями типа Enum на входе функции. UInt8/16
Примеры
Пример использования
getSubcolumn
Введена в версии: v
Принимает выражение или идентификатор и константную строку с именем подстолбца.
Возвращает запрошенный подстолбец, извлечённый из выражения.
Синтаксис
Аргументы
- Нет.
Возвращаемое значение
Примеры
getSubcolumn
getTypeSerializationStreams
Добавлена в версии v22.6
Перечисляет пути потоков сериализации типа данных. Эта функция предназначена для использования в процессе разработки.
Синтаксис
Аргументы
col— столбец или строковое представление типа данных, на основе которого определяется тип данных.Any
Возвращаемое значение
Возвращает массив со всеми путями подпотоков сериализации. Array(String)
Примеры
tuple
map
globalVariable
Добавлено в: v20.5
Принимает строковый константный аргумент и возвращает значение глобальной переменной с этим именем. Эта функция предназначена для совместимости с MySQL и не требуется и не полезна для нормальной работы ClickHouse. Задано лишь несколько фиктивных глобальных переменных.
Синтаксис
Аргументы
name— имя глобальной переменной.String
Возвращаемое значение
Возвращает значение переменной name. Any
Примеры
globalVariable
hasColumnInTable
Введена в версии: v1.1
Проверяет, существует ли конкретный столбец в таблице базы данных.
Для элементов вложенной структуры данных функция проверяет наличие столбца.
Для самой вложенной структуры данных функция возвращает 0.
Синтаксис
Аргументы
database— Имя базы данных.const Stringtable— Имя таблицы.const Stringcolumn— Имя столбца.const Stringhostname— Необязательный параметр. Имя удалённого сервера, на котором выполняется проверка.const Stringusername— Необязательный параметр. Имя пользователя для удалённого сервера.const Stringpassword— Необязательный параметр. Пароль для удалённого сервера.const String
Возвращаемое значение
Возвращает 1, если указанный столбец существует, и 0 в противном случае. UInt8
Примеры
Проверка существующего столбца
Проверка отсутствующего столбца
hasThreadFuzzer
Появилась в версии v20.6
Возвращает, включён ли thread fuzzer. Эта функция полезна только для тестирования и отладки.
Синтаксис
Аргументы
- Нет.
Возвращаемое значение
Возвращает, работает ли Thread Fuzzer. UInt8
Примеры
Проверка статуса Thread Fuzzer
hostName
Введена в версии: v20.5
Возвращает имя хоста, на котором была выполнена эта функция. Если функция выполняется на удалённом сервере (распределённая обработка), возвращается имя удалённого сервера. Если функция выполняется в контексте distributed таблицы, она генерирует обычный столбец со значениями, соответствующими каждому сегменту. В противном случае она возвращает константное значение.
Синтаксис
Псевдонимы: hostname
Аргументы
- Нет.
Возвращаемое значение
Возвращает имя хоста. String
Примеры
Пример использования
icebergBucket
Введена в версии: v25.5
Реализует логику bucket-преобразования Iceberg
Синтаксис
Аргументы
N— Количество бакетов (модуль).const (U)Int*value— Исходное значение для преобразования.(U)Int*илиBoolилиDecimalилиFloat*илиStringилиFixedStringилиUUIDилиDateилиTimeилиDateTime
Возвращаемое значение
Возвращает 32-битный хеш исходного значения. Int32
Примеры
Пример
icebergTruncate
Добавлен в: v25.3
Реализует логику Iceberg-трансформации truncate: http://iceberg.apache.org/spec/#truncate-transform-details.
Синтаксис
Аргументы
Возвращаемое значение
Тип совпадает с типом аргумента.
Примеры
Пример
identity
Введена в версии v1.1
Эта функция возвращает аргумент, который ей передаётся, что полезно для отладки и тестирования. Она позволяет обойти использование индексов, чтобы вместо этого оценить производительность полного сканирования. Анализатор запросов игнорирует всё, что находится внутри функций identity при поиске используемых индексов, а также отключает свёртку констант.
Синтаксис
Аргументы
x— входное значение.Any
Возвращаемое значение
Возвращает входное значение без изменений. Any
Примеры
Пример использования
ignore
Появилась в версии v1.1
Принимает произвольные аргументы и безусловно возвращает 0.
Синтаксис
Аргументы
x— входное значение, которое не используется и передаётся только для предотвращения синтаксической ошибки.Any
Возвращаемое значение
Всегда возвращает 0. UInt8
Примеры
Пример использования
indexHint
Введена в версии: v1.1
Эта функция предназначена для отладки и интроспекции. Она игнорирует свой аргумент и всегда возвращает 1. Аргументы не вычисляются.
Однако при анализе индекса предполагается, что аргумент этой функции не обёрнут в indexHint.
Это позволяет выбирать данные в диапазонах индекса по соответствующему условию, но без последующей фильтрации по этому условию.
Индекс в ClickHouse разреженный, и использование indexHint приведёт к выбору большего объёма данных, чем при указании того же условия напрямую.
Синтаксис
Аргументы
expression— Любое выражение для выбора диапазона индекса.Expression
Возвращаемое значение
Во всех случаях возвращает значение 1. UInt8
Примеры
Пример использования с фильтрацией по дате
initialQueryID
Впервые появилась в версии v1.1
Возвращает ID исходного запроса для текущего запроса.
Другие параметры запроса можно извлечь из поля initial_query_id в таблице system.query_log.
В отличие от функции queryID, initialQueryID возвращает одинаковые результаты на разных сегментах.
Синтаксис
Псевдонимы: initial_query_id
Аргументы
- нет.
Возвращаемое значение
Возвращает идентификатор исходного текущего запроса. String
Примеры
Пример использования
initialQueryStartTime
Введено в: v25.4
Возвращает время начала исходного запроса.
initialQueryStartTime возвращает одинаковые результаты на разных сегментах.
Синтаксис
Псевдонимы: initial_query_start_time
Аргументы
- Нет.
Возвращаемое значение
Возвращает время начала исходного (первоначального) запроса. DateTime
Примеры
Пример использования
initializeAggregation
Впервые появилась в: v20.6
Вычисляет результат агрегатной функции на основании одного значения.
Эта функция может использоваться для инициализации агрегатных функций с комбинатором -State.
Вы можете создавать состояния агрегатных функций и вставлять их в столбцы типа AggregateFunction или использовать инициализированные агрегатные функции как значения по умолчанию.
Синтаксис
Аргументы
aggregate_function— имя агрегатной функции для инициализации.Stringarg1[, arg2, ...]— аргументы агрегатной функции.Any
Возвращаемое значение
Возвращает результат агрегации для каждой строки, переданной функции. Тип возвращаемого значения совпадает с типом возвращаемого значения функции, которую initializeAggregation принимает в качестве первого аргумента. Any
Примеры
Базовое использование с uniqState
Использование с sumState и finalizeAggregation
isConstant
Добавлена в версии: v20.3
Возвращает, является ли аргумент константным выражением. Константное выражение — это выражение, результат которого известен во время анализа запроса, то есть до выполнения. Например, выражения с литералами являются константными выражениями. Эта функция в основном предназначена для разработки, отладки и демонстрации.
Синтаксис
Аргументы
x— выражение для проверки.Any
Возвращаемое значение
Возвращает 1, если x — константа, и 0, если x — не константа. UInt8
Примеры
Константное выражение
Константа с использованием функции
Неконстантное выражение
Поведение функции now()
isDecimalOverflow
Добавлено в: v20.8
Проверяет, содержит ли десятичное число слишком много цифр, чтобы корректно помещаться в тип данных Decimal с заданной точностью.
Синтаксис
Аргументы
value— десятичное значение для проверки.Decimalprecision— необязательный параметр. Точность типа Decimal. Если параметр опущен, используется исходная точность первого аргумента.UInt8
Возвращаемое значение
Возвращает 1, если десятичное значение содержит больше цифр, чем допускается его точностью, и 0, если десятичное значение соответствует указанной точности. UInt8
Примеры
Пример использования
joinGet
Добавлена в версии: v18.16
Позволяет извлекать данные из таблицы так же, как из словаря. Извлекает данные из таблиц с движком Join, используя указанный ключ соединения.
Поддерживает только таблицы, созданные с помощью оператора ENGINE = Join(ANY, LEFT, <join_keys>) statement.
Синтаксис
Аргументы
join_storage_table_name— идентификатор, который указывает, где выполнять поиск. Идентификатор ищется в базе данных по умолчанию (см. параметрdefault_databaseв конфигурационном файле). Чтобы переопределить базу данных по умолчанию, используйте запросUSE database_nameили укажите базу данных и таблицу через точку, напримерdatabase_name.table_name.Stringvalue_column— имя столбца таблицы, который содержит требуемые данные.const Stringjoin_keys— список ключей соединения.Any
Возвращаемое значение
Возвращает список значений, соответствующих списку ключей. Any
Примеры
Пример использования
Использование с таблицей текущей базы данных
Использование массивов в качестве ключей соединения
joinGetOrNull
Введена в версии: v20.4
Позволяет извлекать данные из таблицы так же, как из словаря.
Извлекает данные из таблиц Join, используя указанный ключ соединения.
В отличие от joinGet, возвращает NULL, когда ключ отсутствует.
Поддерживает только таблицы, созданные с помощью оператора ENGINE = Join(ANY, LEFT, <join_keys>) statement.
Синтаксис
Аргументы
join_storage_table_name— идентификатор, определяющий, где выполнять поиск. По умолчанию поиск выполняется в базе данных по умолчанию (см. параметр default_database в конфигурационном файле). Чтобы переопределить базу данных по умолчанию, используйте запросUSE database_nameили укажите базу данных и таблицу через точку, напримерdatabase_name.table_name.Stringvalue_column— имя столбца таблицы, который содержит требуемые данные.const Stringjoin_keys— список ключей соединения.Any
Возвращаемое значение
Возвращает список значений, соответствующих списку ключей, или NULL, если ключ не найден. Any
Примеры
Пример использования
lowCardinalityIndices
Появилась в версии: v18.12
Возвращает позицию значения в словаре столбца типа LowCardinality. Отсчёт позиций начинается с 1. Поскольку у LowCardinality словари создаются отдельно для каждой части, эта функция может возвращать разные позиции для одного и того же значения в разных частях.
Синтаксис
Аргументы
col— столбец с низкой кардинальностью.LowCardinality
Возвращаемое значение
Позиция значения в словаре текущей части. UInt64
Примеры
Примеры использования
lowCardinalityKeys
Появилась в версии: v18.12
Возвращает значения словаря для столбца LowCardinality. Если блок меньше или больше размера словаря, результат будет обрезан или дополнен значениями по умолчанию. Поскольку LowCardinality имеют отдельные словари для каждой части, эта функция может возвращать разные значения словаря в разных частях.
Синтаксис
Аргументы
col— столбецLowCardinality.LowCardinality
Возвращаемое значение
Возвращает ключи словаря. UInt64
Примеры
lowCardinalityKeys
materialize
Добавлена в: v1.1
Преобразует константу в полноценный столбец, содержащий одно значение. Полноценные столбцы и константы по-разному представляются в памяти. Функции обычно выполняют различный код для обычных и константных аргументов, хотя результат, как правило, должен быть одинаковым. Эту функцию можно использовать для отладки такого поведения.
Синтаксис
Аргументы
x— константа.Any
Возвращаемое значение
Возвращает полный столбец, содержащий константное значение. Any
Примеры
Пример использования
minSampleSizeContinuous
Добавлена в версии v23.10
Вычисляет минимально необходимый размер выборки для A/B-теста, сравнивающего средние значения непрерывной метрики в двух выборках.
Использует формулу, описанную в этой статье. Предполагает равные размеры экспериментальной и контрольной групп. Возвращает требуемый размер выборки для одной из групп (то есть размер выборки, необходимый для всего эксперимента, вдвое больше возвращаемого значения). Также предполагает равенство дисперсий тестируемой метрики в экспериментальной и контрольной группах.
Синтаксис
Псевдонимы: minSampleSizeContinous
Аргументы
baseline— Базовое значение метрики.(U)Int*илиFloat*sigma— Базовое стандартное отклонение метрики.(U)Int*илиFloat*mde— Минимальный обнаруживаемый эффект (MDE) в долях от базового значения (например, для базового значения 112.25 значение MDE 0.03 означает ожидаемое изменение до 112.25 ± 112.25*0.03).(U)Int*илиFloat*power— Требуемая статистическая мощность теста (1 − вероятность ошибки второго рода).(U)Int*илиFloat*alpha— Требуемый уровень значимости теста (вероятность ошибки первого рода).(U)Int*илиFloat*
Возвращаемое значение
Возвращает именованный Tuple с 3 элементами: minimum_sample_size, detect_range_lower и detect_range_upper. Это соответственно: требуемый размер выборки, нижняя граница диапазона значений, не обнаруживаемых при возвращённом требуемом размере выборки и вычисляемая как baseline * (1 - mde), и верхняя граница диапазона значений, не обнаруживаемых при возвращённом требуемом размере выборки и вычисляемая как baseline * (1 + mde) (Float64). Tuple(Float64, Float64, Float64)
Примеры
minSampleSizeContinuous
minSampleSizeConversion
Добавлена в версии: v22.6
Вычисляет минимально необходимый размер выборки для A/B‑теста, сравнивающего конверсии (доли) в двух выборках.
Используется формула, описанная в этой статье. Предполагаются равные размеры экспериментальной и контрольной групп. Возвращает требуемый размер выборки для одной группы (т. е. требуемый размер выборки для всего эксперимента вдвое больше возвращаемого значения).
Синтаксис
Аргументы
baseline— Базовое значение конверсии.Float*mde— Минимальный обнаруживаемый эффект (MDE) в процентных пунктах (например, для базовой конверсии 0.25 значение MDE 0.03 означает ожидаемое изменение до 0.25 ± 0.03).Float*power— Требуемая статистическая мощность теста (1 — вероятность ошибки II рода).Float*alpha— Требуемый уровень значимости теста (вероятность ошибки I рода).Float*
Возвращаемое значение
Возвращает именованный кортеж (Tuple) с 3 элементами: minimum_sample_size, detect_range_lower, detect_range_upper. Это, соответственно: требуемый размер выборки; нижняя граница диапазона значений, не обнаруживаемых при полученном требуемом размере выборки, вычисляемая как baseline - mde; верхняя граница диапазона значений, не обнаруживаемых при полученном требуемом размере выборки, вычисляемая как baseline + mde. Tuple(Float64, Float64, Float64)
Примеры
minSampleSizeConversion
neighbor
Введена в: v20.1
Возвращает значение из столбца на заданном смещении от текущей строки. Эта функция устарела и подвержена ошибкам, поскольку она работает с физическим порядком блоков данных, который может не соответствовать логическому порядку, ожидаемому пользователями. Вместо неё рекомендуется использовать полноценные оконные функции.
Функцию можно включить, установив allow_deprecated_error_prone_window_functions = 1.
Синтаксис
Аргументы
column— Исходный столбец.Anyoffset— Смещение относительно текущей строки. Положительные значения — вперёд, отрицательные — назад.Integerdefault_value— Необязательный аргумент. Значение, которое возвращается, если смещение выходит за границы данных. Если не указано, используется значение по умолчанию для типа столбца.Any
Возвращаемое значение
Возвращает значение по указанному смещению или значение по умолчанию, если смещение выходит за границы данных. Any
Примеры
Пример использования
Со значением по умолчанию
nested
Впервые появилась в: v
Эта функция используется внутри движка ClickHouse и не предназначена для непосредственного использования.
Возвращает массив кортежей, сформированных из нескольких массивов.
Первый аргумент должен быть константным массивом строк (String), задающим имена результирующего Tuple.
Остальные аргументы должны быть массивами одинакового размера.
Синтаксис
Аргументы
- Отсутствуют.
Возвращаемое значение
Примеры
Вложенный
normalizeQuery
Введено в: v20.8
Заменяет литералы, последовательности литералов и сложные псевдонимы (содержащие пробелы, более двух цифр или имеющие длину не менее 36 байт, например, UUID) на подстановочный символ ?.
Синтаксис
Аргументы
x— последовательность символов.String
Возвращаемое значение
Возвращает указанную последовательность символов с плейсхолдерами. String
Примеры
Пример использования
normalizeQueryKeepNames
Впервые появился в версии: v21.2
Заменяет литералы и их последовательности на плейсхолдер ?, но не затрагивает сложные псевдонимы (содержащие пробелы, более двух цифр или длиной не менее 36 байт, например UUID).
Это помогает более эффективно анализировать сложные логи запросов.
Синтаксис
Аргументы
x— последовательность символов.String
Возвращаемое значение
Возвращает указанную последовательность символов с заполнителями. String
Примеры
Пример использования
normalizedQueryHash
Введена в версии: v20.8
Возвращает одинаковые 64-битные хеш-значения для похожих запросов, не учитывая значения литералов. Может быть полезна при анализе логов запросов.
Синтаксис
Аргументы
x— последовательность символов.String
Возвращаемое значение
Возвращает 64-битное хэш-значение. UInt64
Примеры
Пример использования
normalizedQueryHashKeepNames
Впервые появилась в версии v21.2
Как и normalizedQueryHash, возвращает одинаковые 64-битные хэши без учёта значений литералов для похожих запросов, но при этом не заменяет сложные псевдонимы (содержащие пробелы, более двух цифр или имеющие длину не менее 36 байт, например UUID) на плейсхолдер перед вычислением хэша.
Может быть полезно при анализе логов запросов.
Синтаксис
Аргументы
x— последовательность символов.String
Возвращаемое значение
Возвращает 64-битное значение хэша. UInt64
Примеры
Пример использования
parseReadableSize
Добавлена в версии: v24.6
Если строка содержит размер в байтах и единицу измерения B, KiB, KB, MiB, MB и т. д. (т. е. ISO/IEC 80000-13 или десятичную единицу объёма данных в байтах), эта функция возвращает соответствующее количество байт.
Если функции не удаётся разобрать входное значение, она генерирует исключение.
Обратными операциями к этой функции являются formatReadableSize и formatReadableDecimalSize.
Синтаксис
Аргументы
x— Человекочитаемый размер в единицах ISO/IEC 80000-13 или в десятичных единицах байта.String
Возвращаемое значение
Возвращает количество байт, округлённое вверх до ближайшего целого числа. UInt64
Примеры
Пример использования
parseReadableSizeOrNull
Добавлена в версии: v24.6
Функция принимает строку, содержащую размер в байтах и единицу измерения B, KiB, KB, MiB, MB и т. д. (т. е. ISO/IEC 80000-13 или десятичную единицу измерения объёма данных в байтах), и возвращает соответствующее количество байт.
Если функция не может распарсить входное значение, она возвращает NULL.
Обратными операциями для этой функции являются formatReadableSize и formatReadableDecimalSize.
Синтаксис
Аргументы
x— Размер в читаемом виде в единицах ISO/IEC 80000-13 или в десятичных единицах байта.String
Возвращаемое значение
Возвращает количество байт, округлённое в большую сторону до ближайшего целого, или NULL, если не удаётся разобрать входную строку Nullable(UInt64)
Примеры
Пример использования
parseReadableSizeOrZero
Добавлено в: v24.6
При передаче строки, содержащей размер в байтах и единицу измерения B, KiB, KB, MiB, MB и т. д. (т. е. в формате ISO/IEC 80000-13 или с десятичной единицей измерения байтов), эта функция возвращает соответствующее количество байт.
Если функция не может распознать входную строку, она возвращает 0.
Обратными операциями к этой функции являются formatReadableSize и formatReadableDecimalSize.
Синтаксис
Аргументы
x— Размер в человекочитаемом формате с использованием единиц по ISO/IEC 80000-13 или десятичных единиц.String
Возвращаемое значение
Возвращает количество байт, округлённое до ближайшего большего целого, или 0, если не удалось распознать входное значение. UInt64
Примеры
Пример использования
parseTimeDelta
Введена в версии: v22.7
Разбирает последовательность чисел, после которых следует что‑то, напоминающее единицу времени.
Строка временного интервала использует следующие обозначения единиц времени:
years,year,yr,ymonths,month,moweeks,week,wdays,day,dhours,hour,hr,hminutes,minute,min,mseconds,second,sec,smilliseconds,millisecond,millisec,msmicroseconds,microsecond,microsec,μs,µs,usnanoseconds,nanosecond,nanosec,ns
Несколько единиц времени можно комбинировать, используя разделители (пробел, ;, -, +, ,, :).
Длительности года и месяца являются приближенными: год — 365 дней, месяц — 30,5 дня.
Синтаксис
Аргументы
timestr— последовательность цифр, за которой следует обозначение единицы времени.String
Возвращаемое значение
Количество секунд. Float64
Примеры
Пример использования
Составные единицы времени
partitionId
Появилась в версии: v21.4
Вычисляет ID партиции.
Эта функция работает медленно и не должна вызываться для большого количества строк.
Синтаксис
Псевдонимы: partitionID
Аргументы
column1, column2, ...— Столбцы, для которых возвращается идентификатор партиции.
Возвращаемое значение
Возвращает идентификатор партиции, к которой принадлежит строка. String
Примеры
Пример использования
queryID
Введено в версии: v21.9
Возвращает идентификатор текущего запроса.
Другие параметры запроса можно извлечь из столбца query_id в таблице system.query_log.
В отличие от функции initialQueryID, queryID может возвращать разные результаты на разных сегментах.
Синтаксис
Псевдонимы: query_id
Аргументы
- Нет.
Возвращаемое значение
Возвращает идентификатор текущего запроса. String
Примеры
Пример использования
revision
Добавлена в версии: v22.7
Возвращает текущую ревизию сервера ClickHouse.
Синтаксис
Аргументы
- Отсутствуют.
Возвращаемое значение
Возвращает текущую ревизию сервера ClickHouse. UInt32
Примеры
Пример использования
rowNumberInAllBlocks
Добавлена в версии v1.1
Возвращает уникальный номер для каждой обрабатываемой строки.
Синтаксис
Аргументы
- Нет.
Возвращаемое значение
Возвращает порядковый номер строки в блоке данных, начиная с 0. UInt64
Примеры
Пример использования
rowNumberInBlock
Добавлена в версии v1.1
Для каждого блока функция rowNumberInBlock возвращает номер текущей строки.
Возвращаемый номер начинается с 0 для каждого блока.
Синтаксис
Аргументы
- Нет.
Возвращаемое значение
Возвращает порядковый номер строки в блоке данных, начиная с 0. UInt64
Примеры
Пример использования
runningAccumulate
Впервые представлена в: v1.1
Накопливает состояния агрегатной функции для каждой строки блока данных.
Состояние сбрасывается для каждого нового блока данных.
Из-за такого подверженного ошибкам поведения функция признана устаревшей, и вместо неё рекомендуется использовать оконные функции.
Вы можете использовать SETTING allow_deprecated_error_prone_window_functions, чтобы разрешить использование этой функции.
Синтаксис
Аргументы
agg_state— состояние агрегатной функции.AggregateFunctiongrouping— необязательный параметр. Ключ группировки. Состояние функции сбрасывается, если значениеgroupingизменяется. Может иметь любой из поддерживаемых типов данных, для которых определён оператор сравнения на равенство.Any
Возвращаемое значение
Возвращает накопленный результат для каждой строки. Any
Примеры
Пример использования initializeAggregation
runningConcurrency
Введена в версии v21.3
Вычисляет количество одновременных событий. Каждое событие имеет время начала и время окончания. Время начала включается в событие, а время окончания исключается. Столбцы с временем начала и временем окончания должны быть одного типа данных. Функция вычисляет общее количество активных (одновременных) событий для каждого времени начала события.
События должны быть отсортированы по времени начала в порядке возрастания. Если это требование нарушено, функция выбрасывает исключение. Каждый блок данных обрабатывается отдельно. Если события из разных блоков данных перекрываются, то они не могут быть корректно обработаны.
Рекомендуется вместо этого использовать оконные функции.
Синтаксис
Аргументы
start— столбец с временем начала событий.DateилиDateTimeилиDateTime64end— столбец с временем окончания событий.DateилиDateTimeилиDateTime64
Возвращаемое значение
Возвращает количество одновременных событий в момент начала каждого события. UInt32
Примеры
Пример использования
runningDifference
Впервые появилась в: v1.1
Вычисляет разность между значениями двух последовательных строк в блоке данных.
Возвращает 0 для первой строки и для последующих строк — разность с предыдущей строкой.
Возвращает разности только внутри текущего обрабатываемого блока данных. Из-за такого потенциально ошибочного поведения функция признана устаревшей. Рекомендуется использовать вместо неё оконные функции.
Вы можете использовать настройку allow_deprecated_error_prone_window_functions, чтобы разрешить использование этой функции.
Результат функции зависит от затронутых блоков данных и порядка данных в блоке.
Порядок строк при вычислении runningDifference() может отличаться от порядка строк, возвращаемых пользователю.
Чтобы избежать этого, вы можете создать подзапрос с ORDER BY и вызвать функцию во внешнем запросе.
Обратите внимание, что размер блока влияет на результат.
Внутреннее состояние runningDifference сбрасывается для каждого нового блока.
Синтаксис
Аргументы
x— столбец, для которого вычисляется разность между соседними значениями.Any
Возвращаемое значение
Возвращает разность между последовательными значениями, при этом для первой строки возвращается 0.
Примеры
Пример использования
Пример влияния размера блока
runningDifferenceStartingWithFirstValue
Введена в: v1.1
Вычисляет разность между значениями последовательных строк в блоке данных, но, в отличие от runningDifference, возвращает фактическое значение первой строки вместо 0.
Возвращает разности только внутри текущего обрабатываемого блока данных. Из‑за такого потенциально ошибочного поведения функция объявлена устаревшей. Рекомендуется вместо неё использовать оконные функции.
Вы можете использовать SETTING allow_deprecated_error_prone_window_functions, чтобы разрешить использование этой функции.
Синтаксис
Аргументы
x— столбец, для которого вычисляется разность между последовательными значениями.Any
Возвращаемое значение
Возвращает разность между последовательными значениями; в первой строке возвращается значение первой строки. Any
Примеры
Пример использования
serverUUID
Добавлено в: v20.1
Возвращает случайный уникальный UUID (v4), сгенерированный при первом запуске сервера. UUID сохраняется, т.е. при втором, третьем и последующих запусках сервера возвращается тот же UUID.
Синтаксис
Аргументы
- Нет.
Возвращаемое значение
Возвращает случайный UUID сервера. UUID
Примеры
Пример использования
shardCount
Добавлена в версии v21.9
Возвращает общее количество сегментов для распределённого запроса.
Если запрос не является распределённым, возвращается константное значение 0.
Синтаксис
Аргументы
- Нет аргументов.
Возвращаемое значение
Возвращает общее количество сегментов или 0. UInt32
Примеры
Пример использования
shardNum
Появилось в версии: v21.9
Возвращает индекс сегмента, который обрабатывает часть данных в распределённом запросе.
Индексы начинаются с 1.
Если запрос не является распределённым, возвращается константное значение 0.
Синтаксис
Аргументы
- Нет.
Возвращаемое значение
Возвращает индекс сегмента или константу 0. UInt32
Примеры
Пример использования
showCertificate
Появился в версии: v22.6
Отображает информацию о текущем SSL-сертификате (Secure Sockets Layer) сервера, если он настроен. См. раздел Configuring SSL-TLS для получения дополнительной информации о том, как настроить ClickHouse на использование сертификатов OpenSSL для проверки подключений.
Синтаксис
Аргументы
- Отсутствуют.
Возвращаемое значение
Возвращает карту (map) пар ключ–значение, относящихся к настроенному SSL-сертификату. Map(String, String)
Примеры
Пример использования
sleep
Введена в версии v1.1
Приостанавливает выполнение запроса на указанное количество секунд. Функция в первую очередь используется для тестирования и отладки.
Функцию sleep() в целом не следует использовать в продуктивных средах, так как она может негативно повлиять на производительность запросов и отклик системы.
Тем не менее она может быть полезна в следующих сценариях:
- Тестирование: При тестировании или бенчмаркинге ClickHouse может потребоваться смоделировать задержки или ввести паузы, чтобы наблюдать за поведением системы при определённых условиях.
- Отладка: Если необходимо изучить состояние системы или выполнение запроса в определённый момент времени, можно использовать
sleep()для введения паузы, что позволит проанализировать или собрать необходимую информацию. - Моделирование: В некоторых случаях может потребоваться смоделировать сценарии, близкие к реальным, в которых возникают задержки или паузы, например сетевые задержки или зависимости от внешних систем.
Важно использовать функцию sleep() взвешенно и только при необходимости, так как она может повлиять на общую производительность и отзывчивость вашей системы ClickHouse.
По соображениям безопасности функция может выполняться только в профиле пользователя по умолчанию (с включённым параметром allow_sleep).
Синтаксис
Аргументы
seconds— Количество секунд, на которое приостанавливается выполнение запроса, но не более 3 секунд. Может быть числом с плавающей запятой для указания дробных секунд.const UInt*илиconst Float*
Возвращаемое значение
Возвращает 0. UInt8
Примеры
Пример использования
sleepEachRow
Введено в версии v1.1
Приостанавливает выполнение запроса на заданное количество секунд для каждой строки в результирующем наборе.
Функция sleepEachRow() в основном используется для тестирования и отладки, аналогично функции sleep().
Она позволяет моделировать задержки или вводить паузы при обработке каждой строки, что может быть полезно в следующих сценариях:
- Тестирование: При тестировании или бенчмаркинге производительности ClickHouse в определённых условиях вы можете использовать
sleepEachRow()для моделирования задержек или введения пауз для каждой обрабатываемой строки. - Отладка: Если вам нужно исследовать состояние системы или выполнение запроса для каждой обрабатываемой строки, вы можете использовать
sleepEachRow()для введения пауз, что позволит вам проанализировать или собрать нужную информацию. - Моделирование: В некоторых случаях может потребоваться смоделировать реальные сценарии, когда для каждой обрабатываемой строки возникают задержки или паузы, например, при работе с внешними системами или сетевыми задержками.
Как и в случае с функцией sleep(), важно использовать sleepEachRow() взвешенно и только при необходимости, поскольку она может существенно повлиять на общую производительность и отзывчивость вашей системы ClickHouse, особенно при работе с большими результирующими наборами.
Синтаксис
Аргументы
seconds— Количество секунд, на которое приостанавливается выполнение запроса для каждой строки в наборе результатов, но не более чем на 3 секунды. Может быть числом с плавающей запятой для указания долей секунды.const UInt*илиconst Float*
Возвращаемое значение
Возвращает 0 для каждой строки. UInt8
Примеры
Пример использования
structureToCapnProtoSchema
Появилась в версии: v
Функция, которая преобразует структуру таблицы ClickHouse в схему формата CapnProto
Синтаксис
Аргументы
- Нет.
Возвращаемое значение
Примеры
random
structureToProtobufSchema
Добавлена в версии v23.8
Преобразует структуру таблицы ClickHouse в схему формата Protobuf.
Эта функция принимает определение структуры таблицы ClickHouse и преобразует его в определение схемы Protocol Buffers (Protobuf) в синтаксисе proto3. Это полезно для генерации схем Protobuf, соответствующих структурам таблиц ClickHouse для обмена данными.
Синтаксис
Аргументы
structure— определение структуры таблицы ClickHouse в виде строки (например, 'column1 Type1, column2 Type2').Stringmessage_name— имя для типа сообщения Protobuf в сгенерированной схеме.String
Возвращаемое значение
Возвращает определение схемы Protobuf в синтаксисе proto3, соответствующее входной структуре ClickHouse. String
Примеры
Преобразование структуры ClickHouse в схему Protobuf
tcpPort
Появилась в версии: v20.12
Возвращает номер TCP-порта native интерфейса, на котором слушает сервер. Если выполняется в контексте distributed таблицы, эта функция генерирует обычный столбец со значениями, соответствующими каждому сегменту. В противном случае она возвращает константное значение.
Синтаксис
Аргументы
- Отсутствуют.
Возвращаемое значение
Возвращает номер TCP-порта. UInt16
Примеры
Пример использования
throwIf
Добавлена в версии: v1.1
Генерирует исключение, если аргумент x равен true.
Чтобы использовать аргумент error_code, необходимо включить параметр конфигурации allow_custom_error_code_in_throw.
Синтаксис
Аргументы
x— проверяемое условие.Anymessage— необязательный параметр. Пользовательское сообщение об ошибке.const Stringerror_code— необязательный параметр. Пользовательский код ошибки.const Int8/16/32
Возвращаемое значение
Возвращает 0, если условие ложно, и генерирует исключение, если условие истинно. UInt8
Примеры
Пример использования
toColumnTypeName
Введена в версии: v1.1
Возвращает внутреннее имя типа данных у переданного значения.
В отличие от функции toTypeName, возвращаемый тип данных потенциально включает внутренние обёртки столбцов, такие как Const и LowCardinality.
Синтаксис
Аргументы
value— Значение, для которого возвращается внутренний тип данных.Any
Возвращаемое значение
Возвращает внутренний тип данных, используемый для представления значения. String
Примеры
Пример использования
toTypeName
Впервые появилась в версии: v1.1
Возвращает имя типа переданного аргумента.
Если в функцию передан NULL, функция возвращает тип Nullable(Nothing), который соответствует внутреннему представлению NULL в ClickHouse.
Синтаксис
Аргументы
x— Значение произвольного типа.Any
Возвращаемое значение
Возвращает имя типа данных переданного значения. String
Примеры
Пример использования
transactionID
Появилась в версии: v22.6
Возвращает идентификатор транзакции.
Эта функция является частью набора экспериментальных возможностей. Включите экспериментальную поддержку транзакций, добавив этот SETTING в вашу конфигурацию:
Дополнительные сведения см. на странице Transactional (ACID) support.
Синтаксис
Аргументы
- Отсутствуют.
Возвращаемое значение
Возвращает кортеж, состоящий из start_csn, local_tid и host_id.
start_csn: глобальный последовательный номер, последний commit timestamp, который был виден на момент начала этой транзакции.local_tid: локальный последовательный номер, уникальный для каждой транзакции, запущенной этим хостом в пределах конкретногоstart_csn.host_id: UUID хоста, на котором была запущена эта транзакция.
Tuple(UInt64, UInt64, UUID)
Примеры
Пример использования
transactionLatestSnapshot
Добавлена в версии: v22.6
Возвращает самый новый снимок (Commit Sequence Number) транзакции, доступный для чтения.
Эта функция является частью набора экспериментальных возможностей. Включите экспериментальную поддержку транзакций, добавив этот SETTING в конфигурацию:
Дополнительную информацию см. на странице Поддержка транзакций (ACID).
Синтаксис
Аргументы
- Отсутствуют.
Возвращаемое значение
Возвращает последний снимок (CSN) транзакции. UInt64
Примеры
Пример использования
transactionOldestSnapshot
Добавлено в: v22.6
Возвращает самый ранний снимок (Commit Sequence Number), который виден для одной из выполняющихся транзакций.
Эта функция является частью набора экспериментальных возможностей. Включите экспериментальную поддержку транзакций, добавив этот SETTING в конфигурацию:
Для получения дополнительной информации см. страницу Поддержка транзакций (ACID).
Синтаксис
Аргументы
- Нет.
Возвращаемое значение
Возвращает самый ранний снимок (CSN) транзакции. UInt64
Примеры
Пример использования
transform
Появилась в версии: v1.1
Преобразует значение в соответствии с явно заданным отображением одних элементов в другие.
Существует два варианта этой функции:
transform(x, array_from, array_to, default)— преобразуетx, используя массивы отображения со значением по умолчанию для несовпадающих элементовtransform(x, array_from, array_to)— выполняет то же преобразование, но возвращает исходноеx, если совпадение не найдено
Функция ищет значение x в array_from и возвращает соответствующий элемент из array_to с тем же индексом.
Если значение x не найдено в array_from, возвращается либо значение default (4‑параметрическая версия), либо исходное x (3‑параметрическая версия).
Если в array_from существует несколько совпадающих элементов, возвращается элемент, соответствующий первому совпадению.
Требования:
array_fromиarray_toдолжны иметь одинаковое количество элементов- Для 4‑параметрической версии:
transform(T, Array(T), Array(U), U) -> U, гдеTиUмогут быть разными, но совместимыми типами - Для 3‑параметрической версии:
transform(T, Array(T), Array(T)) -> T, где все типы должны совпадать
Синтаксис
Аргументы
x— Значение для преобразования.(U)Int*илиDecimalилиFloat*илиStringилиDateилиDateTimearray_from— Константный массив значений, в котором выполняется поиск совпадений.Array((U)Int*)илиArray(Decimal)илиArray(Float*)илиArray(String)илиArray(Date)илиArray(DateTime)array_to— Константный массив значений, которые возвращаются для соответствующих совпадений вarray_from.Array((U)Int*)илиArray(Decimal)илиArray(Float*)илиArray(String)илиArray(Date)илиArray(DateTime)default— Необязательный аргумент. Значение, которое возвращается, еслиxне найден вarray_from. Если аргумент опущен, возвращаетсяxбез изменений.(U)Int*илиDecimalилиFloat*илиStringилиDateилиDateTime
Возвращаемое значение
Возвращает соответствующее значение из array_to, если x совпадает с элементом в array_from. В противном случае возвращает default (если он указан) или x (если default не указан). Any
Примеры
transform(T, Array(T), Array(U), U) -> U
transform(T, Array(T), Array(T)) -> T
uniqThetaIntersect
Добавлена в: v22.9
Два объекта uniqThetaSketch для выполнения операции пересечения множеств (∩); результатом является новый uniqThetaSketch.
Синтаксис
Аргументы
uniqThetaSketch— объект типа uniqThetaSketch.TupleилиArrayилиDateилиDateTimeилиStringили(U)Int*илиFloat*илиDecimal
Возвращаемое значение
Новый объект uniqThetaSketch, содержащий результат пересечения. UInt64
Примеры
Пример использования
uniqThetaNot
Впервые представлено в: v22.9
Два объекта uniqThetaSketch для вычисления выражения a_not_b (операция над множествами ×); результатом является новый uniqThetaSketch.
Синтаксис
Аргументы
uniqThetaSketch— объект типа uniqThetaSketch.TupleилиArrayилиDateилиDateTimeилиStringили(U)Int*илиFloat*илиDecimal
Возвращаемое значение
Возвращает новый uniqThetaSketch, содержащий результат операции a_not_b. Значение типа UInt64
Примеры
Пример использования
uniqThetaUnion
Появилась в версии v22.9
Выполняет операцию объединения множеств (∪) над двумя объектами uniqThetaSketch и возвращает новый uniqThetaSketch.
Синтаксис
Аргументы
uniqThetaSketch— объект типа uniqThetaSketch.TupleилиArrayилиDateилиDateTimeилиStringили(U)Int*илиFloat*илиDecimal
Возвращаемое значение
Возвращает новый uniqThetaSketch, содержащий результат объединения. UInt64
Примеры
Пример использования
uptime
Добавлена в версии v1.1
Возвращает время непрерывной работы сервера в секундах. Если выполняется в контексте distributed таблицы, эта функция генерирует обычный столбец со значениями, соответствующими каждому сегменту. В противном случае она возвращает константное значение.
Синтаксис
Аргументы
- Нет.
Возвращаемое значение
Возвращает время работы сервера в секундах. UInt32
Примеры
Пример использования
variantElement
Введена в версии: v25.2
Извлекает столбец с указанным типом из столбца Variant.
Синтаксис
Аргументы
variant— столбец типа Variant.Varianttype_name— имя варианта типа, который нужно извлечь.Stringdefault_value— значение по умолчанию, которое будет использовано, если вvariantнет значения указанного варианта типа. Может быть любого типа. Необязательный аргумент.Any
Возвращаемое значение
Возвращает столбец с указанным вариантом типа, извлечённым из столбца Variant. Any
Примеры
Пример использования
variantType
Введена в версии: v24.2
Возвращает имя типа Variant для каждой строки столбца Variant. Если строка содержит NULL, для неё возвращается 'None'.
Синтаксис
Аргументы
variant— столбец Variant.Variant
Возвращаемое значение
Возвращает столбец Enum с именем типа Variant для каждой строки. Enum
Примеры
Пример использования
version
Добавлено в: v1.1
Возвращает текущую версию ClickHouse в виде строки в формате: major_version.minor_version.patch_version.number_of_commits_since_the_previous_stable_release.
Если выполняется в контексте distributed таблицы, эта функция формирует обычный столбец со значениями, относящимися к каждому сегменту.
В противном случае возвращается константное значение.
Синтаксис
Аргументы
- Нет.
Возвращаемое значение
Возвращает текущую версию ClickHouse. String
Примеры
Пример использования
visibleWidth
Появилась в версии: v1.1
Вычисляет приблизительную ширину при выводе значений в консоль в текстовом формате (значения разделены табуляцией).
Эта функция используется системой для реализации форматов Pretty.
NULL представлен строкой, соответствующей NULL в форматах Pretty.
Синтаксис
Аргументы
x— значение любого типа данных.Any
Возвращаемое значение
Возвращает приблизительную ширину значения при выводе в текстовом формате. UInt64
Примеры
Вычисление видимой ширины значения NULL
zookeeperSessionUptime
Появился в версии: v21.11
Возвращает время работы текущей сессии ZooKeeper в секундах.
Синтаксис
Аргументы
- Отсутствуют.
Возвращаемое значение
Возвращает время работы текущего сеанса ZooKeeper в секундах. UInt32
Примеры
Пример использования