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

system.user_defined_functions

Описание

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

Столбцы

  • name (String) — Имя UDF.
  • load_status (Enum8('Success' = 0, 'Failed' = 1)) — Статус загрузки. Возможные значения:
    • Success — UDF загружена и готова к использованию
    • Failed — Не удалось загрузить UDF (подробности см. в поле 'loading_error_message').
  • loading_error_message (String) — Подробное сообщение об ошибке, если загрузка завершилась неудачно. Пусто, если загрузка прошла успешно.
  • last_successful_update_time (Nullable(DateTime)) — Таймстэмп последнего успешного обновления. NULL, если успешных обновлений не было.
  • loading_duration_ms (UInt64) — Время загрузки UDF в миллисекундах.
  • type (Enum8('executable' = 0, 'executable_pool' = 1)) — Тип UDF: 'executable' (один процесс) или 'executable_pool' (пул процессов).
  • command (String) — Скрипт или команда для выполнения этой UDF.
  • format (String) — Формат данных для ввода/вывода (например, 'TabSeparated', 'JSONEachRow').
  • return_type (String) — Тип возвращаемого значения функции (например, 'String', 'UInt64').
  • return_name (String) — Необязательный идентификатор возвращаемого значения. Пусто, если не настроен.
  • argument_types (Array(String)) — Массив типов аргументов (например, ['String', 'UInt64']).
  • 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) — Отправлять ли количество строк перед каждым фрагментом данных (логическое значение).
  • execute_direct (UInt8) — Выполнять ли команду напрямую (1) или через /bin/bash (0).
  • lifetime (UInt64) — Интервал перезагрузки в секундах. 0 означает, что перезагрузка отключена.
  • deterministic (UInt8) — Возвращает ли функция один и тот же результат для одних и тех же аргументов (логическое значение).

Пример

Чтобы просмотреть все пользовательские функции (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';

См. также