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

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

hostName

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

Синтаксис

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

getMacro

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

Синтаксис

Аргументы

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

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

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

Пример

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

Запрос:

Результат:

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

fqdn

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

Синтаксис

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

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

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

Пример

Результат:

basename

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

Аргументы

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

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

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

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

Пример

Запрос:

Результат:

Запрос:

Результат:

Запрос:

Результат:

visibleWidth

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

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

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

Обратные операции этой функции — 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

Возвращает ID сборки, созданный компилятором для работающего бинарного файла сервера 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

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

Синтаксис

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

примечание

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

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

Аргументы

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

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

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

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

Пример

Запрос:

Результат:

Запрос:

Результат:

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

Запрос:

Результат:

runningDifference

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

примечание

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

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

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

Синтаксис

Пример

Запрос:

Результат:

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

Запрос:

Результат:

Запрос:

Результат:

runningDifferenceStartingWithFirstValue

примечание

Эта функция устарела (см. примечание к 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:

Смотрите также

finalizeAggregation

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

Синтаксис

Аргументы

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

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

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

Примеры

Запрос:

Результат:

Запрос:

Результат:

Обратите внимание, что значения 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. Действия повторяются до конца блока.

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

Запрос:

Результат:

Как вы можете видеть, 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_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. При первом выполнении 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 — Название настройки. Строка.

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

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

Пример

Результат:

Смотрите также

getSettingOrDefault

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

Синтаксис

Параметр

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

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

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

Пример

Результат:

Смотрите также

isDecimalOverflow

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

Синтаксис

Аргументы

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

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

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

Пример

Запрос:

Результат:

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

Синтаксис

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

enabledProfiles

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

Синтаксис

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

defaultProfiles

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

Синтаксис

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

currentRoles

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

Синтаксис

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

enabledRoles

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

Синтаксис

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

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

defaultRoles

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

Синтаксис

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

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

getServerPort

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

Синтаксис

Аргументы

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

    • '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 может возвращать разные результаты на разных шардах (см. пример).

Синтаксис

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

Пример

Запрос:

Результат:

initialQueryID

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

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

Синтаксис

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

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

Пример

Запрос:

Результат:

initialQueryStartTime

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

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

Синтаксис

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

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

Пример

Запрос:

Результат:

partitionID

Вычисляет идентификатор партиции.

примечание

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

Синтаксис

Аргументы

  • x — Колонка, для которой нужно вернуть идентификатор партиции.
  • y, ... — Оставшиеся N колонок, для которых нужно вернуть идентификатор партиции (необязательно).

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

  • Идентификатор партиции, к которой будет принадлежать строка. Строка.

Пример

Запрос:

Результат:

shardNum

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

Синтаксис

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

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

Пример

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

Запрос:

Результат:

Смотрите также

shardCount

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

Синтаксис

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

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

Смотрите также

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

getOSKernelVersion

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

Синтаксис

Аргументы

  • Нет.

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

Пример

Запрос:

Результат:

zookeeperSessionUptime

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

Синтаксис

Аргументы

  • Нет.

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

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

Пример

Запрос:

Результат:

generateRandomStructure

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

Синтаксис

Аргументы

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

Получает ID подключения клиента, который отправил текущий запрос, и возвращает его как целое число UInt64.

Синтаксис

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

Параметры

Нет.

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

Текущий 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

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

примечание

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

Для получения дополнительной информации см. страницу Поддержка транзакций (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.

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

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

Пример

Запрос:

Результат: