merge_max MergeTree 설정

merge_max MergeTree 설정 (merge_max_block MergeTree settings)

이 문서는 병합 시 블록 크기와 캐시 예열·동적 하위 열 수와 관련된 MergeTree 설정들을 다루는 페이지예요. 병합할 파트에서 메모리로 읽는 행 수와 블록 형성 바이트 수, 캐시 예열 파트 크기, Compact/Wide 파트의 동적 하위 열 수를 설정합니다.

출처: 문서

본문

이 설정들은 system.merge_tree_settings에서 확인할 수 있으며 ClickHouse 소스에서 자동 생성됩니다.

merge_max_block_size

병합할 파트에서 메모리로 읽는 행 수예요. 가능한 값:

  • 양의 정수.

병합은 파트에서 행을 merge_max_block_size 행 단위의 블록으로 읽은 다음 병합하고 결과를 새 파트에 씁니다. 읽은 블록은 RAM에 놓이므로 merge_max_block_size는 병합에 필요한 RAM 크기에 영향을 줘요. 따라서 매우 넓은 행을 가진 테이블에서는 병합이 많은 RAM을 소모할 수 있어요(평균 행 크기가 100kb면 10개 파트를 병합할 때 (100kb * 10 * 8192) = ~ 8GB의 RAM). merge_max_block_size를 줄이면 병합에 필요한 RAM 양을 줄일 수 있지만 병합 속도는 느려집니다.

merge_max_block_size_bytes

병합 작업을 위해 블록에 형성해야 하는 바이트 수예요. 기본적으로 index_granularity_bytes와 같은 값을 가집니다.

merge_max_bytes_to_prewarm_cache

ClickHouse Cloud에서만 사용할 수 있어요. 병합 중 캐시를 예열하기 위한 파트(컴팩트 또는 패킹)의 최대 크기예요.

merge_max_dynamic_subcolumns_in_compact_part

병합 후 Compact 데이터 파트의 매 열에서 만들 수 있는 최대 동적 하위 열 수예요. 데이터 타입에 지정된 동적 파라미터와 무관하게 Compact 파트의 동적 하위 열 수를 제어할 수 있게 해줍니다. 예를 들어 테이블에 JSON(max_dynamic_paths=1024) 타입의 열이 있고 merge_max_dynamic_subcolumns_in_compact_part가 128로 설정되어 있으면, Compact 데이터 파트로 병합한 후 이 파트에서 동적 경로 수는 128로 줄어들고 128개의 경로만 동적 하위 열로 기록됩니다.

merge_max_dynamic_subcolumns_in_wide_part

병합 후 Wide 데이터 파트의 매 열에서 만들 수 있는 최대 동적 하위 열 수예요. 데이터 타입에 지정된 동적 파라미터와 무관하게 Wide 데이터 파트에서 생성되는 파일 수를 줄일 수 있게 해줍니다. 예를 들어 테이블에 JSON(max_dynamic_paths=1024) 타입의 열이 있고 merge_max_dynamic_subcolumns_in_wide_part가 128로 설정되어 있으면, Wide 데이터 파트로 병합한 후 이 파트에서 동적 경로 수는 128로 줄어들고 128개의 경로만 동적 하위 열로 기록됩니다.

더 알아보기 (Learn more)