system.parts 시스템 테이블

system.parts 시스템 테이블

system.partsMergeTree 테이블의 파트에 대한 정보를 담고 있어요. 각 행은 하나의 데이터 파트를 설명해요.

출처: 문서

본문

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_partmin_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_loaduse_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):

  • bytesbytes_on_disk 의 별칭이에요.

  • marks_sizemarks_bytes 의 별칭이에요.

  • part_namename 의 별칭이에요.

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:                     []

See Also