ClickHouse HOLs
GitHub

ClickHouse Release Labs


One directory per ClickHouse release, each a self-contained hands-on lab for that version's new features. Every lab installs its own server version, generates its own test data, and can be run independently.

🗂 Available Releases

Version Released Labs Verified Features Covered
26.9 2026-09-21 4 26.9.1.1629 LIMIT ... AFTER / UNTIL, keyValuePairs text index tokenizer, ZSTD(3) as the default codec, CREATE TOKEN + scoped GRANTS
26.8 2026-08-30 3 26.8.2.7 Pipe operators |>, GROUPS window frame mode, japanese / chinese / icu tokenizers
26.7 2026-07-22 3 26.7.1 EXPLAIN ANALYZE, AT TIME ZONE / AT LOCAL, groupFormat + -Tuple combinator
26.6 2026-06-25 3 26.6.2 Hypothetical indexes + EXPLAIN WHATIF, ADD ENUM VALUES, SQL compatibility (SOME/ALL, * LIKE, ESCAPE, date_part)
26.5 2026-05-21 3 26.5.1.882 filesystem() table function, bare function names + isPrime, tokenizeQuery / highlightQuery
26.4 2026-04-30 3 26.4.3.37 NATURAL JOIN on VALUES, array functions, string/text functions
26.3 2026-03-26 3 26.3.12.3 Materialized CTE, natural sort key, Unicode functions
26.2 2026-02-26 3 26.2.19.43 primes() function, XXH3-128 hash, system.tokenizers
26.1 2026-01-29 3 26.1.12.23 reverseBySeparator, text index for arrays, Keeper HTTP API
25.12 2025-12-18 3 25.12.11.4 HMAC function, Naive Bayes classifier, JOIN order optimization (DPSize)
25.11 2025-11-27 4 25.11.2.24 HAVING without GROUP BY, fractional LIMIT, Map aggregation, geometry functions
25.10 2025-10-30 5 25.10.7.6 QBit vector search, negative LIMIT/OFFSET, JOIN improvements, LIMIT BY ALL, auto statistics
25.9 2025-09-25 4 25.9.7.56 Global join reordering, text index, streaming secondary indices, arrayExcept
25.8 2025-08-28 6 25.8.28.1 New Parquet reader, hive partitioning, temp data on S3, UNION ALL _table, data lake features, MinIO
25.7 2025-07-24 4 25.7.8.71 SQL UPDATE/DELETE, count() optimization, JOIN performance, bulk UPDATE
25.6 2025-06-26 5 25.6.13.41 CoalescingMergeTree, Time/Time64 types, Bech32 encoding, lag/lead, consistent snapshot
25.5 2025-05-22 5 25.5.11.15 Vector similarity index, Hive Metastore catalog, implicit table, new functions, geo types in Parquet
25.4 2025-04-30 3 25.4.13.22 Array Levenshtein distance, sparseGrams, toInterval and editable database comments
25.3 2025-03-20 3 25.3.14.14 New functions (arraySymmetricDifference, keccak256), query condition cache, estimateCompressionRatio
25.2 2025-03-07 3 25.2.2.39 Parquet Bloom filters, Backup database engine, stringCompare and the progress formats
25.1 2025-02-07 3 25.1.8.25 Automatic minmax indices, Merge tables unifying schemas as Variant, sequenceMatchEvents

Verified names the exact server build every lab in that directory was run against, end to end, with zero exceptions. All twenty-one have been. Getting there took fixing eleven of them: SQL that referenced functions and settings which do not exist, arguments in the wrong order, and aliases that shadowed the column they aggregated. Re-run any of them yourself with .github/scripts/verify_release_lab.sh <version>.

🚀 Running a Lab

cd local/releases/26.7      # pick a version
./00-setup.sh               # install + start that ClickHouse version
./01-explain-analyze.sh     # run the labs in order
./02-at-time-zone.sh
./03-groupformat-tuple.sh

🧱 How a Lab Is Built

Every version directory follows the same layout:

File Role
README.md Bilingual guide: overview, per-feature detail, learning points, use cases, full release feature list
00-setup.sh Delegates to ../../oss-docker: set.sh <version> then start.sh, then verifies the running version
NN-<feature>.sh Thin runner — pipes the matching .sql into docker exec -i clickhouse-<version> clickhouse-client --multiline --multiquery
NN-<feature>.sql The lab itself: numbered sections with SELECT '===== N. Title =====' banners, self-generated test data, cleanup left commented for inspection

⚠️ One Version at a Time

oss-docker/set.sh maps the container to 8123/9000 when a single version is configured, so only one release runs at a time. Switching versions means re-running that version's 00-setup.sh. Container names follow the version with dots replaced by hyphens — 26.7 → clickhouse-26-7.

🔧 Connection Info

🔍 Additional Resources


ClickHouse 릴리스별로 하나의 디렉토리를 두고, 각 버전의 신기능을 직접 실행해 보는 독립 실습 랩을 제공합니다. 각 랩은 자체적으로 해당 서버 버전을 설치하고 테스트 데이터를 생성하므로 독립적으로 실행할 수 있습니다.

🗂 제공 릴리스

