asynchronous_* 서버 설정

asynchronous_* 서버 설정

이 페이지에서는 무거운 비동기 메트릭의 업데이트 주기, asynchronous_insert_logasynchronous_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

더 알아보기 (Learn more)