INSERT 최소 블록 크기 관련 설정
INSERT 최소 블록 크기 관련 설정
테이블에 삽입할 블록의 최소 크기(바이트·행)를 제어하는 설정들이에요. 작은 블록은 더 큰 블록으로 스쿼시되며, 머티리얼라이즈드 뷰에 대한 스쿼시도 별도로 제어할 수 있답니다. 이 설정들은 system.settings 테이블에서 확인할 수 있고 소스 코드에서 자동 생성된 값들이에요.
출처: 문서
본문
이 설정들은 system.settings에서 확인할 수 있고, 소스 코드에서 자동 생성된 값들이에요.
min_insert_block_size_bytes
테이블에 삽입할 블록의 최소 크기(바이트)예요. 이 설정은 min_insert_block_size_rows와 함께 작동하며 같은 맥락(포맷 파싱과 INSERT 작업)에서 블록 형성을 제어해요. 이 설정들이 언제, 어떻게 적용되는지에 대한 자세한 내용은 min_insert_block_size_rows를 참조하세요.
가능한 값:
- 양의 정수.
- 0 — 설정이 블록 형성에 참여하지 않아요.
min_insert_block_size_bytes_for_materialized_views
INSERT 쿼리가 테이블에 삽입할 수 있는 블록의 최소 바이트 수를 설정해요. 더 작은 크기의 블록은 더 큰 블록으로 스쿼시돼요. 이 설정은 머티리얼라이즈드 뷰에 삽입되는 블록에만 적용돼요. 이 설정을 조정하면 머티리얼라이즈드 뷰로 푸시할 때 블록 스쿼시를 제어하고 과도한 메모리 사용을 피할 수 있어요.
가능한 값:
- 임의의 양의 정수.
- 0 — 스쿼시 비활성화.
함께 보기:
min_insert_block_size_bytes
min_insert_block_size_rows
테이블에 삽입할 블록의 최소 크기(행)예요. 이 설정은 두 맥락에서 블록 형성을 제어해요:
-
포맷 파싱: 서버가 어떤 인터페이스(HTTP, clickhouse-client 인라인 데이터, gRPC, PostgreSQL wire 프로토콜)에서든 행 기반 입력 포맷(CSV, TSV, JSONEachRow 등)을 파싱할 때, 다음 경우에 블록이 생성돼요:
min_insert_block_size_rowsANDmin_insert_block_size_bytes가 모두 도달했을 때, 또는max_insert_block_size_rows또는max_insert_block_size_bytes중 하나가 도달했을 때
참고: clickhouse-client나 clickhouse-local로 파일을 읽을 때는 클라이언트 자체가 데이터를 파싱하고 이 설정이 클라이언트 측에 적용돼요.
-
INSERT 작업: INSERT 쿼리 중과 데이터가 머티리얼라이즈드 뷰를 통해 흐를 때 이 설정의 동작은
use_strict_insert_block_limits에 의존해요:- 활성화: 다음 경우에 블록이 생성돼요. 최소 임계값(AND):
min_insert_block_size_rowsANDmin_insert_block_size_bytes가 모두 도달. 최대 임계값(OR):max_insert_block_size_rows또는max_insert_block_size_bytes중 하나 도달. - 비활성화(기본값):
min_insert_block_size_rows또는min_insert_block_size_bytes가 도달할 때 블록이 생성돼요.max_insert_block_size설정은 적용되지 않아요.
- 활성화: 다음 경우에 블록이 생성돼요. 최소 임계값(AND):
가능한 값:
- 양의 정수.
- 0 — 설정이 블록 형성에 참여하지 않아요.
min_insert_block_size_rows_for_materialized_views
INSERT 쿼리가 테이블에 삽입할 수 있는 블록의 최소 행 수를 설정해요. 더 작은 크기의 블록은 더 큰 블록으로 스쿼시돼요. 이 설정은 머티리얼라이즈드 뷰에 삽입되는 블록에만 적용돼요. 이 설정을 조정하면 머티리얼라이즈드 뷰로 푸시할 때 블록 스쿼시를 제어하고 과도한 메모리 사용을 피할 수 있어요.
가능한 값:
- 임의의 양의 정수.
- 0 — 스쿼시 비활성화.
함께 보기:
min_insert_block_size_rows