LabHub
学习 学习路径 课程

ClickHouse — 열 지향 분석 DB 를 속까지

데이터 & AI 엔지니어링 · 中级 · 讲解 10 · 测验 10 · 实验 10

파드 안의 ClickHouse 26.8 서버로 MergeTree 의 속을 들여다봅니다. 열 저장과 압축, 성긴 기본 키와 그래뉼, 파트와 병합, 파티션, 타입과 코덱, ReplacingMergeTree 와 집계 엔진, 구체화 뷰, 건너뛰기 인덱스와 프로젝션, 뮤테이션과 TTL 을 다룹니다. 빠르다·느리다가 아니라 읽은 행 수와 그래뉼 수로 판단하는 법을 익힙니다. SQL 실전 코스를 먼저 보면 더 잘 읽힙니다.

开始实验

课程大纲

열로 저장한다는 것

파트·그래뉼·열별 압축, 읽은 행과 바이트, query_log, Compact 와 Wide

성긴 기본 키

그래뉼 단위 인덱스, 첫 키 열과 두 번째 키 열의 검색 방식, 키 순서와 카디널리티, 그래뉼 크기, PRIMARY KEY 앞부분

파트와 병합

INSERT 와 파트 수, 블록 크기, part_log 의 NewPart·MergeParts, STOP/START MERGES 와 OPTIMIZE, TOO_MANY_PARTS 와 복구, 비동기 INSERT

파티션

PARTITION BY 와 partition_id, Min-Max 가지치기, 파티션 없는 표와의 비교, DROP/DETACH/ATTACH PARTITION 과 DELETE, 너무 잘게 나눈 파티션

타입과 코덱

LowCardinality·Enum·Nullable 의 비용, Delta·DoubleDelta·T64·Gorilla + ZSTD 를 같은 자료로 재어 고르기

ReplacingMergeTree

버전·삭제 표시로 갱신을 흉내 내기, 병합 전 중복과 FINAL·argMax, CLEANUP 과 재전송, 정렬 키의 뜻

SummingMergeTree 와 AggregatingMergeTree

병합 때 더하는 요약 표, 병합 전에도 맞는 GROUP BY 조회, -State/-Merge/-If/-MergeState 로 합으로 안 되는 값 다루기

구체화 뷰는 INSERT 트리거

TO 대상 표, 되채우기, 블록 단위 집계, -State 대상, Null 표 연쇄, JOIN 뷰의 함정

건너뛰기 인덱스와 프로젝션

bloom_filter·minmax 의 효과와 한계, MATERIALIZE, 정렬·집계 프로젝션, query_log 로 확인, 디스크 비용

뮤테이션·경량 DELETE·TTL

파트를 다시 쓰는 UPDATE·DELETE, _row_exists 가림막, 열·행·GROUP BY TTL, 멈춘 뮤테이션 KILL

参考文档