system.parts 시스템 테이블
system.parts 시스템 테이블
system.parts 는 MergeTree 테이블의 파트에 대한 정보를 담고 있어요. 각 행은 하나의 데이터 파트를 설명해요.
출처: 문서
본문
Description
MergeTree 테이블의 파트에 대한 정보를 포함해요. 각 행은 하나의 데이터 파트를 설명해요.
Columns
-
partition(String) — 파티션 식별자예요(테이블 파티션 키 표현식에서 파생된 문자열 표현). -
name(String) — 데이터 파트의 이름이에요. 파트 명명 구조를 사용하여 데이터, 입력(ingest), 병합 패턴의 많은 측면을 결정할 수 있어요. 파트 명명 형식은 다음과 같아요:
____
정의:
partition_id - 파티션 키를 식별해요.
-
minimum_block_number- 파트의 최소 블록 번호를 식별해요. ClickHouse는 항상 연속 블록을 병합해요. -
maximum_block_number- 파트의 최대 블록 번호를 식별해요. -
level- 파트에 병합이 추가될 때마다 1씩 증가해요. 레벨 0은 병합되지 않은 새 파트임을 나타내요. ClickHouse의 모든 파트는 항상 불변(immutable)이라는 점을 기억하는 것이 중요해요. -
data_version- 선택적 값으로, 파트가 돌연변이될 때 증가해요(파트는 불변이므로 돌연변이된 데이터는 항상 새 파트에만 기록된다는 점을 다시 한번 기억하세요). -
uuid(UUID) — 데이터 파트의 UUID예요. -
part_type(String) — 데이터 파트 저장 형식이에요. 가능한 값:Wide— 각 열이 별도의 파일에 저장되고,Compact— 모든 열이 하나의 파일에 저장돼요. 데이터 저장 형식은 MergeTree 테이블의min_bytes_for_wide_part및min_rows_for_wide_part설정으로 제어돼요. -
part_storage_type(String) —DataPartStorage의 유형이에요. 가능한 값:Packed- 대부분의 파트 파일이 단일 아카이브에 저장되고(프로젝션과txn_version.txt같은 일부 서비스 파일은 별도로 기록돼요),Full- 각 파일이 별도로 저장돼요. -
active(UInt8) — 데이터 파트가 활성인지 여부를 나타내는 플래그예요. 데이터 파트가 활성이면 테이블에서 사용돼요. 그렇지 않으면 곧 삭제될 예정이에요. 비활성 데이터 파트는 병합 및 돌연변이 작업 후에 나타나요. -
marks(UInt64) — 마크 수예요. 데이터 파트의 대략적인 행 수를 얻으려면 마크에 인덱스 입도(보통 8192)를 곱해요(이 힌트는 적응형 입도에는 작동하지 않아요). -
rows(UInt64) — 행 수예요. -
files(UInt64) — 데이터 파트의 파일 수예요. -
bytes_on_disk(UInt64) — 모든 데이터 파트 파일의 총 크기(바이트)예요. -
data_compressed_bytes(UInt64) — 데이터 파트의 압축 데이터 총 크기예요. 모든 보조 파일(예: 마크 파일)은 포함되지 않아요. -
data_uncompressed_bytes(UInt64) — 데이터 파트의 압축되지 않은 데이터 총 크기예요. 모든 보조 파일(예: 마크 파일)은 포함되지 않아요. -
primary_key_size(UInt64) — 디스크의 primary.idx/cidx 파일에서 기본 키 값이 사용하는 메모리 양(바이트)이에요. -
marks_bytes(UInt64) — 마크 파일의 크기예요. -
secondary_indices_compressed_bytes(UInt64) — 데이터 파트의 보조 인덱스 압축 데이터 총 크기예요. 모든 보조 파일(예: 마크 파일)은 포함되지 않아요. -
secondary_indices_uncompressed_bytes(UInt64) — 데이터 파트의 보조 인덱스 압축되지 않은 데이터 총 크기예요. 모든 보조 파일(예: 마크 파일)은 포함되지 않아요. -
secondary_indices_marks_bytes(UInt64) — 보조 인덱스의 마크 파일 크기예요. -
modification_time(DateTime) — 데이터 파트가 있는 디렉터리가 수정된 시간이에요. 보통 데이터 파트 생성 시간에 해당해요. -
remove_time(DateTime) — 데이터 파트가 비활성이 된 시간이에요. -
refcount(UInt32) — 데이터 파트가 사용되는 곳의 수예요. 2보다 큰 값은 데이터 파트가 쿼리나 병합에서 사용된다는 뜻이에요. -
min_date(Date) — 데이터 파트의 날짜 키 최솟값이에요. -
max_date(Date) — 데이터 파트의 날짜 키 최댓값이에요. -
min_time(DateTime) — 데이터 파트의 날짜·시간 키 최솟값이에요. -
max_time(DateTime) — 데이터 파트의 날짜·시간 키 최댓값이에요. -
partition_id(String) — 파티션 ID예요. -
min_block_number(Int64) — 병합 후 현재 파트를 구성하는 데이터 파트의 최소 번호예요. -
max_block_number(Int64) — 병합 후 현재 파트를 구성하는 데이터 파트의 최대 번호예요. -
level(UInt32) — 병합 트리의 깊이예요. 0은 현재 파트가 다른 파트를 병합하는 대신 삽입으로 만들어졌음을 의미해요. -
data_version(UInt64) — 데이터 파트에 어떤 돌연변이를 적용할지 결정하는 데 사용되는 번호예요(data_version 보다 높은 버전의 돌연변이). -
primary_key_bytes_in_memory(UInt64) — 기본 키 값이 사용하는 메모리 양(바이트)이에요.primary_key_lazy_load가 활성화되고 키가 로드되지 않았으면 0이에요. 0이 아닐 때 바이트는 파트 자체에 있으며jemalloc.mergetree_arena.active_bytes안에 포함돼요. 이 값은PrimaryIndexCacheBytes에 절대 계산되지 않아요 — 파트별로 상호 배타적이에요: 인덱스는primary_key_lazy_load및use_primary_key_cache에 따라 파트에(이 메트릭) 또는 공유PrimaryIndexCache에(다른 메트릭) 살아요. -
primary_key_bytes_in_memory_allocated(UInt64) — 기본 키 값을 위해 예약된 메모리 양(바이트)이에요.primary_key_lazy_load가 활성화되고 키가 로드되지 않았으면 0이에요. 0이 아닐 때jemalloc.mergetree_arena.active_bytes에 포함돼요.PrimaryIndexCacheBytes와의 관계는primary_key_bytes_in_memory의 주석을 참고하세요. -
index_granularity_bytes_in_memory(UInt64) — 인덱스 입도 값이 사용하는 메모리 양(바이트)이에요(primary_key_lazy_load=1 이고 use_primary_key_cache=1 인 경우 0이 돼요). 0이 아닐 때 바이트는 파트가 부분 소유하며jemalloc.mergetree_arena.active_bytes안에 포함돼요. -
index_granularity_bytes_in_memory_allocated(UInt64) — 인덱스 입도 값을 위해 예약된 메모리 양(바이트)이에요(primary_key_lazy_load=1 이고 use_primary_key_cache=1 인 경우 0이 돼요). 0이 아닐 때jemalloc.mergetree_arena.active_bytes에 포함돼요. -
is_frozen(UInt8) — 파티션 데이터 백업이 존재하는지 보여주는 플래그예요. 1이면 백업이 존재하고, 0이면 백업이 존재하지 않아요. 자세한 내용은 FREEZE PARTITION 을 참고하세요. -
database(String) — 데이터베이스 이름이에요. -
table(String) — 테이블 이름이에요. -
engine(String) — 파라미터가 없는 테이블 엔진 이름이에요. -
disk_name(String) — 데이터 파트를 저장하는 디스크의 이름이에요. -
path(String) — 데이터 파트 파일이 있는 폴더의 절대 경로예요. -
hash_of_all_files(String) — 압축된 파일의 sipHash128 이에요. -
hash_of_uncompressed_files(String) — 압축되지 않은 파일(마크 파일, 인덱스 파일 등)의 sipHash128 이에요. -
uncompressed_hash_of_compressed_files(String) — 압축된 파일의 데이터가 압축되지 않은 것처럼 처리한 sipHash128 이에요. -
delete_ttl_info_min(DateTime) — TTL DELETE 규칙에 대한 날짜·시간 키 최솟값이에요. -
delete_ttl_info_max(DateTime) — TTL DELETE 규칙에 대한 날짜·시간 키 최댓값이에요. -
move_ttl_info.expression(Array(String)) — 표현식 배열이에요. 각 표현식은 TTL MOVE 규칙을 정의해요. -
move_ttl_info.min(Array(DateTime)) — 날짜·시간 값 배열이에요. 각 요소는 TTL MOVE 규칙의 최소 키 값을 설명해요. -
move_ttl_info.max(Array(DateTime)) — 날짜·시간 값 배열이에요. 각 요소는 TTL MOVE 규칙의 최대 키 값을 설명해요. -
default_compression_codec(String) — 열에 명시적 코덱이 없거나CODEC(Default)를 사용할 때 이 데이터 파트를 압축하는 데 사용된 코덱의 이름이에요.UNKNOWN은 이 코덱을 파트 메타데이터에서 정확히 복구할 수 없음을 의미해요.enable_adaptive_codec_selection을 사용하면 그러한 열의 개별 블록이 다른 코덱을 사용할 수 있어요.mergeTreeCodecBlockCounts를 참고하세요. -
recompression_ttl_info.expression(Array(String)) — TTL 표현식이에요. -
recompression_ttl_info.min(Array(DateTime)) — 이 파트 내에서 계산된 TTL 표현식의 최솟값이에요. TTL이 만료된 행이 하나라도 있는지 이해하는 데 사용돼요. -
recompression_ttl_info.max(Array(DateTime)) — 이 파트 내에서 계산된 TTL 표현식의 최댓값이에요. 모든 행의 TTL이 만료되었는지 이해하는 데 사용돼요. -
group_by_ttl_info.expression(Array(String)) — TTL 표현식이에요. -
group_by_ttl_info.min(Array(DateTime)) — 이 파트 내에서 계산된 TTL 표현식의 최솟값이에요. TTL이 만료된 행이 하나라도 있는지 이해하는 데 사용돼요. -
group_by_ttl_info.max(Array(DateTime)) — 이 파트 내에서 계산된 TTL 표현식의 최댓값이에요. 모든 행의 TTL이 만료되었는지 이해하는 데 사용돼요. -
rows_where_ttl_info.expression(Array(String)) — TTL 표현식이에요. -
rows_where_ttl_info.min(Array(DateTime)) — 이 파트 내에서 계산된 TTL 표현식의 최솟값이에요. TTL이 만료된 행이 하나라도 있는지 이해하는 데 사용돼요. -
rows_where_ttl_info.max(Array(DateTime)) — 이 파트 내에서 계산된 TTL 표현식의 최댓값이에요. 모든 행의 TTL이 만료되었는지 이해하는 데 사용돼요. -
projections(Array(String)) — 이 파트를 위해 계산된 프로젝션 이름 목록이에요. -
visible(UInt8) — 이 파트가 SELECT 쿼리에 보이는지 여부를 나타내는 플래그예요. -
creation_tid(Tuple(UInt64, UInt64, UUID, Int64)) — 이 객체를 만들었거나 만들려고 하는 트랜잭션의 ID예요. -
removal_tid_lock(UInt64) — 제거를 위해 객체를 잠그는 데 사용되는 removal_tid 의 해시예요. -
removal_tid(Tuple(UInt64, UInt64, UUID, Int64)) — 이 객체를 제거했거나 제거하려고 하는 트랜잭션의 ID예요. -
creation_csn(UInt64) — 이 객체를 만든 트랜잭션의 CSN이에요. -
removal_csn(UInt64) — 이 객체를 제거한 트랜잭션의 CSN이에요. -
has_lightweight_delete(UInt8) — 파트에 경량 삭제 마스크가 있는지 여부를 나타내는 플래그예요. -
last_removal_attempt_time(DateTime) — 서버가 이 파트를 삭제하려고 마지막으로 시도한 시간이에요. -
removal_state(String) — 파트 제거 프로세스의 현재 상태예요.
별칭(Aliases):
-
bytes—bytes_on_disk의 별칭이에요. -
marks_size—marks_bytes의 별칭이에요. -
part_name—name의 별칭이에요.
Example
SELECT * FROM system.parts LIMIT 1 FORMAT Vertical;
Row 1:
──────
partition: tuple()
name: all_1_4_1_6
part_type: Wide
part_storage_type: Full
active: 1
marks: 2
rows: 6
bytes_on_disk: 310
data_compressed_bytes: 157
data_uncompressed_bytes: 91
secondary_indices_compressed_bytes: 58
secondary_indices_uncompressed_bytes: 6
secondary_indices_marks_bytes: 48
marks_bytes: 144
modification_time: 2020-06-18 13:01:49
remove_time: 1970-01-01 00:00:00
refcount: 1
min_date: 1970-01-01
max_date: 1970-01-01
min_time: 1970-01-01 00:00:00
max_time: 1970-01-01 00:00:00
partition_id: all
min_block_number: 1
max_block_number: 4
level: 1
data_version: 6
primary_key_bytes_in_memory: 8
primary_key_bytes_in_memory_allocated: 64
is_frozen: 0
database: default
table: months
engine: MergeTree
disk_name: default
path: /var/lib/clickhouse/data/default/months/all_1_4_1_6/
hash_of_all_files: 2d0657a16d9430824d35e327fcbd87bf
hash_of_uncompressed_files: 84950cc30ba867c77a408ae21332ba29
uncompressed_hash_of_compressed_files: 1ad78f1c6843bbfb99a2c931abe7df7d
delete_ttl_info_min: 1970-01-01 00:00:00
delete_ttl_info_max: 1970-01-01 00:00:00
move_ttl_info.expression: []
move_ttl_info.min: []
move_ttl_info.max: []