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

system.user_defined_functions

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

Столбцы:

Статус загрузки

  • name (String) — имя UDF.
  • load_status (Enum8) — статус загрузки: Success (UDF загружена и готова), Failed (UDF не удалось загрузить).
  • loading_error_message (String) — подробное сообщение об ошибке при неудачной загрузке. Пусто, если загрузка прошла успешно.
  • last_successful_update_time (Nullable(DateTime)) — временная метка последней успешной загрузки. NULL, если загрузка ни разу не была успешной.
  • loading_duration_ms (UInt64) — время, затраченное на загрузку UDF, в миллисекундах.

Конфигурация UDF

  • type (Enum8) — тип UDF: executable (один процесс на блок) или executable_pool (постоянный пул процессов).
  • command (String) — скрипт или команда для выполнения, включая аргументы.
  • format (String) — формат данных для ввода/вывода (например, TabSeparated, JSONEachRow).
  • return_type (String) — тип возвращаемого значения функции (например, String, UInt64).
  • return_name (String) — необязательный идентификатор возвращаемого значения. Пусто, если не настроен.
  • argument_types (Array(String)) — массив типов аргументов.
  • argument_names (Array(String)) — массив имен аргументов. Пустые строки для безымянных аргументов.

Параметры выполнения

  • max_command_execution_time (UInt64) — максимальное количество секунд на обработку блока данных. Только для типа executable_pool.
  • command_termination_timeout (UInt64) — количество секунд до отправки SIGTERM процессу команды.
  • command_read_timeout (UInt64) — таймаут чтения из stdout команды в миллисекундах.
  • command_write_timeout (UInt64) — таймаут записи в stdin команды в миллисекундах.
  • pool_size (UInt64) — количество экземпляров процесса в пуле. Только для типа executable_pool.
  • send_chunk_header (UInt8) — отправлять ли количество строк перед каждым фрагментом данных (1 = true, 0 = false).
  • execute_direct (UInt8) — выполнять ли команду напрямую (1) или через /bin/bash (0).
  • lifetime (UInt64) — интервал перезагрузки в секундах. 0 означает, что перезагрузка отключена.
  • deterministic (UInt8) — возвращает ли функция одинаковый результат для одинаковых аргументов (1 = true, 0 = false).

Пример

Просмотреть все UDF и их статус загрузки:

SELECT
    name,
    load_status,
    type,
    command,
    return_type,
    argument_types
FROM system.user_defined_functions
FORMAT Vertical;
Row 1:
──────
name:           my_sum_udf
load_status:    Success
type:           executable
command:        /var/lib/clickhouse/user_scripts/sum.py
return_type:    UInt64
argument_types: ['UInt64','UInt64']

Найдите UDF, завершившиеся с ошибкой:

SELECT
    name,
    loading_error_message
FROM system.user_defined_functions
WHERE load_status = 'Failed';

См. также