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

Другие функции

hostName

Возвращает имя хоста, на котором была выполнена эта функция. Если функция выполняется на удаленном сервере (распределенная обработка), возвращается имя удаленного сервера. Если функция выполняется в контексте распределенной таблицы, она генерирует обычный столбец со значениями, соответствующими каждому шард. В противном случае она возвращает постоянное значение.

Синтаксис

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

getMacro

Возвращает названное значение из раздела macros конфигурации сервера.

Синтаксис

Аргументы

  • name — Имя макроса, которое нужно извлечь из секции <macros>. String.

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

  • Значение указанного макроса. String.

Пример

Пример секции <macros> в файле конфигурации сервера:

Запрос:

Результат:

То же значение можно извлечь следующим образом:

fqdn

Возвращает полное доменное имя сервера ClickHouse.

Синтаксис

Псевдонимы: fullHostName, FQDN.

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

  • Строка с полным доменным именем. String.

Пример

Результат:

basename

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

Аргументы

  • expr — Значение типа String. Обратные косые черты должны быть экранированы.

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

Строка, содержащая:

  • Конец входной строки после последней косой черты или обратной косой черты. Если входная строка заканчивается косой чертой или обратной косой чертой (например, / или c:\), функция возвращает пустую строку.
  • Оригинальную строку, если в ней нет косых черт или обратных косых черт.

Пример

Запрос:

Результат:

Запрос:

Результат:

Запрос:

Результат:

visibleWidth

Вычисляет предполагаемую ширину при выводе значений в текстовом формате (разделенном табуляцией). Эта функция используется системой для реализации Pretty formats.

NULL представляется как строка, соответствующая NULL в Pretty форматах.

Синтаксис

Пример

Запрос:

Результат:

toTypeName

Возвращает имя типа переданного аргумента.

Если передается NULL, функция возвращает тип Nullable(Nothing), который соответствует внутреннему представлению NULL в ClickHouse.

Синтаксис

Аргументы

  • value — Значение произвольного типа.

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

  • Имя типа данных входного значения. String.

Пример

Запрос:

Результат:

blockSize

В ClickHouse запросы обрабатываются в блоках (кусках). Эта функция возвращает размер (количество строк) блока, на котором вызывается функция.

Синтаксис

Пример

Запрос:

Результат:

byteSize

Возвращает оценку нежатого размера в байтах своих аргументов в памяти.

Синтаксис

Аргументы

  • argument — Значение.

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

  • Оценка размера в байтах аргументов в памяти. UInt64.

Примеры

Для аргументов String функция возвращает длину строки + 9 (терминирующий ноль + длина).

Запрос:

Результат:

Запрос:

Результат:

Если функция имеет несколько аргументов, функция накапливает их размеры в байтах.

Запрос:

Результат:

materialize

Преобразует константу в полный столбец, содержащий одно значение. Полные столбцы и константы представлены по-разному в памяти. Обычно функции выполняют различный код для нормальных и постоянных аргументов, хотя результат обычно должен быть одинаковым. Эта функция может быть использована для отладки этого поведения.

Синтаксис

Параметры

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

  • Столбец, содержащий единственное значение x.

Пример

В следующем примере функция countMatches ожидает константу во втором аргументе. Это поведение можно отследить, используя функцию materialize, чтобы превратить константу в полный столбец, проверяя, что функция выбрасывает ошибку для неконстантного аргумента.

Запрос:

Результат:

ignore

Принимает произвольные аргументы и безусловно возвращает 0. Аргумент все еще оценивается внутренне, что делает его полезным для, например, бенчмаркинга.

Синтаксис

Аргументы

  • Принимает произвольное количество аргументов произвольного типа, включая NULL.

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

  • Возвращает 0.

Пример

Запрос:

Результат:

sleep

Используется для введения задержки или паузы в выполнении запроса. Он в первую очередь используется для тестирования и отладки.

Синтаксис

Аргументы

  • seconds: UInt* или Float Количество секунд, на которое нужно приостановить выполнение запроса, максимум 3 секунды. Это может быть значение с плавающей точкой для указания дробных секунд.

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

Эта функция не возвращает никакого значения.

Пример

Эта функция не возвращает никакого значения. Тем не менее, если вы выполните функцию с clickhouse client, вы увидите нечто подобное:

Этот запрос приостановит выполнение на 2 секунды перед завершением. В это время результаты не будут возвращены, и запрос будет казаться зависшим или неотзывчивым.

Подробности реализации

Функция sleep() обычно не используется в производственных средах, так как она может негативно повлиять на производительность запросов и отзывчивость системы. Тем не менее, она может быть полезна в следующих сценариях:

  1. Тестирование: При тестировании или бенчмаркинге ClickHouse вы можете захотеть смоделировать задержки или ввести паузы, чтобы наблюдать за поведением системы в определенных условиях.
  2. Отладка: Если вам нужно изучить состояние системы или выполнение запроса в определенный момент времени, вы можете использовать sleep(), чтобы ввести паузу, позволяя вам исследовать или собирать соответствующую информацию.
  3. Симуляция: В некоторых случаях вы можете захотеть смоделировать сценарии из реальной жизни, в которых возникают задержки или паузы, такие как задержка сети или зависимости от внешней системы.

Важно использовать функцию sleep() с умом и только когда это необходимо, так как это может потенциально повлиять на общую производительность и отзывчивость вашей системы ClickHouse.

sleepEachRow

Приостанавливает выполнение запроса на указанное число секунд для каждой строки в результирующем наборе.

Синтаксис

Аргументы

  • seconds: UInt* или Float* Количество секунд, на которое нужно приостановить выполнение запроса для каждой строки в результирующем наборе, максимум 3 секунды. Это может быть значение с плавающей точкой для указания дробных секунд.

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

Эта функция возвращает те же входные значения, которые получает, без изменения их.

Пример

Но вывод будет задержан, с паузой 0,5 секунды между каждой строкой.

Функция sleepEachRow() в первую очередь используется для тестирования и отладки, аналогично функции sleep(). Она позволяет вам смоделировать задержки или ввести паузы в обработке каждой строки, что может быть полезно в таких сценариях, как:

  1. Тестирование: При тестировании или бенчмаркинге производительности ClickHouse под определенными условиями вы можете использовать sleepEachRow(), чтобы смоделировать задержки или ввести паузы для каждой обрабатываемой строки.
  2. Отладка: Если вам нужно изучить состояние системы или выполнение запроса для каждой обрабатываемой строки, вы можете использовать sleepEachRow(), чтобы ввести паузы, позволяя вам исследовать или собирать соответствующую информацию.
  3. Симуляция: В некоторых случаях вы можете захотеть смоделировать сценарии из реальной жизни, в которых возникают задержки или паузы для каждой обрабатываемой строки, например, при работе с внешними системами или сетевыми задержками.

Как и у функции sleep(), важно использовать sleepEachRow() с умом и только когда это необходимо, так как это может значительно повлиять на общую производительность и отзывчивость вашей системы ClickHouse, особенно при работе с большими наборами результатов.

