asynchronous_* 서버 설정
asynchronous_* 서버 설정
이 페이지에서는 무거운 비동기 메트릭의 업데이트 주기, asynchronous_insert_log와 asynchronous_metric_log 시스템 테이블의 설정 등 asynchronous_* 계열 서버 설정을 설명할게요.
출처: 문서
본문
이 설정들은 ClickHouse 서버를 구성하며, ClickHouse 소스에서 자동으로 생성돼요.
asynchronous_heavy_metrics_update_period_s
무거운 비동기 메트릭(heavy asynchronous metrics)을 업데이트하는 주기(초)예요.
asynchronous_insert_log
async insert를 기록하는 asynchronous_insert_log 시스템 테이블에 대한 설정이에요. 다음 설정은 하위 태그(sub-tags)로 구성할 수 있어요.
| Setting | Description | Default | Note |
|---|---|---|---|
database |
데이터베이스의 이름이에요. | ||
table |
시스템 테이블의 이름이에요. | ||
engine |
시스템 테이블의 MergeTree Engine Definition이에요. | partition_by 또는 order_by가 정의된 경우 사용할 수 없어요. 지정하지 않으면 기본적으로 MergeTree가 선택돼요 |
|
partition_by |
시스템 테이블의 Custom partitioning key예요. | 시스템 테이블에 engine이 지정되면 partition_by 매개변수는 ‘engine’ 안에 직접 지정해야 해요 |
|
ttl |
테이블 TTL을 지정해요. | 시스템 테이블에 engine이 지정되면 ttl 매개변수는 ‘engine’ 안에 직접 지정해야 해요 |
|
order_by |
시스템 테이블의 Custom sorting key예요. engine이 정의된 경우 사용할 수 없어요. |
시스템 테이블에 engine이 지정되면 order_by 매개변수는 ‘engine’ 안에 직접 지정해야 해요 |
|
storage_policy |
테이블에 사용할 저장 정책(storage policy)의 이름이에요 (선택). | 시스템 테이블에 engine이 지정되면 storage_policy 매개변수는 ‘engine’ 안에 직접 지정해야 해요 |
|
settings |
MergeTree의 동작을 제어하는 Additional parameters예요 (선택). | 시스템 테이블에 engine이 지정되면 settings 매개변수는 ‘engine’ 안에 직접 지정해야 해요 |
|
flush_interval_milliseconds |
메모리 버퍼에서 테이블로 데이터를 플러시하는 주기예요. | 7500 |
|
max_size_rows |
로그의 최대 크기(줄 수)예요. 플러시되지 않은 로그의 양이 max_size에 도달하면 로그가 디스크에 덤프돼요. | 1048576 |
|
reserved_size_rows |
로그를 위해 미리 할당된 메모리 크기(줄 수)예요. | 8192 |
|
buffer_size_rows_flush_threshold |
줄 수에 대한 임계값이에요. 이 임계값에 도달하면 로그를 디스크에 플러시하는 작업이 백그라운드에서 시작돼요. | max_size_rows / 2 |
|
flush_on_crash |
크래시 발생 시 로그를 디스크에 덤프할지 설정해요. | false |
또한 다음 서버 레벨 설정이 모든 시스템 로그 테이블의 기본 플러시 정책을 제어해요.
<default_system_log_flush_policy>
<skip_alias_columns>true</skip_alias_columns>
</default_system_log_flush_policy>
| Setting | Description | Default |
|---|---|---|
skip_alias_columns |
true이면 ALIAS 컬럼이 시스템 로그 테이블 스키마에서 생략돼요. S3 기반 시스템 로그에 필요해요. |
false |
예시
<clickhouse>
<asynchronous_insert_log>
<database>system</database>
<table>asynchronous_insert_log</table>
<flush_interval_milliseconds>7500</flush_interval_milliseconds>
<partition_by>toYYYYMM(event_date)</partition_by>
<max_size_rows>1048576</max_size_rows>
<reserved_size_rows>8192</reserved_size_rows>
<buffer_size_rows_flush_threshold>524288</buffer_size_rows_flush_threshold>
<flush_on_crash>false</flush_on_crash>
<!-- <engine>Engine = MergeTree PARTITION BY event_date ORDER BY event_time TTL event_date + INTERVAL 30 day</engine> -->
</asynchronous_insert_log>
</clickhouse>
asynchronous_metric_log
ClickHouse Cloud 배포에서는 기본적으로 활성화돼요. 환경에서 이 설정이 기본적으로 활성화되어 있지 않다면, ClickHouse가 어떻게 설치되었는지에 따라 아래 지침을 따라 활성화하거나 비활성화할 수 있어요.
활성화 (Enabling)
system.asynchronous_metric_log의 비동기 메트릭 로그 기록 수집을 수동으로 켜려면 system table reference를 참고하고, 다음 내용으로 /etc/clickhouse-server/config.d/asynchronous_metric_log.xml을 생성하세요.
<clickhouse>
<asynchronous_metric_log>
<database>system</database>
<table>asynchronous_metric_log</table>
<flush_interval_milliseconds>7500</flush_interval_milliseconds>
<collect_interval_milliseconds>1000</collect_interval_milliseconds>
<max_size_rows>1048576</max_size_rows>
<reserved_size_rows>8192</reserved_size_rows>
<buffer_size_rows_flush_threshold>524288</buffer_size_rows_flush_threshold>
<flush_on_crash>false</flush_on_crash>
</asynchronous_metric_log>
</clickhouse>
비활성화 (Disabling)
asynchronous_metric_log 설정을 비활성화하려면 다음 내용으로 /etc/clickhouse-server/config.d/disable_asynchronous_metric_log.xml 파일을 생성해야 해요.
<clickhouse><asynchronous_metric_log remove="1" /></clickhouse>
다음 설정은 하위 태그(sub-tags)로 구성할 수 있어요.
| Setting | Description | Default | Note |
|---|---|---|---|
database |
데이터베이스의 이름이에요. | ||
table |
시스템 테이블의 이름이에요. | ||
engine |
시스템 테이블의 MergeTree Engine Definition이에요. | partition_by 또는 order_by가 정의된 경우 사용할 수 없어요. 지정하지 않으면 기본적으로 MergeTree가 선택돼요 |
|
partition_by |
시스템 테이블의 Custom partitioning key예요. | 시스템 테이블에 engine이 지정되면 partition_by 매개변수는 ‘engine’ 안에 직접 지정해야 해요 |
|
ttl |
테이블 TTL을 지정해요. | 시스템 테이블에 engine이 지정되면 ttl 매개변수는 ‘engine’ 안에 직접 지정해야 해요 |
|
order_by |
시스템 테이블의 Custom sorting key예요. engine이 정의된 경우 사용할 수 없어요. |
시스템 테이블에 engine이 지정되면 order_by 매개변수는 ‘engine’ 안에 직접 지정해야 해요 |
|
storage_policy |
테이블에 사용할 저장 정책(storage policy)의 이름이에요 (선택). | 시스템 테이블에 engine이 지정되면 storage_policy 매개변수는 ‘engine’ 안에 직접 지정해야 해요 |
|
settings |
MergeTree의 동작을 제어하는 Additional parameters예요 (선택). | 시스템 테이블에 engine이 지정되면 settings 매개변수는 ‘engine’ 안에 직접 지정해야 해요 |
|
flush_interval_milliseconds |
메모리 버퍼에서 테이블로 데이터를 플러시하는 주기예요. | 7500 |
|
max_size_rows |
로그의 최대 크기(줄 수)예요. 플러시되지 않은 로그의 양이 max_size에 도달하면 로그가 디스크에 덤프돼요. | 1048576 |
|
reserved_size_rows |
로그를 위해 미리 할당된 메모리 크기(줄 수)예요. | 8192 |
|
buffer_size_rows_flush_threshold |
줄 수에 대한 임계값이에요. 이 임계값에 도달하면 로그를 디스크에 플러시하는 작업이 백그라운드에서 시작돼요. | max_size_rows / 2 |
|
flush_on_crash |
크래시 발생 시 로그를 디스크에 덤프할지 설정해요. | false |
또한 다음 서버 레벨 설정이 모든 시스템 로그 테이블의 기본 플러시 정책을 제어해요.
<default_system_log_flush_policy>
<skip_alias_columns>true</skip_alias_columns>
</default_system_log_flush_policy>
| Setting | Description | Default |
|---|---|---|
skip_alias_columns |
true이면 ALIAS 컬럼이 시스템 로그 테이블 스키마에서 생략돼요. S3 기반 시스템 로그에 필요해요. |
false |