왜 26.7인가
2026년 7월 22일, ClickHouse v26.7.1.1315-stable이 출시됐다. 64개의 신규 기능, 117개의 성능 최적화, 329개의 버그 수정이 담긴 이 릴리스는 ClickHouse 역사상 단일 릴리스로는 최다 성능 최적화 건수를 기록했다.
26.6이 10주년 기념 릴리스(가상 스킵 인덱스, 연속 쿼리 실험 지원, 3× 딥 네스트 쿼리 레이턴시 개선)였다면, 26.7은 성능과 안정성을 전면적으로 강화한 여름 릴리스다.
운영자 입장에서 이 릴리스는 두 가지 이유로 중요하다. 첫째, 여러 하위 호환성이 깨지는 변경사항이 포함됐다. 오작동이 아닌 설계된 변경이기 때문에, 업그레이드 전에 반드시 확인해야 한다. 둘째, 일부 성능 개선은 설정 기본값이 바뀌는 형태로 적용된다. 기존 클러스터가 영향받을 수 있다.
하위 호환성 경계: 업그레이드 전 필수 확인
하위 호환성 변경 상세
S3 자격증명 자동 해석 중지
가장 넓은 영향을 미칠 수 있는 변경이다. 이전까지 서버 SQL은 s3() 함수나 S3 디스크 설정에서 서버의 클라우드 자격증명을 자동으로 해석했다. 26.7부터는 명시적 자격증명 또는 NOSIGN을 지정해야 한다.
Named collections에서 use_environment_credentials의 기본값이 0으로 변경됐다. 기존에 이 설정을 명시하지 않고 IAM 역할이나 환경 변수로 인증하던 파이프라인은 업그레이드 후 즉시 실패한다.
조치: 업그레이드 전 SELECT * FROM system.named_collections로 S3 관련 named collection을 확인하고, use_environment_credentials = 1을 명시적으로 추가한다. 또는 자격증명을 직접 지정한다.
**/ glob 패턴 의미 변경
파일 경로 매칭에서 data/**/file.txt가 이전에는 data/file.txt를 매칭하지 않았지만, 26.7부터는 같은 디렉토리 레벨도 매칭한다. 재귀 파일 조회 쿼리가 예상보다 더 많은 파일을 가져올 수 있다.
zip/zipx 백업 포맷 제한
오브젝트 스토리지(S3, Azure Blob 등)에 저장하는 백업에 zip/zipx 포맷 사용이 거부된다. tar 기반 포맷으로 전환해야 한다. 로컬 디스크 백업은 영향 없다.
워크로드 스케줄링 설정 섹션 제거
XML 설정의 resources, workload_classifiers 섹션이 제거됐다. 대신 CREATE RESOURCE, CREATE WORKLOAD DDL을 사용해야 한다. 기존 XML 기반 워크로드 설정을 사용하는 클러스터는 설정을 마이그레이션해야 한다.
Snowflake 변환 함수 제거
snowflakeToDateTime, snowflakeToDateTime64, 그 역함수들이 완전히 제거됐다. v24.6부터 deprecated 됐던 함수들이다. Snowflake ID ↔ DateTime 변환을 사용하는 쿼리는 수정이 필요하다.
use_legacy_to_time 기본값 변경
toTime() 함수가 기존에는 날짜를 고정값으로 변환했지만, 이제 기본적으로 Time 타입으로 변환한다. 기존 동작이 필요하면 SET use_legacy_to_time = 1을 명시한다.
성능 최적화 주요 내용
JOIN 성능 개선
JOIN 런타임 필터가 기본키와 스킵 인덱스를 활용해 불필요한 그래뉼 읽기를 줄인다. 대규모 팩트 테이블과 소규모 디멘션 테이블의 조인에서 유의미한 개선이 기대된다.
JOIN 해시 테이블이 8바이트 인덱스 참조를 사용하도록 변경됐다. 메모리가 약 15% 줄고 속도는 12% 향상된다. 인덱스 참조 방식이 바뀐 만큼 메모리가 풍부한 환경에서도 캐시 효율이 높아진다.
allow_aggregate_partitions_independently 설정이 기본 활성화됐다. 파티션 단위 독립 집계가 가능한 쿼리에서 추가 병렬화 이점을 얻는다. 기존에 이 설정을 비활성화하던 이유가 없다면 기본값을 유지한다.
압축·직렬화 성능
libdeflate 라이브러리가 gzip/zlib/deflate 처리에 사용된다. 기존 대비 1.15~1.5× 빠른 압축 해제 속도다.
Delta 코덱 압축 해제가 벡터화됐다. 고정 크기 컬럼, 낮은 카디널리티 컬럼에서 LZ4 압축 해제 성능이 개선된다. Delta 코덱을 많이 사용하는 시계열, 이벤트 로그 테이블에서 읽기 성능이 1.5~5× 향상된다.
문자열 처리
SIMD 기반 서브스트링 검색이 적용됐다. position, locate, positionCaseInsensitive 등 문자열 검색 함수에서 최대 1.5× 빠른 처리가 가능하다.
LLVM 컴파일이 단순 정규식 함수(match, extract, replaceRegexp)에 적용됐다. 비교적 단순한 패턴의 정규식 필터를 반복 실행하는 쿼리에서 개선이 관찰된다.
AArch64 전용 최적화
ZSTD 압축에 AArch64 벡터화가 적용됐다. 짧은 오프셋 복사에서 ~2.3× 빠른 속도다. AWS Graviton, Ampere Altra 인스턴스에서 의미 있는 개선이다.
프로파일링 오버헤드 감소
프로파일 이벤트 카운터가 CPU별 원자 연산으로 전환됐다. 카운터 증가 오버헤드가 ~30× 감소한다. 쿼리 프로파일링을 상시 활성화하는 클러스터에서 실질적인 처리량 향상이 나타날 수 있다.
신규 기능 운영 활용
EXPLAIN ANALYZE — 실제 실행 메트릭
기존 EXPLAIN 계열은 추정 실행 계획을 보여줬다. 26.7의 EXPLAIN ANALYZE는 실제 실행 결과와 성능 지표를 함께 반환한다. 쿼리를 실행하면서 각 연산자의 실제 처리 시간, 처리된 행 수, 메모리 사용량을 확인할 수 있다.
느린 쿼리 원인 분석에서 "계획 상 예상과 실제 실행의 차이"를 직접 확인하는 도구로 활용된다.
EXPLAIN ANALYZE
SELECT product_id, sum(sales)
FROM orders
WHERE dt >= '2026-01-01'
GROUP BY product_id
ORDER BY sum(sales) DESC
LIMIT 100;groupFormat — 집계 결과 포매팅
groupFormat(col, format) 함수는 그룹 내 행을 지정된 출력 포맷으로 직렬화해 반환한다. 집계 결과를 JSON, CSV 등으로 인라인 변환할 때 유용하다.
텍스트 인덱스 postprocessor
텍스트 인덱스 생성 시 postprocessor 인자를 지정해 토큰 변환 로직을 적용할 수 있다. 어간 추출(stemming), 동의어 처리, 소문자 변환 등을 인덱스 레벨에서 처리한다. system.stemmers 테이블에서 지원되는 언어 목록을 확인할 수 있다.
GeoJSON 출력 포맷
ClickHouse 쿼리 결과를 GeoJSON으로 직접 출력하는 포맷이 추가됐다. 지오메트리 컬럼 매핑과 feature properties 지정을 지원한다. GIS 파이프라인과의 통합이 간소화된다.
Web UI 쿼리 탭 유지
Web UI에서 쿼리 탭이 세션 간에 유지된다. 브라우저를 재시작해도 이전 쿼리가 남아있다. 컬럼별 색상 코딩 시각화(bar, heatmap, categorical)와 /docs 경로의 빌트인 문서 검색도 추가됐다.
실험적 기능: 미리 파악해야 할 방향
벡터 양자화 코덱 (Quantize)
Quantize 벡터 코덱 패밀리와 QBit 타입(Int8 원소)이 추가됐다. 벡터 검색에서 재순위화(rescoring)를 통한 정밀도 보완과 함께 근사 내적 계산(dotProductTransposed)을 지원한다. Matryoshka 임베딩 처리를 위한 stride 파라미터도 포함됐다.
현재는 실험적이지만, ClickHouse를 벡터 검색 스토리지로 활용하는 방향으로의 진화가 명확하다.
SZ3 손실 압축 코덱
SZ3는 오차 범위를 지정하는 손실 압축 코덱이다. 부동소수점 시계열 데이터에서 허용 오차 범위 내에서 압축률을 크게 높일 수 있다. 과학 데이터, 센서 집계 데이터에 적합하다.
Iceberg 매니페스트 컴팩션
OPTIMIZE TABLE ... MANIFEST 구문으로 Iceberg 테이블의 매니페스트 파일을 컴팩션할 수 있다. 스몰 파일 문제와 매니페스트 메타데이터 증가 문제를 직접 제어하는 수단이다.
AI 함수 변경
aiEmbed 함수에서 model 파라미터가 위치 인자로 필수화됐다. 자격증명을 named collection 대신 설정이나 맵 인자로 전달하는 방식도 추가됐다.
업그레이드 체크리스트
26.7로 업그레이드하기 전 운영자가 확인해야 할 항목이다.
스토리지·인증
- [ ] S3 관련 named collection에
use_environment_credentials설정이 명시적으로 지정되어 있는지 확인한다. - [ ]
s3()함수를 사용하는 쿼리가 명시적 자격증명 또는 NOSIGN을 사용하는지 검토한다. - [ ] 오브젝트 스토리지 백업 파이프라인이 tar 기반 포맷을 사용하는지 확인한다.
쿼리·함수
- [ ]
snowflakeToDateTime,snowflakeToDateTime64사용 여부를 검색하고 대체 로직으로 교체한다. - [ ]
toTime()함수 결과를 직접 사용하는 쿼리가use_legacy_to_time = 0기본값에서 올바르게 동작하는지 확인한다. - [ ] glob 패턴(
**/)을 사용하는 파일 조회 쿼리의 결과 범위가 의도대로인지 테스트한다.
설정·스키마
- [ ] XML 설정에
resources,workload_classifiers섹션이 있다면CREATE RESOURCE/CREATE WORKLOADDDL로 마이그레이션한다. - [ ]
AggregatingMergeTree테이블 신규 생성 시 스키마 검증 오류가 없는지 스테이징 환경에서 확인한다.
성능 기본값 변화
- [ ]
allow_aggregate_partitions_independently기본 활성화 후 집계 쿼리 결과 정확도를 검증한다. - [ ] Delta 코덱, LZ4를 많이 사용하는 테이블에서 벤치마크를 실행해 실제 개선을 측정한다.
현재 LTS 버전: ClickHouse 26.3 (2026년 LTS). 안정성을 최우선으로 하는 운영 환경은 26.3을 유지하고, 신기능이 필요한 경우에만 26.7로 전환을 검토한다.
마무리
ClickHouse 26.7은 숫자만으로도 규모를 증명하는 릴리스다. 117개의 성능 최적화는 단일 릴리스 기록이다. 그러나 운영자에게 더 중요한 것은 어떤 변경이 기존 파이프라인을 깨는가다.
S3 자격증명 자동 해석 중지와 워크로드 스케줄링 설정 제거는 묵시적으로 작동하던 것을 명시적으로 바꾼다. 이 방향이 운영 투명성을 높이지만, 업그레이드 전 검증 없이 적용하면 즉각적인 장애로 이어진다.
좋은 순서는 스테이징 → 단일 노드 또는 소규모 클러스터 → 전체 클러스터다. 26.7의 성능 개선을 누리려면 먼저 하위 호환성 경계를 통과해야 한다.
References
- ClickHouse CHANGELOG, v26.7.1.1315-stable (2026-07-22): https://github.com/ClickHouse/ClickHouse/releases
- ClickHouse Blog, "July 2026 Newsletter": https://clickhouse.com/blog/202607-newsletter
- ClickHouse Blog, "ClickHouse Release 26.6": https://clickhouse.com/blog/clickhouse-release-26-06
- Quantrail Data, "ClickHouse 26.6 Deep Dive": https://www.quantrail-data.com/clickhouse-266-deep-dive
- endoflife.date, "ClickHouse": https://endoflife.date/clickhouse
- ClickHouse on X, "26.6 release announcement": https://x.com/ClickHouseDB/status/2073044189818826985