currentDatabase

Возвращает имя текущей базы данных. Полезно в параметрах движка таблицы запросов CREATE TABLE, когда необходимо указать базу данных.

Синтаксис

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

  • Возвращает имя текущей базы данных. String.

Пример

Запрос:

Результат:

currentUser

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

Синтаксис

Псевдонимы: user(), USER(), current_user(). Псевдонимы нечувствительны к регистру.

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

  • Имя текущего пользователя. String.
  • В распределенных запросах — логин пользователя, который инициировал запрос. String.

Пример

Результат:

currentSchemas

Возвращает массив с одним элементом с именем текущей схемы базы данных.

Синтаксис

Псевдоним: current_schemas.

Аргументы

  • bool: Логическое значение. Bool.
примечание

Логический аргумент игнорируется. Он только существует для совместимости с реализацией этой функции в PostgreSQL.

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

  • Возвращает массив с одним элементом с именем текущей базы данных.

Пример

Результат:

isConstant

Возвращает, является ли аргумент постоянным выражением.

Постоянное выражение — это выражение, результат которого известен во время анализа запроса, т.е. до выполнения. Например, выражения над литералами являются постоянными выражениями.

Эта функция в основном предназначена для разработки, отладки и демонстрации.

Синтаксис

Аргументы

  • x — Выражение для проверки.

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

  • 1, если x является постоянным. UInt8.
  • 0, если x неконстантный. UInt8.

Примеры

Запрос:

Результат:

Запрос:

Результат:

Запрос:

Результат:

hasColumnInTable

Принимая имя базы данных, имя таблицы и имя столбца в качестве константных строк, возвращает 1, если данный столбец существует, иначе 0.

Синтаксис

Параметры

  • database : имя базы данных. String literal
  • table : имя таблицы. String literal
  • column : имя столбца. String literal
  • hostname : имя удаленного сервера для выполнения проверки. String literal
  • username : имя пользователя для удаленного сервера. String literal
  • password : пароль для удаленного сервера. String literal

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

  • 1, если данный столбец существует.
  • 0, в противном случае.

Подробности реализации

Для элементов в вложенной структуре данных функция проверяет существование столбца. Для самой вложенной структуры данных функция возвращает 0.

Пример

Запрос:

hasThreadFuzzer

Возвращает, является ли Thread Fuzzer эффективным. Может использоваться в тестах, чтобы предотвратить слишком долгие запуски.

Синтаксис

bar

Строит столбчатую диаграмму.

bar(x, min, max, width) рисует полосу шириной, пропорциональной (x - min) и равной width символам, когда x = max.

Аргументы

  • x — Размер для отображения.
  • min, max — Целочисленные константы. Значение должно помещаться в Int64.
  • width — Константа, положительное целое число, может быть дробным.

Полоса рисуется с точностью до одной восьмой символа.

Пример:

transform

Преобразует значение в соответствии с явно определенной сопоставлением некоторых элементов с другими. Существует два варианта этой функции:

transform(x, array_from, array_to, default)

x – что преобразовать.

array_from – Константный массив значений для преобразования.

array_to – Константный массив значений для преобразования значений из 'from' в.

default – Какое значение использовать, если 'x' не равно ни одному из значений в 'from'.

array_from и array_to должны содержать одинаковое количество элементов.

Сигнатура:

Для x, равного одному из элементов в array_from, функция возвращает соответствующий элемент в array_to, т.е. тот, который находится на том же индексе массива. В противном случае она возвращает default. Если существует несколько совпадающих элементов в array_from, она возвращает элемент, соответствующий первому из них.

transform(T, Array(T), Array(U), U) -> U

T и U могут быть числовыми, строковыми или типами Date или DateTime. Одна и та же буква (T или U) означает, что типы должны быть совместимыми друг с другом и не обязательно равными. Например, первый аргумент может иметь тип Int64, в то время как второй аргумент может иметь тип Array(UInt16).

Пример:

transform(x, array_from, array_to)

Похож на другой вариант, но не имеет аргумента 'default'. В случае, если совпадение не может быть найдено, возвращается x.

Пример:

formatReadableDecimalSize

Учитывая размер (количество байт), эта функция возвращает читаемый, округленный размер с суффиксом (КБ, МБ и т.д.) в виде строки.

Обратные операции этой функции - parseReadableSize, parseReadableSizeOrZero и parseReadableSizeOrNull.

Синтаксис

Пример

Запрос:

Результат:

formatReadableSize

Учитывая размер (количество байт), эта функция возвращает читаемый, округленный размер с суффиксом (KiB, MiB и т.д.) в виде строки.

Обратные операции этой функции - parseReadableSize, parseReadableSizeOrZero и parseReadableSizeOrNull.

Синтаксис

Псевдоним: FORMAT_BYTES.

примечание

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

Пример

Запрос:

Результат:

formatReadableQuantity

Учитывая число, эта функция возвращает округленное число с суффиксом (тысяча, миллион, миллиард и т.д.) в виде строки.

Синтаксис

примечание

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

Пример

Запрос:

Результат:

formatReadableTimeDelta

Учитывая временной интервал (дельта) в секундах, эта функция возвращает временную дельту с годом/месяцем/днем/часом/минутой/секундой/миллисекундой/микросекундой/наносекундой в виде строки.

Синтаксис

примечание

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

Аргументы

  • column — Столбец с числовой временной дельтой.
  • maximum_unit — Необъязательный. Максимальная единица для показа.
    • Допустимые значения: наносекунды, микросекунды, миллисекунды, секунды, минуты, часы, дни, месяцы, годы.
    • Значение по умолчанию: годы.
  • minimum_unit — Необъязательный. Минимальная единица для показа. Все меньшие единицы отбрасываются.
    • Допустимые значения: наносекунды, микросекунды, миллисекунды, секунды, минуты, часы, дни, месяцы, годы.
    • Если явно указанное значение больше, чем maximum_unit, будет выброшено исключение.
    • Значение по умолчанию: секунды, если maximum_unit является секундами или больше, в противном случае наносекунды.

Пример

parseReadableSize

Учитывая строку, содержащую размер в байтах и B, KiB, KB, MiB, MB и т.д. в качестве единицы (т.е. ISO/IEC 80000-13 или десятичная байтовая единица), эта функция возвращает соответствующее количество байт.
Если функция не может разобрать входное значение, она выбрасывает исключение.

Обратные операции этой функции - formatReadableSize и formatReadableDecimalSize.

Синтаксис

Аргументы

  • x : Читаемый размер с единицей ISO/IEC 80000-13 или десятичной байт. (String).

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

  • Количество байт, округленное до ближайшего целого числа (UInt64).

Пример

parseReadableSizeOrNull

Учитывая строку, содержащую размер в байтах и B, KiB, KB, MiB, MB и т.д. в качестве единицы (т.е. ISO/IEC 80000-13 или десятичная байтовая единица), эта функция возвращает соответствующее количество байт.
Если функция не может разобрать входное значение, она возвращает NULL.

