← ClickHouse 모듈로

Learn · Glossary

ClickHouse 용어 사전

총 49개 용어

ARRAY JOIN

배열 컬럼의 원소 각각을 별도의 행으로 펼치는 SQL 절. N개짜리 배열이 있는 행 하나가 N개 행으로 바뀌고, 여러 배열을 동시에 펼치면 인덱스끼리 짝짓는(zip) 방식으로 동작한다.
ARRAY JOIN 절 — 배열 하나를 여러 행으로 펼친다 · ClickHouse 공식문서 ARRAY JOIN Clause

async_insert

들어오는 INSERT를 즉시 파트로 만들지 않고 서버 메모리 버퍼에 모아 하나의 배치로 flush하는 설정. 클라이언트가 직접 배칭 로직을 구현할 필요 없이 서버가 대신 소량 INSERT를 통합해준다.
async_insert — 배칭 책임을 클라이언트에서 서버로 옮기기 · ClickHouse 공식 문서 Asynchronous inserts

ClickHouse JSON 타입

반정형 데이터를 위한 컬럼 타입. 삽입된 JSON의 각 고유 경로를 독립된 Dynamic 타입 서브컬럼으로 컬럼 지향 저장해, 스키마 유연성과 타입 컬럼에 가까운 압축률·조회 성능을 함께 얻는다. 25.3에서 GA.
JSON 타입 — 각 경로를 독립된 서브컬럼으로 저장한다 · ClickHouse 공식문서 JSON Data Type, 공식 블로그 A new powerful JSON data type

CTE 인라인 치환(기본 동작)

ClickHouse의 기본 CTE 동작. WITH 절로 정의한 서브쿼리를 결과로 저장해 재사용하는 게 아니라, SELECT 안에서 그 CTE를 참조하는 지점마다 서브쿼리 자체를 그대로 치환해 매번 재실행한다.
WITH 절(CTE) — 기본은 매번 다시 실행되는 인라인 치환이다 · ClickHouse 공식문서 WITH Clause

Data Skipping Index

그래뉼 단위로 특정 컬럼의 요약 정보(min/max, 값 집합, 확률적 멤버십 등)를 미리 계산해두는 2차 인덱스. 조건을 만족할 수 없는 그래뉼을 읽지 않고 건너뛰게 해준다.
Data Skipping Index — 프라이머리 키 밖의 컬럼을 가속하기 · ClickHouse 공식 문서 Use data skipping indices where appropriate

DETACH/ATTACH PARTITION

ALTER TABLE ... DETACH PARTITION은 파티션 데이터를 detached 디렉터리로 옮겨 테이블에서 비활성화(삭제는 아님)하고, ATTACH PARTITION은 그 디렉터리의 데이터를 체크섬 검증 후 다시 활성 파트로 편입시킨다. 데이터 이동·백업 복구·손상 데이터 교체·무중단 스키마 변경에 쓰인다.
ATTACH/DETACH PARTITION — 파티션째로 뽑아내고 다시 끼워 넣는다 · ClickHouse 공식문서 ALTER TABLE ... PARTITION

Dictionary

ClickHouse에서 자주 참조되는 작은 참조 데이터를 메모리 구조로 미리 적재해두고 dictGet 함수로 즉시 조회하도록 만든 키-값 매핑 객체. JOIN 대신 쓰여 조회 성능을 높인다.
Dictionary — 조인 대신 쓰는 인메모리 조회 테이블 · ClickHouse 공식 문서 Dictionaries

Distributed 테이블 엔진

여러 샤드에 흩어진 로컬 테이블들을 하나의 논리적 테이블처럼 보이게 해주는 가상 테이블. 실제 데이터를 저장하지 않고 쿼리 라우팅과 결과 병합만 담당한다.
Distributed 테이블 엔진과 샤딩

DoubleDelta

연속된 델타(차이)들 사이의 차이(2차 차분)를 저장하는 인코딩. 일정 간격으로 증가하는 시계열 타임스탬프 압축에 특히 효과적이다.
코덱과 인코딩 — 왜 압축률이 이렇게 높은가 · ClickHouse 공식 블로그 'Optimizing ClickHouse with Schemas and Codecs' 및 Altinity 인코딩 가이드

Lightweight DELETE

DELETE 요청을 _row_exists 마스크 컬럼만 갱신하는 경량 mutation으로 바꿔 처리하는 ClickHouse의 삭제 방식. 나머지 컬럼은 재작성하지 않고 하드링크로 유지해 일반 mutation보다 훨씬 저렴하지만, 물리적 디스크 제거는 다음 병합 시점까지 지연된다.
Lightweight DELETE — 전체 컬럼을 다시 쓰지 않고 마스크 하나만 바꾼다 · ClickHouse 공식문서 Updating and deleting ClickHouse data, Avoid mutations

LowCardinality

