> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-revert-104359-revert-104251-parquet-single.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> 현재 사용자의 쿼리 로그 레코드를 저장하는 시스템 테이블입니다.

# system.user_query_log

<div id="description">
  ## 설명
</div>

현재 사용자의 쿼리 로그 레코드를 표시합니다. `query_log.database` 및 `query_log.table` 서버 설정으로 구성된 쿼리 로그 테이블(기본값: `system.query_log`)을 읽고, 쿼리를 시작한 사용자가 `currentUser()`와 같은 행만 반환합니다(쿼리를 시작한 사용자는 `initial_user`가 설정되어 있으면 해당 값으로, 그렇지 않으면 `user` 값으로 결정됩니다).

쿼리 로그 테이블 자체와 달리 `system.user_query_log`는 별도의 권한 부여 없이 읽을 수 있으므로, 다른 사용자의 쿼리에 대한 접근 권한을 부여하지 않고도 사용자가 자신의 쿼리를 확인할 수 있습니다.

이 기능은 쿼리 로그가 로컬에 저장된 경우에만 지원됩니다. `query_log.engine`이 `Distributed` 또는 읽기를 다른 서버에 위임하는 엔진으로 구성된 경우, ClickHouse 프로토콜 서버 경계를 넘어 필요한 접근 검사를 적용할 수 없으므로 `system.user_query_log`는 해당 테이블 읽기를 거부하고 예외를 발생시킵니다. 이 경우 `query_log.enable_user_query_log = 0`으로 테이블을 비활성화하십시오.

`query_log.enable_user_query_log` 서버 설정으로 테이블을 비활성화할 수 있습니다. 쿼리 로그가 구성되지 않았거나 해당 테이블이 아직 생성되지 않은 경우 `system.user_query_log`는 비어 있습니다.

상수와 비교하는 쿼리 로그의 파티션 및 키 컬럼(`event_date`, `event_time`, `query_start_time`, `query_id`, `type` 및 이와 유사한 스칼라 컬럼)에 대한 조건은 기반 쿼리 로그 테이블로 푸시다운됩니다. 따라서 아래 예시와 같은 일반적인 조회에서는 파티션 프루닝이 적용되며 보존된 전체 로그를 스캔하지 않습니다.

<Warning>
  이 테이블을 제공하는 ClickHouse 버전으로 업그레이드하기 전에 `system.user_query_log`라는 이름의 테이블을 생성한 경우, 기존 테이블의 이름을 변경하거나 삭제하거나 `query_log.enable_user_query_log`를 `0`으로 설정하기 전까지 서버가 시작되지 않습니다.
</Warning>

<div id="columns">
  ## 컬럼
</div>