Обратные операции этой функции - formatReadableSize и formatReadableDecimalSize.

Синтаксис

Аргументы

  • x : Читаемый размер с единицей ISO/IEC 80000-13 или десятичной байт. (String).

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

  • Количество байт, округленное до ближайшего целого числа, или NULL, если не удалось разобрать входное значение (Nullable(UInt64)).

Пример

parseReadableSizeOrZero

Учитывая строку, содержащую размер в байтах и B, KiB, KB, MiB, MB и т.д. в качестве единицы (т.е. ISO/IEC 80000-13 или десятичная байтовая единица), эта функция возвращает соответствующее количество байт. Если функция не может разобрать входное значение, она возвращает 0.

Обратные операции этой функции - formatReadableSize и formatReadableDecimalSize.

Синтаксис

Аргументы

  • x : Читаемый размер с единицей ISO/IEC 80000-13 или десятичной байт. (String).

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

  • Количество байт, округленное до ближайшего целого числа, или 0, если не удалось разобрать входное значение (UInt64).

Пример

parseTimeDelta

Парсинг последовательности чисел, за которыми следует что-то, напоминающее единицу времени.

Синтаксис

Аргументы

  • timestr — Последовательность чисел, за которой следует что-то, напоминающее единицу времени.

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

  • Число с плавающей точкой, представляющее количество секунд.

Пример

least

Возвращает наименьший аргумент из одного или нескольких входных аргументов. Аргументы NULL игнорируются.

Синтаксис

примечание

Версия 24.12 внесла изменения, несовместимые с предыдущими версиями, так что значения NULL игнорируются, в то время как ранее возвращалось NULL, если один из аргументов был NULL. Чтобы сохранить предыдущее поведение, установите настройку least_greatest_legacy_null_behavior (по умолчанию: false) в true.

greatest

Возвращает наибольший аргумент из одного или нескольких входных аргументов. Аргументы NULL игнорируются.

Синтаксис

примечание

Версия 24.12 внесла изменения, несовместимые с предыдущими версиями, так что значения NULL игнорируются, в то время как ранее возвращалось NULL, если один из аргументов был NULL. Чтобы сохранить предыдущее поведение, установите настройку least_greatest_legacy_null_behavior (по умолчанию: false) в true.

uptime

Возвращает время работы сервера в секундах. Если выполняется в контексте распределенной таблицы, эта функция генерирует обычный столбец со значениями, относящимися к каждой шард. В противном случае она возвращает постоянное значение.

Синтаксис

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

  • Значение времени в секундах. UInt32.

Пример

Запрос:

Результат:

version

Возвращает текущую версию ClickHouse в виде строки в формате:

  • Главная версия
  • Минорная версия
  • Версия патча
  • Количество коммитов с предыдущего стабильного релиза.

Если выполняется в контексте распределенной таблицы, эта функция генерирует обычный столбец со значениями, относящимися к каждой шард. В противном случае она возвращает постоянное значение.

Синтаксис

Аргументы

Нет.

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

  • Текущая версия ClickHouse. String.

Детали реализации

Нет.

Пример

Запрос:

Результат:

buildId

Возвращает идентификатор сборки, сгенерированный компилятором для работающего бинарного файла сервера ClickHouse. Если выполняется в контексте распределенной таблицы, эта функция генерирует обычный столбец со значениями, относящимися к каждой шард. В противном случае она возвращает постоянное значение.

Синтаксис

blockNumber

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

Синтаксис

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

  • Порядковый номер блока данных, в котором находится строка. UInt64.

Пример

Запрос:

Результат:

rowNumberInBlock

Возвращает для каждого блока, обрабатываемого rowNumberInBlock, номер текущей строки. Возвращаемое число начинается для каждого блока с 0.

Синтаксис

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

  • Порядковый номер строки в блоке данных, начиная с 0. UInt64.

Пример

Запрос:

Результат:

rowNumberInAllBlocks

Возвращает уникальный номер строки для каждой строки, обрабатываемой rowNumberInAllBlocks. Возвращаемые номера начинаются с 0.

Синтаксис

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

  • Порядковый номер строки в блоке данных, начиная с 0. UInt64.

Пример

Запрос:

Результат:

normalizeQuery

Заменяет литералы, последовательности литералов и сложные псевдонимы (содержащие пробелы, больше двух цифр или длиной как минимум 36 байт, такие как UUID) на плейсхолдер ?.

Синтаксис

Аргументы

  • x — Последовательность символов. String.

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

  • Последовательность символов с плейсхолдерами. String.

Пример

Запрос:

Результат:

normalizeQueryKeepNames

Заменяет литералы, последовательности литералов на плейсхолдер ?, но не заменяет сложные псевдонимы (содержащие пробелы, больше двух цифр или длиной как минимум 36 байт, таких как UUID). Это помогает лучше анализировать сложные журналы запросов.

Синтаксис

Аргументы

  • x — Последовательность символов. String.

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

  • Последовательность символов с плейсхолдерами. String.

Пример

Запрос:

Результат:

normalizedQueryHash

Возвращает идентичные 64-битные хеш-значения без значений литералов для схожих запросов. Может быть полезно для анализа журналов запросов.

Синтаксис

Аргументы

  • x — Последовательность символов. String.

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

  • Значение хеша. UInt64.

Пример

Запрос:

Результат:

normalizedQueryHashKeepNames

Как normalizedQueryHash, возвращает идентичные 64-битные хеш-значения без значений литералов для схожих запросов, но не заменяет сложные псевдонимы (содержащие пробелы, больше двух цифр или длиной как минимум 36 байт, такие как UUID) на плейсхолдер перед хешированием. Может быть полезно для анализа журналов запросов.

Синтаксис

Аргументы

  • x — Последовательность символов. String.

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

  • Значение хеша. UInt64.

Пример

Результат:

neighbor

Deprecated feature

Функция окна, которая предоставляет доступ к строке на заданном смещении до или после текущей строки заданного столбца.

Синтаксис

Результат функции зависит от затронутых блоков данных и порядка данных в блоке.

примечание

Возвращает соседей только внутри текущего обрабатываемого блока данных. Из-за этого ненадежного поведения функция DEPRECATED, рекомендуется использовать соответствующие функции окон вместо этого.

Порядок строк во время вычисления neighbor() может отличаться от порядка строк, возвращаемых пользователю. Чтобы предотвратить это, вы можете создать подзапрос с ORDER BY и вызвать функцию извне подзапроса.

Аргументы

  • column — Имя столбца или скалярное выражение.
  • offset — Количество строк, которое нужно посмотреть до или после текущей строки в column. Int64.
  • default_value — Необязательный. Возвращаемое значение, если смещение превышает границы блока. Тип данных, затронутых блоками.

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

  • Значение column на расстоянии offset от текущей строки, если offset не за пределами границ блока.
  • Значение по умолчанию column или default_value (если указано), если offset выходит за пределы границ блока.
