한눈에 보기
StarRocks 4.1은 새 기능을 많이 늘린 버전이 아니라, 4.0에서 만든 구조를 실제 운영 환경에서 안심하고 쓸 수 있게 다듬은 버전입니다. 공식 슬로건도 "Built for Production, Designed to Simplify(운영을 위해 만들고, 단순하게 설계했다)" 입니다.
크게 바뀐 건 세 가지입니다.
- 데이터가 한쪽으로 쏠려도 알아서 쪼개고 합칩니다. → 여러 팀·테넌트가 한 클러스터를 써도 운영이 쉬워졌습니다.
- 데이터 레이크(Iceberg)에 이제 직접 쓰고 정리까지 합니다. → Spark 같은 별도 도구 없이 StarRocks 하나로 끝낼 수 있습니다.
- 스키마 변경·쿼리가 더 빠르고 똑똑해졌습니다. → 컬럼 추가가 초 단위로 끝나고, 계층형 쿼리(Recursive CTE) 같은 표준 SQL을 더 많이 지원합니다.
- 4.1.0 출시: 2026년 4월 13일
- 4.1.1 패치: 2026년 5월 29일 — 운영 환경에서는 4.1.1 이상을 쓰는 것이 좋습니다(아래 주의사항 참고).
⚠️ 업그레이드 전에 꼭 확인하세요 - 컨테이너(이미지) 환경은 4.1.0을 건너뛰고 4.1.1 이상을 쓰세요. 4.1.0 이미지는 로드 순서 문제로 BE가 제대로 기동하지 않을 수 있습니다. - 4.1로 올린 뒤 4.0으로 다시 내려야 한다면 4.0.6 이상으로만 가능합니다. (Tablet 구조가 바뀌어 그 이전 버전은 데이터를 해석하지 못합니다.)
핵심 변화 요약
영역 | 무엇이 좋아졌나 | 왜 중요한가 |
멀티테넌트 운영 | Tablet 자동 분할/병합, 대용량 Tablet 지원 | 데이터 쏠림(스큐)·핫스팟을 손대지 않아도 자동 해소 |
데이터 레이크(Iceberg) | DELETE·TRUNCATE 쓰기, 증분 MV, v3 지원 | StarRocks만으로 레이크 데이터를 직접 수정·관리 |
빠른 스키마 변경 | Fast Schema Evolution V2 | 컬럼 추가/변경이 초 단위로 완료 |
쿼리 엔진 | Recursive CTE, Skew Join v2, 지연 구체화 기본화 | 복잡·불균형 쿼리가 더 안정적이고 빠르게 실행 |
운영·관측성 | 캐시 적중률 노출, 워크로드별 CPU 격리 | 성능 문제 원인 파악과 자원 배분이 쉬워짐 |
쉽게 풀어보는 핵심 기능 3가지
1. 데이터 쏠림을 알아서 정리하는 Tablet 자동 분할/병합
StarRocks는 데이터를 Tablet이라는 조각 단위로 나눠 저장합니다. 그런데 특정 테넌트·기간에 데이터가 몰리면 일부 Tablet만 비대해지거나 부하가 쏠리는(핫스팟) 문제가 생깁니다. 기존에는 이를 풀려고 스키마를 바꾸거나 데이터를 다시 적재해야 했습니다.
4.1에서는 클러스터가 Tablet 크기와 부하를 보고 너무 커지면 자동으로 쪼개고(Split), 너무 작으면 자동으로 합칩니다(Merge). 사용자가 스키마를 바꾸거나 SQL을 고치거나 데이터를 다시 넣을 필요가 없습니다. 또한 Tablet 하나가 담을 수 있는 용량 한도도 크게 늘려(장기 목표 100GB/Tablet), Tablet 개수가 줄고 메타데이터 관리 부담도 가벼워졌습니다.
Dive Deep — Range 분산과 자동 Split/Merge 동작
기존 Shared-data는 주로 Hash 분산이라 테이블 생성 시 버킷(Tablet) 수를 고정해야 했고, 데이터 증가나 키 편중이 생기면 일부 Tablet만 비대해지거나 핫스팟이 됐습니다. 버킷 수 변경은 사실상 재적재가 필요했습니다.
4.1은 Range 기반 분산을 도입했습니다. 키 컬럼의 값 범위에 따라 데이터가 정렬·배치되어 각 Tablet이 특정 범위를 담습니다. 이 시맨틱은 기본 비활성이며 FE 설정 enable_range_distribution으로 켭니다.
Range 분산 위에서 클러스터는 Tablet의 크기·부하를 보고 과대해지거나 핫스팟이 되면 자동 Split, 너무 작으면 자동 Merge하여 데이터 스큐를 완화합니다(스키마 변경·SQL 수정·재적재 불필요, 이 기능도 기본 비활성).
정합성 측면에서는 Split → Compaction → Merge 경로의 버그(데이터 손실 #71135, vacuum 오삭제 #71585, merge 정확성 #72350)가 4.1.0~4.1.1에 집중 수정됐습니다. 4.1 → 4.0 다운그레이드가 4.0.6 이상으로만 가능한 것도 이 분산/분할 메타데이터 구조 변경 때문입니다.
Dive Deep — 대용량 Tablet과 Tablet 내부 병렬화
클라우드 네이티브(Lake) Tablet은 커질수록 적재 → PK 업데이트 → Compaction 파이프라인이 단일 스레드 병목에 걸려, 과거엔 Tablet을 작게 유지할 수밖에 없었고 그만큼 Tablet 수가 늘어 FE 메타데이터 부담이 커졌습니다.
4.1 Phase 1은 하나의 Tablet 내부를 병렬 처리합니다.
- 단일 Tablet 내 병렬 Compaction(세그먼트 단위 분할)
- Lake 적재의 MemTable finalize/flush/merge 병렬화(load-spill 경로 포함)
- PK 테이블의 Tablet 내부 병렬 publish·병렬 조건부 업데이트
- 클라우드 네이티브 PK 인덱스의 range-split / 병렬 / size-tiered Compaction(원격 스토리지 mapper 파일 지원)
그 결과 적재 메모리 오버헤드·Compaction 증폭·FE 메타데이터 부담이 줄어듭니다. 4.1부터 Tablet 최대 크기 상한이 100GB로 상향됐고(전체 목표 달성은 단계적 진행, Phase 1), Tablet 수가 줄면 FE가 관리하는 Tablet 메타 엔트리도 감소합니다.
2. 데이터 레이크(Iceberg)에 직접 쓰고 정리까지
지금까지 StarRocks는 Iceberg 데이터를 주로 읽는 용도로 썼습니다. 데이터를 지우거나 정리하려면 Spark 같은 별도 도구가 필요했습니다.
4.1부터는 StarRocks에서 직접:
- DELETE / TRUNCATE 로 Iceberg 데이터를 지울 수 있고,
- 증분 Materialized View 로 전체 테이블을 다시 읽지 않고도 최신 결과를 유지하며,
- 테이블 정리 작업(오래된 스냅샷·고아 파일 정리, 매니페스트 재작성)을 SQL로 실행할 수 있습니다.
- 반정형 데이터를 위한 VARIANT 타입과 최신 Iceberg v3(기본값·행 계보 등)도 지원합니다.
즉, "레이크하우스 쿼리 엔진"에서 한 발 더 나아가 레이크 데이터를 직접 운영·관리하는 도구가 되었습니다.
Dive Deep — Iceberg DELETE: Merge-on-Read와 Position Delete
Iceberg는 행 삭제를 원본 데이터 파일 재작성 없이 delete file을 추가하는 Merge-on-Read(MOR) 방식으로 표현합니다. delete file에는 위치 기반(position)과 값 기반(equality)이 있습니다. StarRocks는 이전부터 두 종류의 delete를 읽을 수 있었지만, 4.1은 여기에 position delete 파일을 직접 기록(쓰기)하는 기능을 더해 Iceberg DELETE를 수행합니다.
파이프라인은 Plan → Sink → Commit → Audit입니다.
- Plan: 삭제 대상 행을
파일 경로 + row position으로 식별 - Sink: position delete 파일 생성·기록
- Commit: Iceberg 스냅샷에 반영, 동시 Commit 충돌은 Commit Queue로 직렬화(#68084)
- Audit: INSERT/DELETE commit 감사 정보 기록(#69198)
4.1.1에서는 DELETE 충돌 감지가 잘못된 snapshot ID·필터를 쓰던 버그(#73354)가 수정됐습니다.
3. 더 빠른 스키마 변경과 똑똑한 쿼리
- Fast Schema Evolution V2: 컬럼 추가 같은 스키마 변경이 데이터 양과 무관하게 초 단위로 끝납니다. Materialized View에도 적용됩니다.
- Recursive CTE(재귀 CTE): 조직도·카테고리 트리처럼 계층 구조를 따라가는 쿼리를 표준 SQL로 바로 작성할 수 있습니다.
- Skew Join v2 / 지연 구체화 기본 활성화: 데이터가 한쪽에 몰린 조인이나 큰 테이블 조회가 더 안정적이고 빠르게 실행됩니다.
- 이 외에
ai_query(SQL에서 외부 AI 모델 호출),uuid_v7,json_set등 실무에서 자주 쓰는 함수들이 추가됐습니다.
Dive Deep — Fast Schema Evolution V2가 초 단위인 이유
StarRocks의 'fast schema evolution'은 컬럼 추가/삭제 같은 변경을 데이터를 변환하지 않고(linked schema change) 처리합니다. Shared-data에서는 v3.3부터 기본 지원됐는데, 4.1의 V2는 이를 한 단계 더 끌어올렸습니다.
핵심은 변경을 동기식으로 처리하되 S3에 있는 Tablet 메타데이터가 아니라 FE 메타데이터만 수정한다는 점입니다. 그래서 ALTER TABLE이 성공 반환되는 순간 새 스키마가 즉시 적용되고, 테이블의 파티션·Tablet 수와 무관하게 항상 초 단위 지연으로 끝납니다. 4.1에서는 이 지원이 Materialized View까지 확장됐습니다.
운영·관측성 개선
- 워크로드별 CPU 격리: 리소스 그룹에 워크로드(웨어하우스) 단위 CPU 비중을 지정해, 적재 작업이 조회 성능을 잡아먹는 상황을 줄입니다.
- 캐시 적중률 노출: 쿼리별 캐시 적중률이 감사 로그·모니터링에 표시되어 "왜 이 쿼리가 느린가"를 진단하기 쉬워졌습니다.
query_queue_v2기본 활성화, FE 스레드 상태 조회 뷰, SQL 패턴 차단(SQL Digest Blacklist), FE·BE Debian(.deb) 패키지 지원 등 운영 편의 기능이 추가됐습니다.
4.1.1 업데이트 (2026년 5월 29일)
4.1.1은 4.1.0 위에 실무에서 바로 쓰는 기능을 더한 업데이트입니다. 특히 UDF와 외부 데이터 연동(Hive·Iceberg), 적재·옵티마이저 영역이 강화됐습니다.
- UDF 확장: Java UDF/UDAF/UDTF가 STRUCT 인자·반환, 중첩 ARRAY/MAP, DATE/DATETIME, DECIMAL, 가변 인자(varargs)를 지원합니다. Scalar UDF는 STRUCT 인자를, Python UDF는 중첩 ARRAY/MAP을 지원하고, UDAF는 쿼리마다 다시 로드하지 않고 한 번 로드해 재사용합니다. → 복잡한 사용자 정의 로직을 SQL에서 더 자연스럽게 작성할 수 있습니다.
- Hive 연동 가속: Avro 처리가 JNI에서 네이티브 C++ 스캐너(기본값)로 바뀌어 바이너리를 직접 디코딩하고
avro.schema.literal·avro.schema.url을 지원합니다. - Iceberg 강화: sink의
timestamptz파티션 transform이 완성되고, 집계 쿼리에 TopN 런타임 필터 푸시다운과 datetime min/max 최적화가 더해졌습니다. 미지원 Iceberg v3 기능은 빠르게 실패(fail-fast)하도록 처리합니다. - 적재·내보내기:
INSERT INTO FILES의 CSV 내보내기에서csv.enclose·csv.escape를 지원하고,files()로의 전체 스키마 푸시다운(enable_push_down_schema)과 다중 HDFS 클러스터 접근용 HDFS HA 설정 패스스루가 추가됐습니다. - 옵티마이저·MV·Lake: CBO 통계 추정과 skew join 감지가 개선됐고, MV 갱신에
ASYNC의 동의어인SCHEDULE키워드가 추가됐습니다. Lake 적재는 부분 업데이트 publish·인덱스 초기화 등을 병렬화해 처리량이 올라갑니다. - 인증·보안: LDAP 직접 바인드 인증(DN 패턴)을 지원하며, 주요 의존성의 보안 업데이트가 함께 포함됩니다.
동작 변경: INCREMENTAL/AUTO Materialized View에 대한 쿼리 재작성이 비활성화되고 FORCE·파티션 갱신이 거부됩니다. 변경 항목 전체와 PR 번호는 아래 공식 릴리스 노트·GitHub 릴리스를 참고하세요.
참고 출처 (공식)
아래 공식 문서와 GitHub에서 4.1.0·4.1.1의 전체 변경 내역과 PR을 확인할 수 있습니다.
- StarRocks 4.1 공식 릴리스 노트 (4.1.0 + 4.1.1 전체): docs.starrocks.io/releasenotes/release-4.1
- GitHub 릴리스 목록 (버전별 태그 v4.1.0 / v4.1.1): github.com/StarRocks/starrocks/releases
- GitHub 태그 목록: github.com/StarRocks/starrocks/tags
- StarRocks 소개 문서: docs.starrocks.io/docs/introduction