* `hostname` ([String](/ko/reference/data-types/string)) — 쿼리를 실행하는 서버의 호스트명입니다.
* `type` ([Enum8('QueryStart' = 1, 'QueryFinish' = 2, 'ExceptionBeforeStart' = 3, 'ExceptionWhileProcessing' = 4)](/ko/reference/data-types/enum)) — 쿼리 실행 중 발생한 이벤트의 유형입니다. 값: `QueryStart` — 쿼리 실행이 성공적으로 시작됨, `QueryFinish` — 쿼리 실행이 성공적으로 완료됨, `ExceptionBeforeStart` — 쿼리 실행 시작 전 예외 발생, `ExceptionWhileProcessing` — 쿼리 실행 중 예외 발생입니다.
* `event_date` ([Date](/ko/reference/data-types/date)) — 쿼리 시작 날짜입니다.
* `event_time` ([DateTime](/ko/reference/data-types/datetime)) — 쿼리 시작 시간입니다.
* `event_time_microseconds` ([DateTime64(6)](/ko/reference/data-types/datetime64)) — 마이크로초 정밀도의 쿼리 시작 시간입니다.
* `query_start_time` ([DateTime](/ko/reference/data-types/datetime)) — 쿼리 실행 시작 시간입니다.
* `query_start_time_microseconds` ([DateTime64(6)](/ko/reference/data-types/datetime64)) — 마이크로초 정밀도의 쿼리 실행 시작 시간입니다.
* `query_duration_ms` ([UInt64](/ko/reference/data-types/int-uint)) — 밀리초 단위의 쿼리 실행 시간입니다.
* `read_rows` ([UInt64](/ko/reference/data-types/int-uint)) — 쿼리에 참여한 모든 테이블과 테이블 함수에서 읽은 총 행 수입니다. 일반 서브쿼리와 IN 및 JOIN용 서브쿼리가 포함됩니다. 분산 쿼리에서는 read\_rows에 모든 레플리카에서 읽은 총 행 수가 포함됩니다. 각 레플리카가 자체 read\_rows 값을 전송하면 쿼리를 시작한 서버가 수신한 값과 로컬 값을 모두 합산합니다. 캐시 볼륨은 이 값에 영향을 주지 않습니다.
* `read_bytes` ([UInt64](/ko/reference/data-types/int-uint)) — 쿼리에 참여한 모든 테이블과 테이블 함수에서 읽은 총 바이트 수입니다. 일반 서브쿼리와 IN 및 JOIN용 서브쿼리가 포함됩니다. 분산 쿼리에서는 read\_bytes에 모든 레플리카에서 읽은 총 바이트 수가 포함됩니다. 각 레플리카가 자체 read\_bytes 값을 전송하면 쿼리를 시작한 서버가 수신한 값과 로컬 값을 모두 합산합니다. 캐시 볼륨은 이 값에 영향을 주지 않습니다.
* `written_rows` ([UInt64](/ko/reference/data-types/int-uint)) — attached 상태인 materialized view 등 파이프라인에 의해 트리거된 다운스트림 삽입에서 기록된 행을 포함한, 쿼리가 기록한 행 수입니다. 동기 삽입에서는 이러한 다운스트림 행이 `query_kind` = `Insert` 항목에 기록됩니다. 비동기 삽입에서는 `query_kind` = `AsyncInsertFlush` 항목에 기록되며, 클라이언트 측 `Insert` 항목에는 클라이언트에서 수락한 행만 기록됩니다. 행을 기록하지 않는 쿼리에서는 0입니다.
* `written_bytes` ([UInt64](/ko/reference/data-types/int-uint)) — attached 상태인 materialized view 등 파이프라인에 의해 트리거된 다운스트림 삽입에서 기록된 바이트를 포함한, 쿼리가 기록한 바이트 수(비압축)입니다. 동기 삽입에서는 이러한 다운스트림 바이트가 `query_kind` = `Insert` 항목에 기록됩니다. 비동기 삽입에서는 `query_kind` = `AsyncInsertFlush` 항목에 기록되며, 클라이언트 측 `Insert` 항목에는 클라이언트에서 수락한 바이트만 기록됩니다. 데이터를 기록하지 않는 쿼리에서는 0입니다.
* `result_rows` ([UInt64](/ko/reference/data-types/int-uint)) — SELECT 쿼리 결과의 행 수 또는 삽입으로 기록된 행 수입니다. 동기 삽입에서는 `query_kind` = `Insert` 항목에 파이프라인에 의해 트리거된 다운스트림 삽입(예: attached 상태인 materialized view)으로 기록된 행이 포함됩니다. 비동기 삽입에서는 이러한 다운스트림 행이 `query_kind` = `AsyncInsertFlush` 항목에 기록되며, 클라이언트 측 `Insert` 항목에는 클라이언트에서 수락한 행만 기록됩니다.
* `result_bytes` ([UInt64](/ko/reference/data-types/int-uint)) — 쿼리 결과를 저장하는 데 사용된 RAM 용량(바이트)입니다.
* `memory_usage` ([UInt64](/ko/reference/data-types/int-uint)) — 쿼리의 메모리 사용량입니다.
* `current_database` ([String](/ko/reference/data-types/string)) — 현재 데이터베이스 이름입니다.
* `query` ([String](/ko/reference/data-types/string)) — 쿼리 문자열입니다.
* `formatted_query` ([String](/ko/reference/data-types/string)) — 포맷된 쿼리 문자열입니다.
* `normalized_query_hash` ([UInt64](/ko/reference/data-types/int-uint)) — 리터럴 값만 다른 쿼리에서는 동일한 값을 갖는 등의 숫자 해시 값입니다.
* `query_kind` ([String](/ko/reference/data-types/string)) — 쿼리 유형입니다.
* `databases` ([Array(String)](/ko/reference/data-types/array)) — 쿼리에 포함된 데이터베이스 이름입니다.
* `tables` ([Array(String)](/ko/reference/data-types/array)) — 쿼리에 포함된 테이블 이름입니다.
* `columns` ([Array(String)](/ko/reference/data-types/array)) — 쿼리에 포함된 컬럼 이름입니다.
* `partitions` ([Array(String)](/ko/reference/data-types/array)) — 쿼리에 포함된 파티션 이름입니다.
* `projections` ([Array(String)](/ko/reference/data-types/array)) — 쿼리 실행 중 사용된 프로젝션 이름입니다.
* `views` ([Array(String)](/ko/reference/data-types/array)) — 쿼리에 포함된 구체화된 뷰 또는 라이브 뷰의 이름입니다.
* `exception_code` ([Int32](/ko/reference/data-types/int-uint)) — 예외 코드입니다.
* `exception` ([String](/ko/reference/data-types/string)) — 예외 메시지입니다.
* `stack_trace` ([String](/ko/reference/data-types/string)) — 스택 트레이스입니다. 쿼리가 성공적으로 완료된 경우 빈 문자열입니다.
* `is_initial_query` ([UInt8](/ko/reference/data-types/int-uint)) — 쿼리 유형입니다. 가능한 값: 1 — 클라이언트가 시작한 쿼리, 0 — 분산 쿼리 실행의 일부로 다른 쿼리가 시작한 쿼리입니다.
* `connection_address` ([IPv6](/ko/reference/data-types/ipv6)) — 연결이 설정된 클라이언트의 IP 주소입니다. 프록시를 통해 연결된 경우 프록시의 주소입니다.
* `connection_port` ([UInt16](/ko/reference/data-types/int-uint)) — 연결이 설정된 클라이언트의 포트입니다. 프록시를 통해 연결된 경우 프록시의 포트입니다.
* `user` ([String](/ko/reference/data-types/string)) — 현재 쿼리를 시작한 사용자 이름입니다.
* `query_id` ([String](/ko/reference/data-types/string)) — 쿼리 ID입니다.
* `address` ([IPv6](/ko/reference/data-types/ipv6)) — 쿼리 실행에 사용된 IP 주소입니다. 프록시를 통해 연결되고 `auth_use_forwarded_address`가 설정된 경우 프록시 주소가 아닌 클라이언트 주소입니다.
* `port` ([UInt16](/ko/reference/data-types/int-uint)) — 쿼리 실행에 사용된 클라이언트 포트입니다. 프록시를 통해 연결되고 `auth_use_forwarded_address`가 설정된 경우 프록시 포트가 아닌 클라이언트 포트입니다.
* `initial_user` ([String](/ko/reference/data-types/string)) — 원본 쿼리를 실행한 사용자 이름입니다(분산 쿼리 실행).
* `initial_query_id` ([String](/ko/reference/data-types/string)) — 원본 쿼리 ID입니다(분산 쿼리 실행).
* `initial_address` ([IPv6](/ko/reference/data-types/ipv6)) — 상위 쿼리가 시작된 IP 주소입니다.
* `initial_port` ([UInt16](/ko/reference/data-types/int-uint)) — 상위 쿼리 실행에 사용된 클라이언트 포트입니다.
* `initial_query_start_time` ([DateTime](/ko/reference/data-types/datetime)) — 원본 쿼리 시작 시간입니다(분산 쿼리 실행).
* `initial_query_start_time_microseconds` ([DateTime64(6)](/ko/reference/data-types/datetime64)) — 마이크로초 정밀도의 원본 쿼리 시작 시간입니다(분산 쿼리 실행).
* `authenticated_user` ([String](/ko/reference/data-types/string)) — 세션에서 인증된 사용자 이름입니다.
* `interface` ([UInt8](/ko/reference/data-types/int-uint)) — 쿼리가 시작된 인터페이스입니다. 가능한 값: 1 — TCP, 2 — HTTP입니다.
* `is_secure` ([UInt8](/ko/reference/data-types/int-uint)) — 쿼리가 보안 인터페이스를 통해 실행되었는지를 나타내는 플래그
* `os_user` ([String](/ko/reference/data-types/string)) — clickhouse-client를 실행하는 운영 체제 사용자 이름입니다.
* `client_hostname` ([String](/ko/reference/data-types/string)) — clickhouse-client 또는 다른 TCP 클라이언트가 실행되는 클라이언트 머신의 호스트명입니다.
* `client_name` ([String](/ko/reference/data-types/string)) — clickhouse-client 또는 다른 TCP 클라이언트의 이름입니다.
* `client_agent` ([String](/ko/reference/data-types/string)) — 클라이언트를 호출한 AI 코딩 에이전트(예: `claude-code`, `cursor`)로, 환경 변수에서 감지됩니다. 에이전트가 감지되지 않으면 비어 있습니다.
* `client_revision` ([UInt32](/ko/reference/data-types/int-uint)) — clickhouse-client 또는 다른 TCP 클라이언트의 revision입니다.
* `client_version_major` ([UInt32](/ko/reference/data-types/int-uint)) — clickhouse-client 또는 다른 TCP 클라이언트의 주 버전입니다.
* `client_version_minor` ([UInt32](/ko/reference/data-types/int-uint)) — clickhouse-client 또는 다른 TCP 클라이언트의 부 버전입니다.
* `client_version_patch` ([UInt32](/ko/reference/data-types/int-uint)) — clickhouse-client 또는 다른 TCP 클라이언트 버전의 패치 구성 요소입니다.
* `script_query_number` ([UInt32](/ko/reference/data-types/int-uint)) — 여러 쿼리가 포함된 clickhouse-client 스크립트에서의 쿼리 번호입니다.
* `script_line_number` ([UInt32](/ko/reference/data-types/int-uint)) — 여러 쿼리가 포함된 clickhouse-client 스크립트에서 쿼리가 시작되는 줄 번호입니다.
* `http_method` ([UInt8](/ko/reference/data-types/int-uint)) — 쿼리를 시작한 HTTP 메서드입니다. 가능한 값: 0 - TCP 인터페이스에서 쿼리 시작, 1 - GET 메서드 사용, 2 - POST 메서드 사용, 4 - PUT 메서드 사용, 5 - DELETE 메서드 사용, 6 - HEAD 메서드 사용.
* `http_user_agent` ([String](/ko/reference/data-types/string)) — HTTP 쿼리에 전달된 UserAgent HTTP 헤더입니다.
* `http_referer` ([String](/ko/reference/data-types/string)) — HTTP 쿼리에 전달된 Referer HTTP 헤더입니다(쿼리를 수행한 페이지의 전체 또는 일부 주소를 포함합니다).
* `forwarded_for` ([String](/ko/reference/data-types/string)) — HTTP 쿼리에 전달된 X-Forwarded-For HTTP 헤더입니다.
* `quota_key` ([String](/ko/reference/data-types/string)) — 쿼터 설정에서 지정한 쿼터 키입니다(keyed 참조).
* `distributed_depth` ([UInt64](/ko/reference/data-types/int-uint)) — 쿼리가 서버 간에 전달된 횟수입니다.
* `revision` ([UInt32](/ko/reference/data-types/int-uint)) — ClickHouse revision입니다.
* `http_handler_name` ([String](/ko/reference/data-types/string)) — 쿼리를 호출한 SQL로 정의된 HTTP handler(CREATE HANDLER)의 이름입니다. 쿼리가 이러한 handler를 통해 호출되지 않은 경우 비어 있습니다.
* `http_request_url` ([String](/ko/reference/data-types/string)) — 쿼리를 호출한 HTTP 요청 경로(쿼리 문자열 제외)입니다. 민감한 요청 매개변수가 저장되지 않도록 쿼리 문자열은 생략됩니다. HTTP가 아닌 쿼리에서는 비어 있습니다.
* `log_comment` ([String](/ko/reference/data-types/string)) — 로그 주석입니다. max\_query\_size 이하 길이의 임의 문자열로 설정할 수 있습니다. 정의되지 않은 경우 빈 문자열입니다.
* `thread_ids` ([Array(UInt64)](/ko/reference/data-types/array)) — 쿼리 실행에 참여하는 스레드 ID입니다. 이 스레드들은 동시에 실행되지 않았을 수 있습니다.
* `peak_threads_usage` ([UInt64](/ko/reference/data-types/int-uint)) — 쿼리를 실행하는 동시 스레드의 최대 수입니다.
* `ProfileEvents` ([Map(String, UInt64)](/ko/reference/data-types/map)) — 다양한 메트릭을 측정하는 ProfileEvents입니다. 이에 대한 설명은 system.events 테이블에서 확인할 수 있습니다.
* `Settings` ([Map(String, String)](/ko/reference/data-types/map)) — 클라이언트가 쿼리를 실행할 때 변경된 설정입니다. 설정 변경 로깅을 활성화하려면 log\_query\_settings 매개변수를 1로 설정하십시오.
* `used_aggregate_functions` ([Array(String)](/ko/reference/data-types/array)) — 쿼리 실행 중 사용된 집계 함수의 정규 이름입니다.
* `used_aggregate_function_combinators` ([Array(String)](/ko/reference/data-types/array)) — 쿼리 실행 중 사용된 집계 함수 조합자의 정규 이름입니다.
* `used_database_engines` ([Array(String)](/ko/reference/data-types/array)) — 쿼리 실행 중 사용된 데이터베이스 엔진의 정규 이름입니다.
* `used_data_type_families` ([Array(String)](/ko/reference/data-types/array)) — 쿼리 실행 중 사용된 데이터 타입 계열의 정규 이름입니다.
* `used_dictionaries` ([Array(String)](/ko/reference/data-types/array)) — 쿼리 실행 중 사용된 딕셔너리의 정규 이름입니다.
* `used_formats` ([Array(String)](/ko/reference/data-types/array)) — 쿼리 실행 중 사용된 포맷의 정규 이름입니다.
* `used_functions` ([Array(String)](/ko/reference/data-types/array)) — 쿼리 실행 중 사용된 함수의 정규 이름입니다.
* `used_storages` ([Array(String)](/ko/reference/data-types/array)) — 쿼리 실행 중 사용된 스토리지의 정규 이름입니다.
* `used_table_functions` ([Array(String)](/ko/reference/data-types/array)) — 쿼리 실행 중 사용된 테이블 함수의 정규 이름입니다.
* `used_executable_user_defined_functions` ([Array(String)](/ko/reference/data-types/array)) — 쿼리 실행 중 사용된 실행형 사용자 정의 함수의 정규 이름입니다.
* `used_sql_user_defined_functions` ([Array(String)](/ko/reference/data-types/array)) — 쿼리 실행 중 사용된 SQL 사용자 정의 함수의 정규 이름입니다.
* `used_row_policies` ([Array(String)](/ko/reference/data-types/array)) — 쿼리 실행 중 사용된 행 정책 이름 목록입니다.
* `used_privileges` ([Array(String)](/ko/reference/data-types/array)) — 쿼리 실행 중 확인에 성공한 권한입니다.
* `missing_privileges` ([Array(String)](/ko/reference/data-types/array)) — 쿼리 실행 중 누락된 권한입니다.
* `transaction_id` ([Tuple(UInt64, UInt64, UUID)](/ko/reference/data-types/tuple)) — 이 쿼리가 실행된 트랜잭션의 식별자입니다.
* `query_cache_usage` ([Enum8('Unknown' = 0, 'None' = 1, 'Write' = 2, 'Read' = 3)](/ko/reference/data-types/enum)) — 쿼리 실행 중 쿼리 캐시 사용 상태입니다. 값: 'Unknown' = 상태를 알 수 없음, 'None' = 쿼리 결과가 쿼리 결과 캐시에 기록되거나 쿼리 결과 캐시에서 읽히지 않음, 'Write' = 쿼리 결과가 쿼리 결과 캐시에 기록됨, 'Read' = 쿼리 결과가 쿼리 결과 캐시에서 읽힘.
* `asynchronous_read_counters` ([Map(String, UInt64)](/ko/reference/data-types/map)) — 비동기 읽기 메트릭입니다.
* `is_internal` ([UInt8](/ko/reference/data-types/int-uint)) — 내부적으로 실행되는 보조 쿼리인지 여부를 나타냅니다.

**별칭:**

* `ProfileEvents.Names` — `mapKeys(ProfileEvents)`의 별칭입니다.
* `ProfileEvents.Values` — `mapValues(ProfileEvents)`의 별칭입니다.
* `Settings.Names` — `mapKeys(Settings)`의 별칭입니다.
* `Settings.Values` — `mapValues(Settings)`의 별칭입니다.

<div id="example">
  ## 예시
</div>

```sql theme={null}
SELECT
    query_start_time,
    query_duration_ms,
    query
FROM system.user_query_log
ORDER BY query_start_time DESC
LIMIT 10;
```
