object_shared MergeTree 설정
object_shared MergeTree 설정 (object_shared_data_* MergeTree settings)
이 문서는 JSON 데이터 타입의 공유 데이터 직렬화와 관련된 MergeTree 설정들을 다루는 페이지예요. Compact/Wide 파트의 버킷 수, 공유 데이터 직렬화 버전, 청크 당 목표 행 수를 설정합니다.
출처: 문서
본문
이 설정들은 system.merge_tree_settings에서 확인할 수 있으며 ClickHouse 소스에서 자동 생성됩니다.
object_shared_data_buckets_for_compact_part
Compact 파트에서 JSON 공유 데이터 직렬화를 위한 버킷 수예요. map_with_buckets, advanced, advanced_chunked 공유 데이터 직렬화에서 동작합니다. 허용되는 최댓값은 256이에요.
object_shared_data_buckets_for_wide_part
Wide 파트에서 JSON 공유 데이터 직렬화를 위한 버킷 수예요. map_with_buckets, advanced, advanced_chunked 공유 데이터 직렬화에서 동작합니다. 허용되는 최댓값은 256이에요.
object_shared_data_serialization_version
JSON 데이터 타입 내부의 공유 데이터를 위한 직렬화 버전이에요. 가능한 값:
- map — 공유 데이터를 Map(String, String)으로 저장.
- map_with_buckets — 공유 데이터를 여러 개의 별도 Map(String, String) 열로 저장함. 버킷을 사용하면 공유 데이터에서 개별 경로를 읽는 것이 개선됩니다.
- advanced — 공유 데이터에서 개별 경로를 읽는 것을 크게 개선하도록 설계된 특수 공유 데이터 직렬화. 이 직렬화는 많은 추가 정보를 저장하므로 디스크의 공유 데이터 저장 크기가 증가합니다.
- advanced_chunked — advanced와 같지만, 고유 경로가 많은 JSON 열의 병합 중 최고 메모리를 줄이기 위해 직렬화 중에 행을 더 작은 청크로 분할하는 것을 지원합니다. 청크 크기는 object_shared_data_target_chunk_rows 설정으로 제어됩니다.
map_with_buckets, advanced, advanced_chunked 직렬화의 버킷 수는 object_shared_data_buckets_for_compact_part/object_shared_data_buckets_for_wide_part 설정으로 결정됩니다.
object_shared_data_serialization_version_for_zero_level_parts
이 설정은 삽입 중에 생성되는 0레벨 파트에 대해 JSON 타입 내부 공유 데이터의 다른 직렬화 버전을 지정할 수 있게 해줘요. 0레벨 파트에는 advanced 또는 advanced_chunked 공유 데이터 직렬화를 사용하지 않는 것이 권장됩니다. 삽입 시간이 크게 늘어날 수 있기 때문이에요.
object_shared_data_target_chunk_rows
advanced_chunked JSON 공유 데이터 직렬화 동안 청크 당 목표 행 수예요. 이는 엄격한 한도가 아닙니다. 마지막 청크가 목표의 절반보다 작으면 이전 청크와 병합되므로 실제 청크 크기는 target/2부터 1.5 * target까지입니다. 값이 작을수록 고유 경로가 많은 JSON 열 병합 중 최고 메모리가 줄어들지만 청크 수는 늘어납니다.