버전 출시일 랩 수 검증 다루는 기능
26.9 2026-09-21 4 26.9.1.1629 LIMIT ... AFTER / UNTIL, keyValuePairs 텍스트 인덱스 토크나이저, 기본 코덱 ZSTD(3), CREATE TOKEN + 범위 제한 GRANTS
26.8 2026-08-30 3 26.8.2.7 파이프 연산자 |>, GROUPS 윈도우 프레임, japanese·chinese·icu 토크나이저
26.7 2026-07-22 3 26.7.1 EXPLAIN ANALYZE, AT TIME ZONE / AT LOCAL, groupFormat + -Tuple 조합자
26.6 2026-06-25 3 26.6.2 가상 인덱스 + EXPLAIN WHATIF, ADD ENUM VALUES, SQL 호환성 (SOME/ALL, * LIKE, ESCAPE, date_part)
26.5 2026-05-21 3 26.5.1.882 filesystem() 테이블 함수, 베어 함수 이름 + isPrime, tokenizeQuery / highlightQuery
26.4 2026-04-30 3 26.4.3.37 VALUES에 대한 NATURAL JOIN, 배열 함수, 문자열/텍스트 함수
26.3 2026-03-26 3 26.3.12.3 구체화 CTE, 자연 정렬 키, 유니코드 함수
26.2 2026-02-26 3 26.2.19.43 primes() 함수, XXH3-128 해시, system.tokenizers
26.1 2026-01-29 3 26.1.12.23 reverseBySeparator, 배열 텍스트 인덱스, Keeper HTTP API
25.12 2025-12-18 3 25.12.11.4 HMAC 함수, 나이브 베이즈 분류기, JOIN 순서 최적화 (DPSize)
25.11 2025-11-27 4 25.11.2.24 GROUP BY 없는 HAVING, 소수 LIMIT, Map 집계, 기하 함수
25.10 2025-10-30 5 25.10.7.6 QBit 벡터 검색, 음수 LIMIT/OFFSET, JOIN 개선, LIMIT BY ALL, 자동 통계
25.9 2025-09-25 4 25.9.7.56 전역 조인 재정렬, 텍스트 인덱스, 스트리밍 보조 인덱스, arrayExcept
25.8 2025-08-28 6 25.8.28.1 신규 Parquet 리더, hive 파티셔닝, S3 임시 데이터, UNION ALL _table, 데이터 레이크, MinIO
25.7 2025-07-24 4 25.7.8.71 SQL UPDATE/DELETE, count() 최적화, JOIN 성능, 대량 UPDATE
25.6 2025-06-26 5 25.6.13.41 CoalescingMergeTree, Time/Time64 타입, Bech32 인코딩, lag/lead, 일관된 스냅샷
25.5 2025-05-22 5 25.5.11.15 벡터 유사도 인덱스, Hive Metastore 카탈로그, 암시적 테이블, 신규 함수, Parquet 지오 타입
25.4 2025-04-30 3 25.4.13.22 배열 Levenshtein 거리, sparseGrams, toInterval과 수정 가능한 DB 코멘트
25.3 2025-03-20 3 25.3.14.14 신규 함수(arraySymmetricDifference, keccak256), 쿼리 조건 캐시, estimateCompressionRatio
25.2 2025-03-07 3 25.2.2.39 Parquet Bloom 필터, Backup 데이터베이스 엔진, stringCompare와 진행 포맷
25.1 2025-02-07 3 25.1.8.25 자동 minmax 인덱스, Merge 테이블의 Variant 스키마 통합, sequenceMatchEvents

검증은 해당 디렉토리의 모든 랩을 예외 0으로 끝까지 실행해 본 정확한 서버 빌드입니다. 21개 전부 검증했습니다. 그 과정에서 11개를 고쳐야 했는데, 존재하지 않는 함수·설정 참조, 뒤바뀐 인자 순서, 집계 대상 컬럼을 가리는 별칭 같은 문제였습니다. 직접 재현하려면 .github/scripts/verify_release_lab.sh <버전> 을 실행하세요.

🚀 랩 실행

cd local/releases/26.7      # 버전 선택
./00-setup.sh               # 해당 ClickHouse 버전 설치 및 기동
./01-explain-analyze.sh     # 순서대로 실행
./02-at-time-zone.sh
./03-groupformat-tuple.sh

🧱 랩 구성 방식

모든 버전 디렉토리는 동일한 구조를 따릅니다.

파일 역할
README.md 영/한 가이드: 개요, 기능별 상세, 학습 포인트, 활용 사례, 릴리스 전체 기능 목록
00-setup.sh ../../oss-docker에 위임 — set.sh <버전> 후 start.sh, 이어서 기동된 버전 검증
NN-<기능>.sh 얇은 실행 스크립트 — 대응 .sql을 docker exec -i clickhouse-<버전> clickhouse-client --multiline --multiquery로 전달
NN-<기능>.sql 랩 본문 — SELECT '===== N. 제목 =====' 배너로 구분된 번호 섹션, 자체 생성 테스트 데이터, 확인을 위해 주석 처리된 정리 구문

⚠️ 한 번에 한 버전

oss-docker/set.sh는 단일 버전이 구성된 경우 컨테이너를 8123/9000에 매핑하므로 한 번에 하나의 릴리스만 실행됩니다. 버전을 바꾸려면 해당 버전의 00-setup.sh를 다시 실행하세요. 컨테이너 이름은 버전의 점을 하이픈으로 바꾼 형태입니다 — 26.7 → clickhouse-26-7.

🔧 접속 정보

🔍 추가 자료


Happy Learning! 🚀

License

MIT — same as the rest of the repository.

라이선스

MIT — 저장소 전체와 동일합니다.

Open this lab on GitHub →GitHub에서 이 실습 열기 →