이 설정은 system.merge_tree_settings에서 확인할 수 있으며, ClickHouse 소스에서 자동으로 생성됩니다.
write_final_mark
유형
Bool
기본값
1
더 이상 사용되지 않는 설정이며, 아무런 동작도 하지 않습니다.
write_marks_for_substreams_in_compact_parts
유형
Bool
기본값
1
버전 이력
| 버전 | 기본값 | 설명 |
|---|---|---|
| 25.8 | 1 | 기본적으로 Compact 파트에서 서브스트림별 마크 작성을 활성화합니다 |
| 25.5 | 0 | 새로운 설정 |
Compact 파트에서 컬럼별이 아니라 각 서브스트림별로 마크를 작성하도록 합니다. 이를 통해 데이터 파트에서 개별 서브컬럼을 효율적으로 읽을 수 있습니다.
예를 들어, 컬럼 t Tuple(a String, b UInt32, c Array(Nullable(UInt32))) 는 다음 서브스트림으로 직렬화됩니다.
- 튜플 원소
a의 String 데이터용t.a - 튜플 원소
b의 UInt32 데이터용t.b - 튜플 원소
c의 배열 크기용t.c.size0 - 튜플 원소
c의 중첩 배열 원소에 대한 null 맵용t.c.null - 튜플 원소
c의 중첩 배열 원소에 대한 UInt32 데이터용t.c
이 설정이 활성화되면 이 5개의 서브스트림 각각에 대해 마크를 작성합니다. 즉, 필요할 경우 각 서브스트림의 데이터를 granule에서 개별적으로 읽을 수 있습니다. 예를 들어 서브컬럼 t.c를 읽으려는 경우
서브스트림 t.c.size0, t.c.null, t.c의 데이터만 읽고 t.a와 t.b 서브스트림의 데이터는 읽지 않습니다. 이 설정이 비활성화되면,
최상위 컬럼 t에 대해서만 마크를 작성합니다. 즉, 일부 서브스트림의 데이터만 필요하더라도 항상 granule에서 전체 컬럼 데이터를 읽게 됩니다.