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(用户定义函数)。