distinct 값이 적은 컬럼(주로 문자열)을 딕셔너리 인코딩으로 저장하는 ClickHouse 타입 래퍼. 저장 공간을 크게 줄이고 집계 연산도 가속한다.
코덱과 인코딩 — 왜 압축률이 이렇게 높은가 · ClickHouse 공식 블로그 'Optimizing ClickHouse with Schemas and Codecs' 및 Altinity 인코딩 가이드

Materialized View (ClickHouse)

원본 테이블에 INSERT가 일어날 때마다 그 새 데이터에 대해 정의된 쿼리를 실행해 결과를 별도 대상 테이블에 저장하는 INSERT 트리거. 조회 시점에 계산되는 일반 RDB 뷰와 근본적으로 다르다.
Materialized View — INSERT 트리거로서의 동작

Parallel Replicas

샤딩 없이 같은 데이터를 복제해 가진 여러 레플리카에 쿼리 하나를 그래뉼 단위로 쪼개 병렬 실행하는 기능. 코디네이터 레플리카가 어떤 파트를 가진 레플리카에게 어떤 그래뉼을 맡길지 동적으로 배정한다.
Parallel Replicas — 샤딩 없이 쿼리 하나를 여러 레플리카에 쪼개기 · ClickHouse 공식 문서 Parallel replicas

PARTITION BY

데이터를 논리적 관리 단위(보통 시간 단위)로 나누는 키. ORDER BY와 달리 정렬/쿼리 가속이 목적이 아니라 TTL 삭제 등 데이터 생명주기 관리와, 병합이 파티션 내부로 국한된다는 점이 핵심이다.
희소 프라이머리 인덱스와 ORDER BY / PARTITION BY 설계

Projection

테이블 내부에 자동으로 유지되는, 다른 정렬 순서(다른 프라이머리 인덱스)를 가진 물리적 사본. 쿼리 패턴에 따라 원본 또는 Projection이 자동 선택된다.
Projection과 EXPLAIN — 여러 정렬 순서를 한 테이블에 · ClickHouse 공식 문서 data-modeling/projections 및 EXPLAIN 가이드

Role(ClickHouse RBAC)

권한·설정·제약을 이름 붙여 묶어둔 단위. User Account에 직접 권한을 주는 대신 Role을 만들어 부여하면 직무 단위로 권한을 관리할 수 있다.
RBAC — User/Role/GRANT로 권한을 통제한다 · ClickHouse 공식문서 Access control and account management

ROW POLICY

CREATE ROW POLICY로 테이블에 필터 표현식을 붙여, 적용 대상 사용자·역할의 모든 쿼리에 서버가 자동으로 WHERE 조건을 덧붙이게 하는 행 수준 보안 기능. clickhouse-learn-33의 RBAC(테이블 단위)보다 세밀한 행 단위 통제다.
ROW POLICY — RBAC를 행 단위로 한 단계 더 세밀하게 · ClickHouse 공식문서 Row-level and column-level security

system.query_log

실행된 쿼리들의 실측 이력을 기록하는 ClickHouse 시스템 테이블. 성공한 쿼리마다 QueryStart/QueryFinish 두 행이 남고, query_duration_ms로 실제 소요 시간을 확인할 수 있다. EXPLAIN(사전 계획 확인)과 달리 사후 진단용이다.
system.query_log — 쿼리가 끝난 뒤 무슨 일이 있었는지 되짚어보기 · ClickHouse 공식문서 system.query_log

TTL (Time To Live)

지정한 기간이 지나면 컬럼 값을 초기화하거나(컬럼 단위) 행을 삭제·이동시키는(테이블 단위) ClickHouse의 자동 데이터 생명주기 관리 기능.
TTL — 컬럼/테이블 단위 자동 만료와 계층 이동 · ClickHouse 공식 문서 Manage data with TTL

TTL ... GROUP BY

만료된 행들을 삭제하는 대신 지정한 컬럼 기준으로 그룹화해 집계 함수로 요약 행 하나로 압축하는 TTL 문법. GROUP BY 컬럼은 반드시 PRIMARY KEY의 접두사여야 한다.
TTL ... GROUP BY — 삭제 대신 요약 행으로 다운샘플링 · ClickHouse 공식 문서 Using TTL to manage data lifecycle

WITH TOTALS

중간 소계 없이 전체 행에 대한 집계 결과 딱 한 줄만 추가로 계산하는 GROUP BY 수정자. 키 컬럼은 기본값으로 표시되며, XML/JSON은 별도 필드로, 다른 포맷은 결과 뒤에 붙는 행으로 표현된다.
WITH ROLLUP/CUBE/TOTALS — 소계·총계를 GROUP BY 하나로 한꺼번에 · ClickHouse 공식 문서 GROUP BY clause — ROLLUP/CUBE/TOTALS modifiers