примечание

Тип возврата будет соответствовать типу данных, затронутых блоками, или типу значения по умолчанию.

Пример

Запрос:

Результат:

Запрос:

Результат:

Эта функция может быть использована для вычисления метрики за год:

Запрос:

Результат:

runningDifference

Вызывает разницу между двумя последовательными значениями строк в блоке данных. Возвращает 0 для первой строки, а для последующих строк разницу с предыдущей строкой.

примечание

Возвращает разности только внутри текущего обрабатываемого блока данных. Из-за этого ненадежного поведения функция DEPRECATED, рекомендуется использовать соответствующие функции окон вместо этого.

Результат функции зависит от затронутых блоков данных и порядка данных в блоке.

Порядок строк во время вычисления runningDifference() может отличаться от порядка строк, возвращаемых пользователю. Чтобы предотвратить это, вы можете создать подзапрос с ORDER BY и вызвать функцию извне подзапроса.

Синтаксис

Пример

Запрос:

Результат:

Обратите внимание, что размер блока влияет на результат. Внутреннее состояние runningDifference сбрасывается для каждого нового блока.

Запрос:

Результат:

Запрос:

Результат:

runningDifferenceStartingWithFirstValue

примечание

Эта функция DEPRECATED (см. примечание для runningDifference).

Та же, что и runningDifference, но возвращает значение первой строки как значение для первой строки.

runningConcurrency

Вычисляет количество параллельных событий. Каждое событие имеет время начала и окончания. Время начала включено в событие, в то время как время окончания исключено. Столбцы с временем начала и окончания должны быть одного и того же типа данных. Функция вычисляет общее количество активных (параллельных) событий для каждого времени начала события.

подсказка

События должны быть упорядочены по времени начала в порядке возрастания. Если это требование нарушено, функция вызывает исключение. Каждый блок данных обрабатывается отдельно. Если события из разных блоков данных пересекаются, то они не могут быть обработаны правильно.

Синтаксис

Аргументы

  • start — Столбец с временем начала событий. Date, DateTime или DateTime64.
  • end — Столбец с временем окончания событий. Date, DateTime или DateTime64.

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

  • Количество параллельных событий в каждое время начала события. UInt32

Пример

Рассмотрим таблицу:

Запрос:

Результат:

MACNumToString

Интерпретирует число UInt64 как MAC-адрес в формате big endian. Возвращает соответствующий MAC-адрес в формате AA:BB:CC:DD:EE:FF (разделенные двоеточиями числа в шестнадцатеричном формате) в виде строки.

Синтаксис

MACStringToNum

Обратная функция MACNumToString. Если MAC-адрес имеет неверный формат, возвращает 0.

Синтаксис

MACStringToOUI

Дает MAC-адрес в формате AA:BB:CC:DD:EE:FF (разделенные двоеточиями числа в шестнадцатеричном формате) и возвращает первые три октета в виде числа UInt64. Если MAC-адрес имеет неверный формат, возвращает 0.

Синтаксис

getSizeOfEnumType

Возвращает количество полей в Enum. Исключение выбрасывается, если тип не Enum.

Синтаксис

Аргументы:

  • value — Значение типа Enum.

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

  • Количество полей с входными значениями Enum.

Пример

blockSerializedSize

Возвращает размер на диске без учета сжатия.

Аргументы

  • value — Любое значение.

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

  • Количество байтов, которое будет записано на диск для блока значений без сжатия.

Пример

Запрос:

Результат:

toColumnTypeName

Возвращает внутреннее имя типа данных, представляющее значение.

Синтаксис

Аргументы:

  • value — Значение любого типа.

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

  • Внутреннее имя типа данных, используемое для представления value.

Пример

Различие между toTypeName и toColumnTypeName:

Результат:

Запрос:

Результат:

В примере показано, что тип данных DateTime на внутреннем уровне хранится как Const(UInt32).

dumpColumnStructure

Выводит детальное описание структур данных в оперативной памяти

Аргументы:

  • value — Значение любого типа.

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

  • Описание структуры столбца, используемой для представления value.

Пример

defaultValueOfArgumentType

Возвращает значение по умолчанию для данного типа данных.

Не включает значения по умолчанию для пользовательских столбцов, установленных пользователем.

Синтаксис

Аргументы:

  • expression — Произвольный тип значения или выражение, результирующее в значении произвольного типа.

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

  • 0 для чисел.
  • Пустая строка для строк.
  • ᴺᵁᴸᴸ для Nullable.

Пример

Запрос:

Результат:

Запрос:

Результат:

defaultValueOfTypeName

Возвращает значение по умолчанию для данного имени типа.

Не включает значения по умолчанию для пользовательских столбцов, установленных пользователем.

Аргументы:

  • type — Строка, представляющая имя типа.

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

  • 0 для чисел.
  • Пустая строка для строк.
  • ᴺᵁᴸᴸ для Nullable.

Пример

Запрос:

Результат:

Запрос:

Результат:

indexHint

Эта функция предназначена для отладки и инспекции. Она игнорирует свой аргумент и всегда возвращает 1. Аргументы не оцениваются.

Но во время анализа индекса аргумент этой функции предполагается как не обернутый в indexHint. Это позволяет выбирать данные в диапазонах индексов по соответствующему условию, но без дополнительной фильтрации по этому условию. Индекс в ClickHouse разреженный, и использование indexHint приведет к выборке большего объема данных, чем прямое указание того же условия.

Синтаксис

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

Пример

Вот пример тестовых данных из таблицы ontime.

Таблица:

Таблица имеет индексы по полям (FlightDate, (Year, FlightDate)).

Создаем запрос, который не использует индекс:

ClickHouse обработал всю таблицу (Обработано 4.28 миллиона строк).

Результат:

Чтобы применить индекс, выбираем конкретную дату:

ClickHouse теперь использует индекс, чтобы обработать значительно меньшее количество строк (Обработано 32.74 тысячи строк).

Результат:

Теперь обернем выражение k = '2017-09-15' в функцию indexHint:

Запрос:

ClickHouse использовал индекс так же, как и ранее (Обработано 32.74 тысячи строк). Выражение k = '2017-09-15' не использовалось при генерации результата. В этом примере функция indexHint позволяет увидеть смежные даты.

Результат:

replicate

Создает массив с единственным значением.

примечание

Эта функция используется для внутренней реализации arrayJoin.

Синтаксис

Аргументы

  • x — Значение для заполнения результирующего массива.
  • arr — Массив. Array.

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

Массив такой же длины, как arr, заполненный значением x. Array.

Пример

Запрос:

Результат:

revision

Возвращает текущую ревизию сервера ClickHouse.

Синтаксис

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

  • Текущая ревизия сервера ClickHouse. UInt32.

Пример

Запрос:

Результат:

filesystemAvailable

