본문으로 바로가기
본문으로 바로가기

system.user_defined_functions

설명

사용자 정의 함수(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) — I/O용 데이터 포맷입니다(예: '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';

추가 참고