system.user_defined_functions
包含 User-Defined Functions (UDFs) 的加载状态、错误信息和配置元数据。
Columns:
加载状态
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) — I/O 的数据格式 (例如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 及其加载状态:
定位失败的 UDF:
另请参阅
- User-Defined Functions — 如何创建和配置 UDF (用户定义函数) 。