Возвращает количество свободного места в файловой системе, хранящей постоянные данные базы данных. Возвращаемое значение всегда меньше общего свободного места (filesystemUnreserved), так как часть пространства зарезервирована для операционной системы.

Синтаксис

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

  • Количество оставшегося пространства в байтах. UInt64.

Пример

Запрос:

Результат:

filesystemUnreserved

Возвращает общее количество свободного пространства на файловой системе, хранящей постоянные данные базы данных. (ранее filesystemFree). См. также filesystemAvailable.

Синтаксис

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

  • Количество свободного пространства в байтах. UInt64.

Пример

Запрос:

Результат:

filesystemCapacity

Возвращает емкость файловой системы в байтах. Необходим путь к каталогу данных.

Синтаксис

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

  • Емкость файловой системы в байтах. UInt64.

Пример

Запрос:

Результат:

initializeAggregation

Вычисляет результат агрегатной функции на основе одного значения. Эта функция может быть использована для инициализации агрегатных функций с комбинированием -State. Вы можете создать состояния агрегатных функций и вставить их в столбцы типа AggregateFunction или использовать инициализированные агрегаты как значения по умолчанию.

Синтаксис

Аргументы

  • aggregate_function — Название агрегатной функции для инициализации. String.
  • arg — Аргументы агрегатной функции.

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

  • Результат агрегации для каждой строки, переданной функции.

Тип возвращаемого значения тот же, что и тип возвращаемого значения функции, которую initializeAggregation принимает в качестве первого аргумента.

Пример

Запрос:

Результат:

Запрос:

Результат:

Пример с движком таблицы AggregatingMergeTree и столбцом AggregateFunction:

См. также

Аргументы

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

  • Значение/значения, которые были агрегированы.
примечание

Тип возвращаемого значения равен любому из типов, которые были агрегированы.

Примеры

Запрос:

Результат:

Запрос:

Результат:

Обратите внимание, что значения NULL игнорируются.

Запрос:

Результат:

Объединенный пример:

Запрос:

Результат:

См. также

runningAccumulate

Агрегирует состояния агрегатной функции для каждой строки блока данных.

примечание

Состояние сбрасывается для каждого нового блока данных. Из-за такого поведения, подверженного ошибкам, функция УСТАРЕЛА, пожалуйста, используйте соответствующие оконные функции вместо этого.

Синтаксис

Аргументы

  • agg_state — Состояние агрегатной функции. AggregateFunction.
  • grouping — Ключ группировки. Необязательно. Состояние функции сбрасывается, если значение grouping изменяется. Это может быть любым из поддерживаемых типов данных, для которых определен оператор равенства.

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

  • Каждая результирующая строка содержит результат агрегатной функции, накопленный для всех входных строк от 0 до текущей позиции. runningAccumulate сбрасывает состояния для каждого нового блока данных или при изменении значения grouping.

Тип зависит от используемой агрегатной функции.

Примеры

Рассмотрите, как можно использовать runningAccumulate для нахождения кумулятивной суммы чисел без группировки и с группировкой.

Запрос:

Результат:

Подзапрос генерирует sumState для каждого числа от 0 до 9. sumState возвращает состояние функции sum, которое содержит сумму одного числа.

Весь запрос выполняет следующее:

  1. Для первой строки runningAccumulate берет sumState(0) и возвращает 0.
  2. Для второй строки функция объединяет sumState(0) и sumState(1), в результате чего получается sumState(0 + 1), и возвращает 1 как результат.
  3. Для третьей строки функция объединяет sumState(0 + 1) и sumState(2), в результате чего получается sumState(0 + 1 + 2), и возвращает 3 как результат.
  4. Действия повторяются до конца блока.

Следующий пример показывает использование параметра groupping:

Запрос:

Результат:

Как видно, runningAccumulate объединяет состояния для каждой группы строк отдельно.

joinGet

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

примечание

Поддерживает только таблицы, созданные с оператором ENGINE = Join(ANY, LEFT, <join_keys>).

Синтаксис

Аргументы

  • join_storage_table_nameидентификатор, указывающий, где производится поиск.
  • value_column — имя столбца таблицы, содержащего необходимые данные.
  • join_keys — список ключей.
примечание

Идентификатор ищется в базе данных по умолчанию (см. настройку default_database в файле конфигурации). Чтобы переопределить базу данных по умолчанию, используйте USE db_name или укажите базу данных и таблицу через разделитель db_name.db_table, как в примере.

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

  • Возвращает список значений, соответствующих списку ключей.
примечание

Если конкретный ключ отсутствует в исходной таблице, то будет возвращено 0 или null в зависимости от настройки join_use_nulls во время создания таблицы. Более подробную информацию о join_use_nulls см. в операции Join.

Пример

Входная таблица:

Запрос:

Результат:

Настройка join_use_nulls может быть использована во время создания таблицы для изменения поведения того, что возвращается, если ключ не существует в исходной таблице.

Запрос:

Результат:

joinGetOrNull

Как joinGet, но возвращает NULL, когда ключ отсутствует, вместо возвращения значения по умолчанию.

Синтаксис

Аргументы

  • join_storage_table_nameидентификатор, указывающий, где производится поиск.
  • value_column — имя столбца таблицы, содержащего необходимые данные.
  • join_keys — список ключей.
примечание

Идентификатор ищется в базе данных по умолчанию (см. настройку default_database в файле конфигурации). Чтобы переопределить базу данных по умолчанию, используйте USE db_name или укажите базу данных и таблицу через разделитель db_name.db_table, как в примере.

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

  • Возвращает список значений, соответствующих списку ключей.
примечание

Если конкретный ключ отсутствует в исходной таблице, то для этого ключа будет возвращен NULL.

Пример

Входная таблица:

Запрос:

Результат:

catboostEvaluate

Not supported in ClickHouse Cloud
примечание

Эта функция недоступна в ClickHouse Cloud.

Оценка внешней модели CatBoost. CatBoost — это библиотека градиентного бустинга с открытым исходным кодом, разработанная Яндексом для машинного обучения. Принимает путь к модели CatBoost и аргументы модели (признаки). Возвращает Float64.

Синтаксис

Пример

Предварительные требования

  1. Постройте библиотеку оценки CatBoost

Перед оценкой моделей CatBoost библиотека libcatboostmodel.<so|dylib> должна быть доступна. См. документацию CatBoost о том, как ее скомпилировать.

Далее укажите путь к libcatboostmodel.<so|dylib> в конфигурации ClickHouse:

По соображениям безопасности и изоляции оценка модели не выполняется в процессе сервера, а в процессе моста clickhouse-library-bridge. При первом выполнении catboostEvaluate(), сервер запускает процесс библиотеки до того, как его еще нет. Оба процесса взаимодействуют с помощью HTTP интерфейса. Порт 9012 используется по умолчанию. Другой порт можно задать следующим образом - это полезно, если порт 9012 уже занят другим сервисом.

  1. Обучить модель CatBoost с использованием libcatboost

