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

> 실행된 쿼리의 시작 시간, 처리 시간, 오류 메시지 등의 정보를 포함하는 시스템 테이블입니다.

# system.query_log

<Info>
  **ClickHouse Cloud에서 쿼리하기**

  이 시스템 테이블의 데이터는 ClickHouse Cloud의 각 노드에 로컬로 저장됩니다. 따라서 전체 데이터를 모두 확인하려면 `clusterAllReplicas` 함수를 사용해야 합니다. 자세한 내용은 [여기](/ko/reference/system-tables/overview#system-tables-in-clickhouse-cloud)를 참조하십시오.
</Info>

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

실행된 쿼리의 시작 시간, 소요 시간, 오류 메시지, 리소스 사용량 및 기타 실행 세부 정보와 같은 메타데이터와 통계를 저장합니다. 쿼리 결과는 저장하지 않습니다.

쿼리 로깅 설정은 서버 구성의 [query\_log](/ko/reference/settings/server-settings/settings#query_log) 섹션에서 변경할 수 있습니다.

[log\_queries = 0](/ko/reference/settings/session-settings#log_queries)을 설정하여 쿼리 로깅을 비활성화할 수 있습니다. 그러나 이 테이블의 정보는 문제 해결에 중요하므로 로깅을 끄는 것은 권장하지 않습니다.

데이터 플러시 주기는 [query\_log](/ko/reference/settings/server-settings/settings#query_log) 서버 설정 섹션의 `flush_interval_milliseconds` 매개변수로 설정됩니다. 강제로 플러시하려면 [SYSTEM FLUSH LOGS](/ko/reference/statements/system#flush-logs) 쿼리를 사용하십시오.

ClickHouse는 테이블의 데이터를 자동으로 삭제하지 않습니다. 자세한 내용은 [Introduction](/ko/reference/system-tables/overview#system-tables-introduction)을 참조하십시오.

`system.query_log` 테이블은 두 종류의 쿼리를 기록합니다.

1. 클라이언트가 직접 실행한 초기 쿼리입니다.
2. 다른 쿼리에 의해 시작된 자식 쿼리입니다(분산 쿼리 실행용). 이러한 쿼리 유형에서는 부모 쿼리에 대한 정보가 `initial_*` 컬럼에 표시됩니다.

각 쿼리는 쿼리 상태(`type` 컬럼 참조)에 따라 `query_log` 테이블에 1개 또는 2개의 행을 생성합니다.

1. 쿼리 실행이 성공하면 `QueryStart` 및 `QueryFinish` 타입의 행 2개가 생성됩니다.
2. 쿼리 처리 중 오류가 발생하면 `QueryStart` 및 `ExceptionWhileProcessing` 타입의 이벤트 2개가 생성됩니다.
3. 쿼리 시작 전에 오류가 발생하면 `ExceptionBeforeStart` 타입의 이벤트 1개가 생성됩니다.

[log\_queries\_probability](/ko/reference/settings/session-settings#log_queries_probability) 설정을 사용하여 `query_log` 테이블에 기록되는 쿼리 수를 줄일 수 있습니다.

[log\_formatted\_queries](/ko/reference/settings/session-settings#log_formatted_queries) 설정을 사용하여 서식이 지정된 쿼리를 `formatted_query` 컬럼에 기록할 수 있습니다.

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

* `hostname` ([LowCardinality(String)](/ko/reference/data-types/lowcardinality)) — 쿼리를 실행 중인 서버의 호스트명입니다.
* `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 값을 전송하며, 쿼리의 시작 서버(initiator)는 수신한 모든 값과 로컬 값을 합산합니다. 캐시 용량은 이 값에 영향을 주지 않습니다.
* `written_rows` ([UInt64](/ko/reference/data-types/int-uint)) — INSERT 쿼리의 경우 저장된 행 수입니다. 다른 쿼리의 경우 컬럼 값은 0입니다.
* `written_bytes` ([UInt64](/ko/reference/data-types/int-uint)) — INSERT 쿼리의 경우 기록된 바이트 수(비압축)입니다. 다른 쿼리에서는 컬럼 값이 0입니다.
* `result_rows` ([UInt64](/ko/reference/data-types/int-uint)) — SELECT 쿼리 결과의 행 수 또는 INSERT 쿼리의 행 수입니다.
* `result_bytes` ([UInt64](/ko/reference/data-types/int-uint)) — 쿼리 결과를 저장하는 데 사용되는 RAM 용량(바이트)입니다.
* `memory_usage` ([UInt64](/ko/reference/data-types/int-uint)) — 쿼리의 메모리 사용량입니다.
* `current_database` ([LowCardinality(String)](/ko/reference/data-types/lowcardinality)) — 현재 데이터베이스 이름입니다.
* `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` ([LowCardinality(String)](/ko/reference/data-types/lowcardinality)) — 쿼리 유형입니다.
* `databases` ([Array(LowCardinality(String))](/ko/reference/data-types/array)) — 쿼리에 있는 데이터베이스 이름입니다.
* `tables` ([Array(LowCardinality(String))](/ko/reference/data-types/array)) — 쿼리에 포함된 테이블 이름입니다.
* `columns` ([Array(LowCardinality(String))](/ko/reference/data-types/array)) — 쿼리에 있는 컬럼 이름입니다.
* `partitions` ([Array(LowCardinality(String))](/ko/reference/data-types/array)) — 쿼리에 포함된 파티션 이름입니다.
* `projections` ([Array(LowCardinality(String))](/ko/reference/data-types/array)) — 쿼리 실행 중 사용된 프로젝션 이름입니다.
* `views` ([Array(LowCardinality(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` ([LowCardinality(String)](/ko/reference/data-types/lowcardinality)) — 현재 쿼리를 실행한 사용자의 이름입니다.
* `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` ([LowCardinality(String)](/ko/reference/data-types/lowcardinality)) — 초기 쿼리(분산 쿼리 실행 시)를 실행한 사용자의 이름입니다.
* `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` ([LowCardinality(String)](/ko/reference/data-types/lowcardinality)) — 세션에서 인증을 거친 사용자의 이름입니다.
* `interface` ([UInt8](/ko/reference/data-types/int-uint)) — 쿼리가 시작된 접속 인터페이스입니다. 가능한 값: 1 — TCP, 2 — HTTP.
* `is_secure` ([UInt8](/ko/reference/data-types/int-uint)) — 쿼리가 보안 인터페이스를 통해 실행되었는지를 나타내는 플래그
* `os_user` ([LowCardinality(String)](/ko/reference/data-types/lowcardinality)) — clickhouse-client를 실행하는 운영체제 사용자 이름입니다.
* `client_hostname` ([LowCardinality(String)](/ko/reference/data-types/lowcardinality)) — clickhouse-client 또는 다른 TCP 클라이언트가 실행 중인 클라이언트 머신의 호스트명입니다.
* `client_name` ([LowCardinality(String)](/ko/reference/data-types/lowcardinality)) — clickhouse-client 또는 기타 TCP 클라이언트 이름입니다.
* `client_revision` ([UInt32](/ko/reference/data-types/int-uint)) — clickhouse-client 또는 다른 TCP 클라이언트의 버전입니다.
* `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 메서드가 사용되었습니다.
* `http_user_agent` ([LowCardinality(String)](/ko/reference/data-types/lowcardinality)) — HTTP 쿼리로 전달되는 HTTP header UserAgent입니다.
* `http_referer` ([String](/ko/reference/data-types/string)) — HTTP 쿼리로 전달되는 HTTP 헤더 Referer(쿼리를 보내는 페이지의 절대 주소 또는 부분 주소를 포함합니다).
* `forwarded_for` ([String](/ko/reference/data-types/string)) — HTTP 쿼리와 함께 전달되는 HTTP 헤더 X-Forwarded-For입니다.
* `quota_key` ([String](/ko/reference/data-types/string)) — 쿼터 설정에서 지정된 quota 키입니다(keyed 참조).
* `distributed_depth` ([UInt64](/ko/reference/data-types/int-uint)) — 쿼리가 서버 사이에서 몇 번 전달되었는지.
* `revision` ([UInt32](/ko/reference/data-types/int-uint)) — ClickHouse 리비전.
* `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(LowCardinality(String), UInt64)](/ko/reference/data-types/map)) — 여러 메트릭을 측정하는 ProfileEvents입니다. 이에 대한 설명은 system.events 테이블에서 확인할 수 있습니다.
* `Settings` ([Map(LowCardinality(String), LowCardinality(String))](/ko/reference/data-types/map)) — 클라이언트가 쿼리를 실행할 때 변경된 설정입니다. 설정 변경 로깅을 활성화하려면 log\_query\_settings 매개변수를 1로 설정하십시오.
* `used_aggregate_functions` ([Array(LowCardinality(String))](/ko/reference/data-types/array)) — 쿼리 실행 중 사용된 집계 함수의 정식 이름입니다.
* `used_aggregate_function_combinators` ([배열(LowCardinality(String))](/ko/reference/data-types/array)) — 쿼리 실행 중 사용된 집계 함수 combinator의 표준 이름입니다.
* `used_database_engines` ([Array(LowCardinality(String))](/ko/reference/data-types/array)) — 쿼리 실행 중 사용된 데이터베이스 엔진의 표준 이름입니다.
* `used_data_type_families` ([Array(LowCardinality(String))](/ko/reference/data-types/array)) — 쿼리 실행 중 사용된 데이터 타입 계열의 표준 이름입니다.
* `used_dictionaries` ([Array(LowCardinality(String))](/ko/reference/data-types/array)) — 쿼리 실행 중 사용된 딕셔너리의 표준 이름입니다.
* `used_formats` ([배열(LowCardinality(String))](/ko/reference/data-types/array)) — 쿼리 실행 중 사용된 포맷의 표준 이름입니다.
* `used_functions` ([Array(LowCardinality(String))](/ko/reference/data-types/array)) — 쿼리 실행 중 사용된 함수의 정식 이름입니다.
* `used_storages` ([Array(LowCardinality(String))](/ko/reference/data-types/array)) — 쿼리 실행 중 사용된 스토리지의 표준 이름입니다.
* `used_table_functions` ([Array(LowCardinality(String))](/ko/reference/data-types/array)) — 쿼리 실행 중 사용된 테이블 함수의 표준 이름입니다.
* `used_executable_user_defined_functions` ([Array(LowCardinality(String))](/ko/reference/data-types/array)) — 쿼리 실행 중 사용된 실행형 사용자 정의 함수의 정식 이름입니다.
* `used_sql_user_defined_functions` ([Array(LowCardinality(String))](/ko/reference/data-types/array)) — 쿼리 실행 중 사용된 SQL 사용자 정의 함수의 정규 이름입니다.
* `used_row_policies` ([Array(LowCardinality(String))](/ko/reference/data-types/array)) — 쿼리 실행 중 적용된 행 정책 이름의 목록입니다.
* `used_privileges` ([Array(LowCardinality(String))](/ko/reference/data-types/array)) — 쿼리 실행 중 성공적으로 검증된 권한입니다.
* `missing_privileges` ([Array(LowCardinality(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(LowCardinality(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="examples">
  ## 예시
</div>

**기본 예시**

```sql theme={null}
SELECT * FROM system.query_log WHERE type = 'QueryFinish' ORDER BY query_start_time DESC LIMIT 1 FORMAT Vertical;
```

```text theme={null}
Row 1:
──────
hostname:                              clickhouse.eu-central1.internal
type:                                  QueryFinish
event_date:                            2021-11-03
event_time:                            2021-11-03 16:13:54
event_time_microseconds:               2021-11-03 16:13:54.953024
query_start_time:                      2021-11-03 16:13:54
query_start_time_microseconds:         2021-11-03 16:13:54.952325
query_duration_ms:                     0
read_rows:                             69
read_bytes:                            6187
written_rows:                          0
written_bytes:                         0
result_rows:                           69
result_bytes:                          48256
memory_usage:                          0
current_database:                      default
query:                                 DESCRIBE TABLE system.query_log
formatted_query:
normalized_query_hash:                 8274064835331539124
query_kind:
databases:                             []
tables:                                []
columns:                               []
projections:                           []
views:                                 []
exception_code:                        0
exception:
stack_trace:
is_initial_query:                      1
user:                                  default
query_id:                              7c28bbbb-753b-4eba-98b1-efcbe2b9bdf6
address:                               ::ffff:127.0.0.1
port:                                  40452
initial_user:                          default
initial_query_id:                      7c28bbbb-753b-4eba-98b1-efcbe2b9bdf6
initial_address:                       ::ffff:127.0.0.1
initial_port:                          40452
initial_query_start_time:              2021-11-03 16:13:54
initial_query_start_time_microseconds: 2021-11-03 16:13:54.952325
interface:                             1
os_user:                               sevirov
client_hostname:                       clickhouse.eu-central1.internal
client_name:                           ClickHouse
client_revision:                       54449
client_version_major:                  21
client_version_minor:                  10
client_version_patch:                  1
http_method:                           0
http_user_agent:
http_referer:
forwarded_for:
quota_key:
revision:                              54456
log_comment:
thread_ids:                            [30776,31174]
ProfileEvents:                         {'Query':1,'NetworkSendElapsedMicroseconds':59,'NetworkSendBytes':2643,'SelectedRows':69,'SelectedBytes':6187,'ContextLock':9,'RWLockAcquiredReadLocks':1,'RealTimeMicroseconds':817,'UserTimeMicroseconds':427,'SystemTimeMicroseconds':212,'OSCPUVirtualTimeMicroseconds':639,'OSReadChars':894,'OSWriteChars':319}
Settings:                              {'load_balancing':'random','max_memory_usage':'10000000000'}
used_aggregate_functions:              []
used_aggregate_function_combinators:   []
used_database_engines:                 []
used_data_type_families:               []
used_dictionaries:                     []
used_formats:                          []
used_functions:                        []
used_storages:                         []
used_table_functions:                  []
used_executable_user_defined_functions:[]
used_sql_user_defined_functions:       []
used_privileges:                       []
missing_privileges:                    []
query_cache_usage:                     None
```

**Cloud 예시**

ClickHouse Cloud에서는 `system.query_log`가 각 노드에 로컬로 저장되므로, 모든 항목을 보려면 [`clusterAllReplicas`](/ko/reference/functions/table-functions/cluster)를 통해 쿼리해야 합니다.

예를 들어, “default” 클러스터의 모든 레플리카에 있는 `query&#95;log` 행을 집계하려면 다음과 같이 작성할 수 있습니다.

```sql theme={null}
SELECT * 
FROM clusterAllReplicas('default', system.query_log)
WHERE event_time >= now() - toIntervalHour(1)
LIMIT 10
SETTINGS skip_unavailable_shards = 1;
```

<div id="see-also">
  ## 관련 항목
</div>

* [system.query\_thread\_log](/ko/reference/system-tables/query_thread_log) — 이 테이블에는 각 쿼리 실행 스레드에 대한 정보가 포함되어 있습니다.
