map_buckets MergeTree 설정
map_buckets MergeTree 설정 (map_buckets_* MergeTree settings)
이 문서는 Map 직렬화의 버킷 수 선정과 관련된 MergeTree 설정들을 다루는 페이지예요. 평균 맵 크기에서 버킷 수를 계산하는 계수와 전략, with_buckets 직렬화 적용을 위한 최소 평균 크기를 설정합니다.
출처: 문서
본문
이 설정들은 system.merge_tree_settings에서 확인할 수 있으며 ClickHouse 소스에서 자동 생성됩니다.
map_buckets_coefficient
map_buckets_strategy의 sqrt와 linear에서 평균 맵 크기로부터 버킷 수를 계산하는 데 사용하는 계수예요.
sqrt 전략: round(map_buckets_coefficient * sqrt(avg_map_size)).
linear 전략: round(map_buckets_coefficient * avg_map_size).
map_buckets_strategy가 constant일 때는 무시됩니다.
map_buckets_min_avg_size
with_buckets 직렬화를 적용하는 데 필요한 최소 평균 맵 크기(행당 키 수)예요. 평균 맵 크기가 이 값보다 작으면 다른 버킷 설정과 무관하게 단일 버킷이 사용됩니다. 0이면 임계값을 비활성화하고 항상 버킷팅 전략을 적용해요. 이 설정은 혜택이 미미한 작은 맵에 대해 버킷 직렬화의 오버헤드를 피하는 데 유용합니다.
map_buckets_strategy
평균 맵 크기에 따라 with_buckets Map 직렬화의 버킷 수를 선택하는 전략을 제어해요.
가능한 값:
- constant — 평균 맵 크기와 무관하게 항상 max_buckets_in_map을 버킷 수로 사용.
- sqrt — 버킷 수로 round(map_buckets_coefficient * sqrt(avg_map_size))를 사용하며, [1, max_buckets_in_map]로 제한됨.
- linear — 버킷 수로 round(map_buckets_coefficient * avg_map_size)를 사용하며, [1, max_buckets_in_map]로 제한됨.