См. Обучение и применение моделей о том, как обучать модели CatBoost на основе обучающего набора данных.

throwIf

Выбросить исключение, если аргумент x истинный.

Синтаксис

Аргументы

  • x - условие для проверки.
  • message - постоянная строка, предоставляющая пользовательское сообщение об ошибке. Необязательно.
  • error_code - постоянное целое число, предоставляющее пользовательский код ошибки. Необязательно.

Для использования аргумента error_code параметр конфигурации allow_custom_error_code_in_throwif должен быть включен.

Пример

Результат:

identity

Возвращает свой аргумент. Предназначен для отладки и тестирования. Позволяет отменить использование индекса и получить производительность запроса полного сканирования. Когда запрос анализируется на предмет возможного использования индекса, анализатор игнорирует все в функциях identity. Также отключает сведение констант.

Синтаксис

Пример

Запрос:

Результат:

getSetting

Возвращает текущее значение пользовательской настройки.

Синтаксис

Параметр

  • custom_setting — Имя настройки. String.

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

  • Текущее значение настройки.

Пример

Результат:

См. также

getSettingOrDefault

Возвращает текущее значение пользовательской настройки или возвращает значение по умолчанию, указанное во втором аргументе, если пользовательская настройка не установлена в текущем профиле.

Синтаксис

Параметр

  • custom_setting — Имя настройки. String.
  • default_value — Значение, которое следует вернуть, если custom_setting не установлена. Значение может быть любого типа данных или Null.

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

  • Текущее значение настройки или default_value, если настройка не установлена.

Пример

Результат:

См. также

isDecimalOverflow

Проверяет, находится ли значение Decimal вне его точности или вне указанной точности.

Синтаксис

Аргументы

  • d — значение. Decimal.
  • p — точность. Необязательно. Если опущено, используется начальная точность первого аргумента. Этот параметр может быть полезен для миграции данных из/в другую базу данных или файл. UInt8.

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

  • 1 — Десятичное значение имеет больше цифр, чем допускается его точностью,
  • 0 — Десятичное значение удовлетворяет указанной точности.

Пример

Запрос:

Результат:

countDigits

Возвращает количество десятичных цифр, необходимых для представления значения.

Синтаксис

Аргументы

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

  • Количество цифр. UInt8.
примечание

Для значений Decimal учитываются их масштабы: вычисляет результат по базовому целочисленному типу, который равен (value * scale). Например: countDigits(42) = 2, countDigits(42.000) = 5, countDigits(0.04200) = 4. Т.е. вы можете проверить десятичное переполнение для Decimal64 с использованием countDecimal(x) > 18. Это медленный вариант isDecimalOverflow.

Пример

Запрос:

Результат:

errorCodeToName

Синтаксис

Результат:

tcpPort

Возвращает номер порта TCP интерфейса, слушаемого этим сервером. Если выполнен в контексте распределенной таблицы, эта функция генерирует обычный столбец со значениями, относящимися к каждому шардированию. В противном случае она выдает константное значение.

Синтаксис

Аргументы

  • Нет.

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

  • Номер TCP порта. UInt16.

Пример

Запрос:

Результат:

См. также

currentProfiles

Возвращает список текущих профилей настроек для текущего пользователя.

Команда SET PROFILE может быть использована для изменения текущего профиля настроек. Если команда SET PROFILE не использовалась, функция возвращает профили, указанные в определении текущего пользователя (см. CREATE USER).

Синтаксис

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

  • Список текущих профилей настроек пользователя. Array(String).

enabledProfiles

Возвращает профили настроек, назначенные текущему пользователю как явно, так и неявно. Явно назначенные профили совпадают с теми, что возвращает функция currentProfiles. Неявно назначенные профили включают родительские профили других назначенных профилей, профили, назначенные через предоставленные роли, профили, назначенные через собственные настройки и основной профиль по умолчанию (см. раздел default_profile в основном файле конфигурации сервера).

Синтаксис

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

  • Список активных профилей настроек. Array(String).

defaultProfiles

Возвращает все профили, указанные в определении текущего пользователя (см. оператор CREATE USER).

Синтаксис

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

  • Список профилей настроек по умолчанию. Array(String).

currentRoles

Возвращает роли, назначенные текущему пользователю. Роли могут быть изменены оператором SET ROLE. Если оператор SET ROLE не использовался, функция currentRoles возвращает то же самое, что и defaultRoles.

Синтаксис

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

  • Список текущих ролей текущего пользователя. Array(String).

enabledRoles

Возвращает имена текущих ролей и ролей, предоставленных некоторым из текущих ролей.

Синтаксис

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

  • Список активных ролей для текущего пользователя. Array(String).

defaultRoles

Возвращает роли, которые включены по умолчанию для текущего пользователя при входе. Изначально это все роли, предоставленные текущему пользователю (см. GRANT), но это может быть изменено оператором SET DEFAULT ROLE.

Синтаксис

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

  • Список ролей по умолчанию для текущего пользователя. Array(String).

getServerPort

Возвращает номер порта сервера. Когда порт не используется сервером, выбрасывает исключение.

Синтаксис

Аргументы

  • port_name — Имя порта сервера. String. Возможные значения:

    • 'tcp_port'
    • 'tcp_port_secure'
    • 'http_port'
    • 'https_port'
    • 'interserver_http_port'
    • 'interserver_https_port'
    • 'mysql_port'
    • 'postgresql_port'
    • 'grpc_port'
    • 'prometheus.port'

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

  • Номер порта сервера. UInt16.

Пример

Запрос:

Результат:

queryID

Возвращает ID текущего запроса. Другие параметры запроса могут быть извлечены из таблицы system.query_log через query_id.

В отличие от функции initialQueryID, queryID может возвращать разные результаты на разных шардерах (см. пример).

Синтаксис

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

  • ID текущего запроса. String

Пример

Запрос:

Результат:

initialQueryID

Возвращает ID первоначального текущего запроса. Другие параметры запроса могут быть извлечены из таблицы system.query_log через initial_query_id.

В отличие от функции queryID, initialQueryID возвращает одни и те же результаты на разных шардерах (см. пример).

Синтаксис

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

  • ID первоначального текущего запроса. String

Пример

Запрос:

Результат:

initialQueryStartTime

Возвращает время начала первоначального текущего запроса.

initialQueryStartTime возвращает одни и те же результаты на разных шардерах (см. пример).

Синтаксис

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

  • Время начала первоначального текущего запроса. DateTime

Пример

Запрос:

Результат:

partitionID

Вычисляет ID раздела.

примечание

Эта функция медленная и не должна вызываться для большого количества строк.

Синтаксис

Аргументы

  • x — Столбец, для которого нужно вернуть ID раздела.
  • y, ... — Остальные N столбцов, для которых нужно вернуть ID раздела (необязательно).

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

  • ID раздела, к которому принадлежит строка. String.

Пример

Запрос:

Результат:

shardNum

Возвращает индекс шардера, который обрабатывает часть данных в распределенном запросе. Индексы начинаются с 1. Если запрос не распределенный, тогда возвращается константное значение 0.

Синтаксис

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

  • Индекс шардера или константное значение 0. UInt32.

Пример

В следующем примере используется конфигурация с двумя шардерами. Запрос выполняется на таблице system.one на каждом шардировании.

Запрос:

Результат:

См. также

shardCount

Возвращает общее количество шардов для распределенного запроса. Если запрос не распределенный, тогда возвращается константное значение 0.

Синтаксис

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

  • Общее количество шардов или 0. UInt32.

См. также

  • Пример функции shardNum() также содержит вызов функции shardCount().

getOSKernelVersion

Возвращает строку с текущей версией ядра ОС.

Синтаксис

Аргументы

  • Нет.

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

  • Текущая версия ядра ОС. String.

Пример

Запрос:

Результат:

zookeeperSessionUptime

Возвращает время работы текущей сессии ZooKeeper в секундах.

Синтаксис

Аргументы

  • Нет.

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

  • Время работы текущей сессии ZooKeeper в секундах. UInt32.

Пример

Запрос:

Результат:

generateRandomStructure

Генерирует случайную структуру таблицы в формате column1_name column1_type, column2_name column2_type, ....

Синтаксис

Аргументы

  • number_of_columns — Желаемое количество столбцов в результирующей структуре таблицы. Если установлено в 0 или Null, количество столбцов будет случайным от 1 до 128. Значение по умолчанию: Null.
  • seed - Случайное семя для получения стабильных результатов. Если семя не указано или установлено в Null, оно генерируется случайным образом.

Все аргументы должны быть константами.

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

  • Случайно сгенерированная структура таблицы. String.

Примеры

Запрос:

Результат:

Запрос:

Результат:

Запрос:

Результат:

Примечание: максимальная глубина вложения сложных типов (Array, Tuple, Map, Nested) ограничена 16.

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

structureToCapnProtoSchema

Конвертирует структуру таблицы ClickHouse в схему CapnProto.

Синтаксис

Аргументы

  • structure — Структура таблицы в формате column1_name column1_type, column2_name column2_type, ....
  • root_struct_name — Имя для корневой структуры в схеме CapnProto. Значение по умолчанию - Message;

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

  • Схема CapnProto. String.

Примеры

Запрос:

Результат:

Запрос:

Результат:

Запрос:

Результат:

structureToProtobufSchema

Конвертирует структуру таблицы ClickHouse в схему Protobuf.

Синтаксис

Аргументы

  • structure — Структура таблицы в формате column1_name column1_type, column2_name column2_type, ....
  • root_message_name — Имя для корневого сообщения в схеме Protobuf. Значение по умолчанию - Message;

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

  • Схема Protobuf. String.

Примеры

Запрос:

Результат:

Запрос:

Результат:

Запрос:

Результат:

formatQuery

Возвращает отформатированную, возможно многострочную, версию данного SQL-запроса.

Выбрасывает исключение, если запрос не имеет правильной формы. Для возврата NULL вместо этого можно использовать функцию formatQueryOrNull().

Синтаксис

Аргументы

  • query - SQL-запрос, который необходимо отформатировать. String

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

  • Отформатированный запрос. String.

Пример

Результат:

formatQuerySingleLine

Как formatQuery(), но возвращаемая отформатированная строка не содержит переносов строк.

Выбрасывает исключение, если запрос не имеет правильной формы. Для возврата NULL вместо этого можно использовать функцию formatQuerySingleLineOrNull().

Синтаксис

Аргументы

  • query - SQL-запрос, который необходимо отформатировать. String

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

  • Отформатированный запрос. String.

Пример

Результат:

variantElement

Извлекает столбец с указанным типом из столбца Variant.

Синтаксис

Аргументы

  • variant — Столбец Variant. Variant.
  • type_name — Имя варианта типа для извлечения. String.
  • default_value - Значение по умолчанию, которое будет использоваться, если вариант не имеет варианта с указанным типом. Может быть любого типа. Необязательный.

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

  • Подколонка столбца Variant с указанным типом.

Пример

variantType

Возвращает имя типа варианта для каждой строки столбца Variant. Если строка содержит NULL, она возвращает 'None'.

Синтаксис

Аргументы

  • variant — Столбец Variant. Variant.

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

  • Enum8 столбец с именем типа варианта для каждой строки.

Пример

minSampleSizeConversion

Вычисляет минимально необходимый размер выборки для теста A/B, сравнивающего конверсии (доли) в двух выборках.

Синтаксис

Использует формулу, описанную в этом статье. Предполагает равные размеры групп обработки и контроля. Возвращает размер выборки, необходимый для одной группы (т.е. размер выборки, необходимый для всего эксперимента, составляет вдвое больше возвращаемого значения).

Аргументы

  • baseline — Базовая конверсия. Float.
  • mde — Минимально обнаруживаемый эффект (MDE) в процентных пунктах (например, для базовой конверсии 0.25 MDE 0.03 означает ожидаемое изменение до 0.25 ± 0.03). Float.
  • power — Необходимая статистическая мощность теста (1 - вероятность ошибки второго рода). Float.
  • alpha — Необходимый уровень значимости теста (вероятность ошибки первого рода). Float.

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

Именованный Tuple с 3 элементами:

  • "minimum_sample_size" — Необходимый размер выборки. Float64.
  • "detect_range_lower" — Нижний предел диапазона значений, которые нельзя обнаружить с возвращаемым необходимым размером выборки (т.е. все значения, меньшие или равные "detect_range_lower", можно обнаружить с предоставленным alpha и power). Рассчитывается как baseline - mde. Float64.
  • "detect_range_upper" — Верхний предел диапазона значений, которые нельзя обнаружить с возвращаемым необходимым размером выборки (т.е. все значения, большие или равные "detect_range_upper", можно обнаружить с предоставленным alpha и power). Рассчитывается как baseline + mde. Float64.

Пример

Следующий запрос вычисляет необходимый размер выборки для теста A/B с базовой конверсией 25%, MDE 3%, уровнем значимости 5% и желаемой статистической мощностью 80%:

Результат:

minSampleSizeContinuous

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

Синтаксис

Псевдоним: minSampleSizeContinous

Использует формулу, описанную в этом статье. Предполагает равные размеры групп обработки и контроля. Возвращает необходимый размер выборки для одной группы (т.е. размер выборки, необходимый для всего эксперимента, составляет вдвое больше возвращаемого значения). Также предполагает равную дисперсию метрики тестирования в группах обработки и контроля.

Аргументы

  • baseline — Базовое значение метрики. Integer или Float.
  • sigma — Базовое стандартное отклонение метрики. Integer или Float.
  • mde — Минимально обнаруживаемый эффект (MDE) в процентах от базового значения (например, для базового значения 112.25 MDE 0.03 означает ожидаемое изменение до 112.25 ± 112.25*0.03). Integer или Float.
  • power — Необходимая статическая мощность теста (1 - вероятность ошибки второго рода). Integer или Float.
  • alpha — Необходимый уровень значимости теста (вероятность ошибки первого рода). Integer или Float.

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

Именованный Tuple с 3 элементами:

  • "minimum_sample_size" — Необходимый размер выборки. Float64.
  • "detect_range_lower" — Нижний предел диапазона значений, которые нельзя обнаружить с возвращаемым необходимым размером выборки (т.е. все значения, меньшие или равные "detect_range_lower", можно обнаружить с предоставленным alpha и power). Рассчитывается как baseline * (1 - mde). Float64.
  • "detect_range_upper" — Верхний предел диапазона значений, которые нельзя обнаружить с возвращаемым необходимым размером выборки (т.е. все значения, большие или равные "detect_range_upper", можно обнаружить с предоставленным alpha и power). Рассчитывается как baseline * (1 + mde). Float64.

Пример

Следующий запрос вычисляет необходимый размер выборки для теста A/B по метрике с базовым значением 112.25, стандартным отклонением 21.1, MDE 3%, уровнем значимости 5% и желаемой статистической мощностью 80%:

Результат:

connectionId

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

Синтаксис

Псевдоним: connection_id.

Параметры

Нет.

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

Текущий идентификатор соединения. UInt64.

Детали реализации

Эта функция наиболее полезна в сценариях отладки или для внутренних нужд в обработчике MySQL. Она была создана для совместимости с функцией MySQL CONNECTION_ID. Обычно она не используется в производственных запросах.

Пример

Запрос:

getClientHTTPHeader

Получает значение HTTP-заголовка.

Если нет такого заголовка или текущий запрос не выполнен через HTTP-интерфейс, функция возвращает пустую строку. Некоторые HTTP-заголовки (например, Authentication и X-ClickHouse-*) ограничены.

Функция требует, чтобы настройка allow_get_client_http_header была включена. Данная настройка по умолчанию не включена по соображениям безопасности, так как некоторые заголовки, такие как Cookie, могут содержать конфиденциальную информацию.

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

Если функция используется в контексте распределенного запроса, то она возвращает непустой результат только на узле инициатора.

showCertificate

Показывает информацию о текущем сертификате безопасности Secure Sockets Layer (SSL) сервера, если он был настроен. См. Настройка SSL-TLS для получения дополнительной информации о том, как настроить ClickHouse для использования сертификатов OpenSSL для проверки соединений.

Синтаксис

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

  • Карта пар ключ-значение, относящаяся к настроенному SSL-сертификату. Map(String, String).

Пример

Запрос:

Результат:

lowCardinalityIndices

Возвращает позицию значения в словаре LowCardinality столбца. Позиции начинаются с 1. Поскольку LowCardinality имеют словари по частям, эта функция может возвращать разные позиции для одного и того же значения в разных частях.

Синтаксис

Аргументы

  • col — столбец с низкой кардинальностью. LowCardinality.

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

  • Позиция значения в словаре текущей части. UInt64.

Пример

Запрос:

Результат:

lowCardinalityKeys

Возвращает значения словаря LowCardinality столбца. Если блок меньше или больше размера словаря, результат будет обрезан или расширен с использованием значений по умолчанию. Поскольку LowCardinality имеют словари по частям, эта функция может возвращать разные значения словаря в разных частях.

Синтаксис

Аргументы

  • col — столбец с низкой кардинальностью. LowCardinality.

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

  • Ключи словаря. UInt64.

Пример

Запрос:

Результат:

displayName

Возвращает значение display_name из конфигурации или полное квалифицированное доменное имя (FQDN) сервера, если оно не установлено.

Синтаксис

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

  • Значение display_name из конфигурации или FQDN сервера, если не установлено. String.

Пример

display_name может быть установлен в config.xml. Рассмотрим, например, сервер с настроенным display_name на 'production':

Запрос:

Результат:

transactionID

Experimental feature. Learn more.
Not supported in ClickHouse Cloud

Возвращает идентификатор транзакции.

примечание

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

Для получения дополнительной информации смотрите страницу Поддержка транзакций (ACID).

Синтаксис

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

  • Возвращает кортеж, состоящий из start_csn, local_tid и host_id. Tuple.

  • start_csn: Глобальный последовательный номер, самая новая метка времени коммита, которая была видна, когда началась эта транзакция. UInt64.

  • local_tid: Локальный последовательный номер, уникальный для каждой транзакции, начатой этим хостом в рамках определенного start_csn. UInt64.

  • host_id: UUID хоста, который начал эту транзакцию. UUID.

Пример

Запрос:

Результат:

transactionLatestSnapshot

Experimental feature. Learn more.
Not supported in ClickHouse Cloud

Возвращает новейший снимок (Commit Sequence Number) транзакции, доступный для чтения.

примечание

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

Для получения дополнительной информации смотрите страницу Поддержка транзакций (ACID).

Синтаксис

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

  • Возвращает последний снимок (CSN) транзакции. UInt64

Пример

Запрос:

Результат:

transactionOldestSnapshot

Experimental feature. Learn more.
Not supported in ClickHouse Cloud

Возвращает самый старый снимок (Commit Sequence Number), который виден для некоторых запущенных транзакции.

примечание

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

Для получения дополнительной информации смотрите страницу Поддержка транзакций (ACID).

Синтаксис

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

  • Возвращает самый старый снимок (CSN) транзакции. UInt64

Пример

Запрос:

Результат:

getSubcolumn

Берет выражение таблицы или идентификатор и постоянную строку с именем подполя, и возвращает запрашиваемое подполе, извлеченное из выражения.

Синтаксис

Аргументы

  • col_name — Выражение таблицы или идентификатор. Expression, Identifier.
  • subcol_name — Имя подполя. String.

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

  • Возвращает извлеченное подполе.

Пример

Запрос:

Результат:

getTypeSerializationStreams

Перечисляет пути потока для типа данных.

примечание

Эта функция предназначена для использования разработчиками.

Синтаксис

Аргументы

  • col — Столбец или строковое представление типа данных, для которого будет определён тип данных.

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

  • Возвращает массив со всеми под-путями сериализации. Array(String).

Примеры

Запрос:

Результат:

Запрос:

Результат:

globalVariable

Принимает строковый аргумент и возвращает значение глобальной переменной с таким именем. Эта функция предназначена для совместимости с MySQL и не нужна или полезна для нормальной работы ClickHouse. Лишь несколько фиктивных глобальных переменных определены.

Синтаксис

Аргументы

  • name — Имя глобальной переменной. String.

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

  • Возвращает значение переменной name.

Пример

Запрос:

Результат:

getMaxTableNameLengthForDatabase

Возвращает максимальную длину имени таблицы в указанной базе данных.

Синтаксис

Аргументы

  • database_name — Имя указанной базы данных. String.

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

  • Возвращает длину максимального имени таблицы.

Пример

Запрос:

Результат: