카테고리
Version
생성자
U
Untitled- 4.1.1
- 동작 변경
- 개선 사항
- 보안
- 버그 수정
- 4.1.0
- Shared-data 아키텍처
- 데이터 레이크 분석
- 쿼리 엔진
- 함수 및 SQL 구문
- 관리 및 관측성(Observability)
- 보안
- 버그 수정
- 동작 변경
- 4.1.0-RC
- Shared-data 아키텍처
- 데이터 레이크 분석
- 쿼리 엔진
- 함수 및 SQL 구문
- 관리 및 관찰성
- 동작 변경
4.1.1
출시일: 2026년 5월 29일
동작 변경
- Hive 커넥터가 이제 기본적으로 JNI Avro 스캐너 대신 네이티브 C++ Avro 스캐너를 사용합니다. #73237 #73569
- INCREMENTAL/AUTO 머티리얼라이즈드 뷰에 대한 쿼리 재작성(query rewrite)이 이제 비활성화되었으며, INCREMENTAL/AUTO 머티리얼라이즈드 뷰에 대한 FORCE 새로고침과 파티션 새로고침이 거부됩니다. #72890 #72336 #71355
개선 사항
- Java UDF/UDAF/UDTF가 이제 더 많은 타입을 지원합니다: UDAF/UDTF의 STRUCT 인자 및 반환값, 중첩된 ARRAY/MAP 타입, DATE/DATETIME, DECIMAL, 가변 인자(varargs). #72911 #72283 #72337 #72208 #68596
- 스칼라 UDF가 이제 STRUCT 인자를 지원합니다. #72620
- Python UDF가 이제 중첩된 ARRAY/MAP 타입을 지원합니다. #72210
- UDAF가 이제 한 번만 로드 및 초기화되어 여러 쿼리에서 재사용되므로 쿼리별 오버헤드가 감소합니다. #72038
- Hive 커넥터의 JNI Avro 스캐너를 네이티브 C++ 스캐너로 교체했으며, 직접 바이너리 디코딩과
avro.schema.literal및avro.schema.url을 지원합니다. #73237 #73283 #73257 #73569 - CTAS 문에서 Trino
WITH절을 지원합니다. #71960 - 싱크(sink) 경로에서 Iceberg
timestamptz파티션 변환(transform) 지원을 완성했습니다. #73397 - Iceberg 테이블 집계에 대한 TopN 런타임 필터 푸시다운을 활성화했습니다. #72332
- Iceberg datetime min/max 최적화를 지원합니다. #71870
- 여러 HDFS 클러스터에 접근할 수 있도록 Catalog와 BE에서 HDFS HA 구성 전달(passthrough)을 허용합니다. #71521
- 외부 테이블 쿼리에 대한 파티션 스캔 수 제한을 추가했습니다. #68480
- 지원되지 않는 Iceberg V3 기능에 대해 빠르게 실패(fail fast)합니다. #70242
- INSERT INTO FILES를 통한 CSV 내보내기에서
csv.enclose및csv.escape를 지원합니다. #71589 files()로의 전체 스키마 푸시다운을 위한enable_push_down_schemaINSERT 속성을 추가했습니다. #70978- Routine Load 작업이 재시도 불가능한 오류(예: 기본 키 크기 초과) 발생 시 이제 일시 중지됩니다. #71161
- 두 자식(children)에서 비롯된 복잡한 표현식에 대한 조인 재정렬(join reorder)을 지원합니다. #71615
date_trunc,array_map, CASE WHEN, IS NULL, UNION 및 상수에 대한 MCV/null 비율 전파를 포함하여 CBO 통계 추정을 개선했습니다. #72233 #70372 #70221 #70865 #70989 #71000- 스큐 조인(skew join) 감지를 개선했습니다: 모든 조인 키가 스큐(skew)일 때만 스큐로 감지하며, 스큐 규칙을 강제하기 위한
force_group_by_skew_eliminate_when_skewed스위치를 추가했습니다. #72753 #71382 - FE에서
regexp_replace에 대한 상수 폴딩(constant folding)을 지원합니다. #70804 - 상수 파티션 값을 갖는 날짜 파티션 컬럼에 대한 MIN/MAX를 최적화했습니다. #69880
- 머티리얼라이즈드 뷰 새로고침에서
ASYNC의 동의어로SCHEDULE키워드를 도입했습니다. #72329 - Shared-data 모드의 Lake 테이블에 대한 태블릿 생성 재시도를 지원합니다. #71068
- Lake 컬럼 모드 부분 업데이트(column-mode partial update)에 대한 조건부 업데이트를 지원합니다. #71961
- 수집(ingestion) 처리량을 개선하기 위해 부분 업데이트 publish, 영속 인덱스(persistent index) 초기화, SSTable 열기를 병렬화했습니다. #71652 #71217 #72112 #71145 #72986
- Shared-nothing에서 shared-data로의 복제 중 DCG 파일 동기화를 지원합니다. #69339
- 키 컬럼과 비키 컬럼 모두에서 VARCHAR 길이 확장에 대한 스키마 진화(schema evolution)를 지원합니다. #70747
- 클러스터 스냅샷 무결성 검사를 위한
snapshot_meta.json마커를 추가했습니다. #71209 - DN 패턴을 통한 LDAP 직접 바인드(direct bind) 인증을 지원합니다. #71559
- 쿼리 문제 해결을 더 쉽게 하기 위한
get_query_dump_from_query_id메타 함수를 추가했습니다. #72875 - 감사 로그에서 쿼리된 릴레이션(relations)에 대한 감사를 지원합니다. #71596
- MySQL 바이너리 결과 인코딩을 위한 세션 변수를 추가했습니다. #71415
- Shared-data 클러스터용
tablet_num,MemtableIOSpeed,staros_shard_count, Iceberg 메타데이터 테이블 쿼리 메트릭을 포함하여 더 나은 관측성을 위한 메트릭을 추가했습니다. #71444 #69842 #73096 #70825 - FE 구성
deploy_serialization_min_thread_pool_size를 추가했습니다. #72274 - MergeTabletJob 생성을 비활성화하기 위한
tablet_reshard_enable_tablet_merge구성을 추가했습니다. #70906 SO_REUSEPORT를 통해 HTTP 서버 accept의 thundering-herd 문제를 제거했습니다. #72956
보안
- [CVE] Netty를 4.1.133.Final로 업그레이드했습니다. #72905
- [CVE-2026-42198] [CVE-2026-5598] pgjdbc를 42.7.11로, BouncyCastle을 1.84로 업그레이드했습니다. #72797
- [CVE-2026-32280] [CVE-2026-32282] Golang CVE를 제거하기 위해 pprof를 go1.25.9로 빌드했습니다. #71944 #73545
- jetty-http를 9.4.58.v20250814로 업그레이드했습니다. #71762
- Broker 의존성 CVE를 정리하고
wildfly-openssl을 제거했습니다. #72184 #71908 - INSERT INTO FILES 오류 메시지에서 자격 증명(credentials)을 마스킹 처리했습니다. #71245
버그 수정
다음 이슈들이 수정되었습니다:
hash_util정적 초기화 순서로 인해 발생하던 CN 시작 시 세그폴트(segfault) 문제를 수정했습니다. #71825- 물리적 분할(physical split)이 활성화된 상태에서 빈 태블릿을 스캔할 때 발생하던 CN 크래시를 수정했습니다. #70281
information_schema.warehouse_queries를 쿼리할 때 발생하던 BE 크래시를 수정했습니다. #72019- rowset의
num_rows가 0일 때 Lake 컴팩션에서 발생하던 SIGFPE를 수정했습니다. #71742 - ExecutionDAG 프래그먼트 연결에서 발생하던 0으로 나누기(division-by-zero) 문제를 수정했습니다. #67918
- SinkBuffer에서 정상 종료(graceful-exit) 시 발생하던 크래시를 수정했습니다. #73202
- Spill 가능한 해시 조인 probe 단계에서 발생하던 크래시를 수정했습니다. #72397
- 임시
std::string으로 포맷팅할 때 발생하던 스택 버퍼 오버플로(stack-buffer-overflow)를 수정했습니다. #72728 reverse(DecimalV3)에서 발생하던 크래시를 수정했습니다. #71834- 임시
shared_ptr소멸로 인해LoadChannel::get_load_replica_status에서 발생하던 use-after-free를 수정했습니다. #71843 - 스레드 생성 실패 시
ThreadPool::do_submit에서 발생하던 use-after-free를 수정했습니다. #71276 - 프래그먼트 해제(teardown) 전반에 걸친 Hive 파티션 디스크립터의 use-after-free를 수정했습니다. #73176
- information schema 싱크의 use-after-free를 수정했습니다. #71513
- HttpClient 인스턴스를 재사용하여 FE 파일 디스크립터 누수를 수정했습니다. #73239
JDBCScanner::_init_jdbc_scanner의 JNI 로컬 참조 누수를 수정했습니다. #72913- MV 계획 컨텍스트(plan context)를 캐싱할 때 발생하던 메모리 누수를 수정했습니다. #72300
- 로컬 익스체인지(local exchange)에서의 예기치 않은 메모리 과다 사용을 수정했습니다. #72262
- Lake
publish_version에서response->tablet_metas에 대한 경합(race)을 수정했습니다. #73274 DeltaWriter::commit()에서 동시SegmentFlushTask경합을 수정했습니다. #73371- 직렬화 중
RuntimeProfile의 min/max 경합을 수정했습니다. #72904 - 쿼리 컨텍스트 소멸 중
PipelineTimerTask의 경쟁 조건(race condition)을 수정했습니다. #73082 _all_global_rf_ready_or_timeout의 경쟁 조건을 수정했습니다. #70920map_apply및array_length에서의NullColumn공유 문제를 수정했습니다. #71258- 파티션 버전 간격(version gap)으로 인한 배치 publish 교착 상태(deadlock)를 수정했습니다. #71483
- Shared-nothing 모드에서 rowset 메타데이터용 LRU 캐시를 워밍업할 때 발생하던 교착 상태를 수정했습니다. #71459
Locker롤백이 예외에 안전하지 않고(exception-safe) 잠금 해제 순서가 잘못된 문제를 수정했습니다. #72789- 읽기 전용 및 메타데이터 경로의 여러 DB 락으로 인해 발생하던 DDL 및 StarOS RPC와의 락 경합을 수정했습니다. #73067 #72475 #72108 #72218 #72178
- 프로젝트 노드 누락으로 인한 잘못된 셔플 분포(shuffle distribution)를 수정했습니다. #71075
- 크래시 및 잘못된 결과를 유발하던 AGG TopN 런타임 필터
exprOrder불일치를 수정했습니다. #71479 - dict-merge GROUP BY의 잘못된 결과를 수정했습니다. #70866
- 쿼리 캐시와 로컬 셔플 집계 간의 충돌을 수정했습니다. #73194
- Flat JSON에서 전역 딕셔너리 생성이 일관되지 않던 문제를 수정했습니다. #72953
- Flat JSON 병합 시 빈 값 불일치(merge empty inconsistency) 문제를 수정했습니다. #72973
- 명시적 key/value 타입이 선언된 경우 맵 리터럴(map literals)에서 발생하던 타입 불일치를 수정했습니다. #71316
- JOIN USING 변환기에서 COALESCE 자식이 공통 타입으로 캐스팅되지 않던 문제를 수정했습니다. #72338
- 전역 변수로 reduce-cast 후 VARCHAR 길이가 보존되지 않던 문제를 수정했습니다. #70269
- MySQL 결과 집합의 중첩 타입 내부에서 VARBINARY가 잘못 인코딩되던 문제를 수정했습니다. #71346
- 작은 LIMIT에서 집계 spill을 비활성화할 때 발생하던 check-having-clause 문제를 수정했습니다. #72705
- 날짜 파싱 전에 따옴표가 제거되지 않던 문제와 PostgreSQL 날짜/시간 버그를 수정했습니다. #48517 #71016
- 범위 분포(range distribution) 태블릿의 데이터 파일 삭제를 건너뛰어, 태블릿 분할 후 데이터 손실이 발생하던 문제를 수정했습니다. #71135
- 형제 분할 태블릿(sibling split tablets)이 여전히 참조하는 파일을 vacuum이 삭제하게 만들던 데이터 파일 shared-flag 손실 문제를 수정했습니다. #71585
- split→compaction→merge 시퀀스에 대한 태블릿 병합 정확성을 수정했습니다. #72350
- 태블릿 분할 중 교차 publish된 txn 로그의 num_rows/data_size 부풀림(inflation) 문제를 수정했습니다. #71144
- 동일한 publish 배치 내에서 컴팩션 전 쓰기(write-before-compaction)로 인한 delvec 고아(orphan) 항목 문제를 수정했습니다. #71001
- StarMgr 저널 재생(journal replay)을 동기화하여 팔로워 FE에서 발생하던 "no queryable replica" 문제를 수정했습니다. #71263
- 일반 rowset 커밋을 적용할 때
merge_condition이 보존되지 않던 문제를 수정했습니다. #72542 - 잘못된 스냅샷 ID와 필터를 사용하던 Iceberg DELETE 충돌 감지 문제를 수정했습니다. #73354
- 잘못된 Iceberg transform 인자에 대한 NPE를 수정했습니다. #71917
- 플래너가 주입한 추가 컬럼으로 인해 Iceberg min/max 최적화가 건너뛰어지던 문제를 수정했습니다. #71863
- Iceberg 기반 테이블에 대한 aggregate-join-pushdown MV 재작성 문제를 수정했습니다. #71856
- INSERT OVERWRITE 커밋 전 Hive 파티션 디렉터리가 누락되던 문제를 수정했습니다. #71810
- JNI 스캐너에 AWS assume-role이 적용되지 않던 문제를 수정했습니다. #71422
- 잘려나간(pruned) 자식 및 중첩된 nullable 스키마에 대한 Avro 복합 타입 디코딩 문제를 수정했습니다. #73474
- Parquet Broker Load 오류에서 파일/컬럼/행 컨텍스트가 누락되던 문제를 수정했습니다. #73236
- Parquet 스캐너에서 Arrow 딕셔너리 값 지원이 누락되던 문제를 수정했습니다. #71855
- Paimon 테이블의 기본 키(Primary Key)가 SHOW CREATE 및 DESC 반환값에 표시되지 않던 문제를 수정했습니다. #70535
- PostgreSQL/Oracle JDBC 타입 호환성 및 끝에 슬래시가 붙은 JDBC URL 구성 문제를 수정했습니다. #70626 #70992
- JDBC 카탈로그에서 SQL Server 테이블에 대한 머티리얼라이즈드 뷰 새로고침 문제를 수정했습니다. #72962
- 아우터 조인(outer join) 기반 머티리얼라이즈드 뷰에 대한 지연 구체화(lazy-materialization) 슬롯 nullability 문제를 수정했습니다. #72621
- AUTO 및 INCREMENTAL 머티리얼라이즈드 뷰 파티션 새로고침이 거부되던 문제를 수정했습니다. #71355
- 머티리얼라이즈드 뷰가 비활성(inactive) 상태가 된 후에도 머티리얼라이즈드 뷰 스케줄러가 중지되지 않던 문제를 수정했습니다. #71265
- MySQL 클라이언트 호환성을 위한
SHOW GRANTS FOR CURRENT_USER()지원이 누락되던 문제를 수정했습니다. #71959 - 명시적 트랜잭션 내부에서 SHOW 문이 허용되지 않던 문제를 수정했습니다. #72954
- Arrow Flight가 빈 결과 집합에 대해 컬럼 이름
r을 반환하던 문제를 수정했습니다. #71534 - Java UDF 코드에서 JNI 예외 처리 검사가 누락되던 문제를 수정했습니다. #71734
ai_query함수 등록 문제를 수정했습니다. #72103enable_load_profile사용 시 Stream Load 프로파일 수집 문제를 수정했습니다. #71952- 프로파일의 START_TIME/END_TIME이 세션 시간대로 표시되지 않던 문제를 수정했습니다. #71429
star_mgr_meta_sync_interval_sec가 런타임에 변경 가능하지 않던 문제를 수정했습니다. #71675information_schema.tables가 동등(equality) 술어에서 특수 문자를 이스케이프하지 않던 문제를 수정했습니다. #71273
4.1.0
출시일: 2026년 4월 13일
Shared-data 아키텍처
- 다중 테넌트 데이터 관리 신규 지원: Shared-data 클러스터가 이제 범위 기반(range-based) 데이터 분포와 태블릿의 자동 분할 및 병합을 지원합니다. 태블릿은 과도하게 커지거나 핫스팟이 될 때 스키마 변경, SQL 수정, 데이터 재수집 없이 자동으로 분할될 수 있습니다. #65199 #66342 #67056 #67386 #68342 #68569 #66743 #67441 #68497 #68591 #66672 #69155
- 대용량 태블릿 지원(1단계): Shared-data 클러스터가 태블릿당 훨씬 더 많은 데이터를 보관할 수 있게 하며, 장기적으로 태블릿당 100GB를 목표로 합니다. 1단계에서는 수집(ingestion), 기본 키(Primary Key) 업데이트, 컴팩션(Compaction) 파이프라인에 걸쳐 태블릿 내부 병렬성을 도입합니다. #66424 #66522 #66778 #66586 #67432 #67478 #67554 #68677 #69865
- Fast Schema Evolution V2: Shared-data 클러스터가 이제 Fast Schema Evolution V2를 지원하며, 스키마 작업에 대해 초 단위(second-level) DDL 실행을 가능하게 하고, 이 지원을 머티리얼라이즈드 뷰로까지 확장합니다. #65726 #66774 #67915
- [Beta] Shared-data의 역색인(Inverted Index): 텍스트 필터링 및 전문 검색(full-text search) 워크로드를 가속하기 위해 shared-data 클러스터에 내장 역색인(inverted index)을 활성화합니다. #66541
- 캐시 관측성(Cache Observability): 이제 쿼리 수준의 캐시 적중률(cache hit ratio)이 감사 로그와 모니터링 시스템에 노출됩니다. 추가된 Data Cache 메트릭에는 메모리 및 디스크 할당량(quota) 사용량과 페이지 캐시 통계가 포함됩니다. #63964
- 스캔 중 정렬 키(sort key) 범위를 기반으로 관련 없는 세그먼트를 건너뛰는 Lake 테이블용 세그먼트 메타데이터 필터를 추가하여, 범위 술어(range-predicate) 쿼리의 I/O를 줄였습니다. #68124
- Lake DeltaWriter에 대한 빠른 취소(fast cancel)를 지원하여, shared-data 클러스터에서 취소된 수집 작업의 지연 시간을 줄였습니다. #68877
- 자동 클러스터 스냅샷에 대한 간격 기반(interval-based) 스케줄링 지원을 추가했습니다. #67525
- MemTable 플러시 및 병합에 대한 파이프라인 실행을 지원하여, shared-data 클러스터의 클라우드 네이티브 테이블 수집 처리량을 개선했습니다. #67878
- 클라우드 네이티브 테이블 복구에 대한
dry_run모드를 지원하여, 사용자가 실행 전에 복구 작업을 미리 볼 수 있습니다. #68494 - Shared-nothing 클러스터에서 publish 트랜잭션을 위한 스레드 풀을 추가하여 publish 처리량을 개선했습니다. #67797
- 클라우드 네이티브 테이블에 대해
datacache.enable속성을 동적으로 수정하는 것을 지원합니다. #69011
데이터 레이크 분석
- Iceberg DELETE 지원: Iceberg 테이블에 대한 position delete 파일 쓰기를 지원하여, StarRocks에서 직접 Iceberg 테이블의 DELETE 작업을 수행할 수 있습니다. #67259 #67277 #67421 #67567
- Hive 및 Iceberg 테이블에 대한 TRUNCATE: 외부 Hive 및 Iceberg 테이블에 대한 TRUNCATE TABLE을 지원합니다. #64768 #65016
- Iceberg의 증분 머티리얼라이즈드 뷰: 증분(incremental) 머티리얼라이즈드 뷰 새로고침 지원을 Iceberg append-only 테이블로 확장하여, 전체 테이블 새로고침 없이 쿼리 가속을 가능하게 합니다. #65469 #62699
- Iceberg의 반정형 데이터를 위한 VARIANT 타입: 유연한 schema-on-read 방식의 반정형 데이터 저장 및 쿼리를 위해 Iceberg Catalog에서 VARIANT 데이터 타입을 지원합니다. #63639 #66539
- Iceberg v3 지원: Iceberg v3의 기본값(default value) 기능과 행 계보(row lineage)에 대한 지원을 추가했습니다. #69525 #69633
- Iceberg 테이블 유지 관리 프로시저:
rewrite_manifests프로시저 지원을 추가하고, 더 세밀한 테이블 유지 관리를 위해 추가 인자를 갖도록expire_snapshots및remove_orphan_files프로시저를 확장했습니다. #68817 #68898 - Iceberg
$properties메타데이터 테이블:$properties메타데이터 테이블을 통해 Iceberg 테이블 속성을 쿼리하는 기능을 추가했습니다. #68504 - Iceberg 테이블에서 파일 경로(file path) 및 행 위치(row position) 메타데이터 컬럼 읽기를 지원합니다. #67003
- Iceberg v3 테이블에서
_row_id읽기를 지원하고, Iceberg v3에 대한 전역 지연 구체화(global late materialization)를 지원합니다. #62318 #64133 - 사용자 지정 속성을 갖는 Iceberg 뷰 생성을 지원하고, SHOW CREATE VIEW 출력에 속성을 표시합니다. #65938
- 특정 브랜치, 태그, 버전 또는 타임스탬프로 Paimon 테이블을 쿼리하는 것을 지원합니다. #63316
- Paimon 테이블에 대한 복합 타입(ARRAY, MAP, STRUCT)을 지원합니다. #66784
- Paimon 뷰를 지원합니다. #56058
- Paimon 테이블에 대한 TRUNCATE를 지원합니다. #67559
- Iceberg 테이블 생성 시 괄호 구문(parentheses syntax)을 사용한 파티션 변환(Partition Transforms)을 지원합니다. #68945
- Iceberg 테이블에 대한 ALTER TABLE REPLACE PARTITION COLUMN을 지원합니다. #70508
- 더 나은 데이터 구성을 위해 Transform Partition 기반의 Iceberg 전역 셔플(global shuffle)을 지원합니다. #70009
- Iceberg 테이블 싱크에 대해 전역 셔플을 동적으로 활성화하는 것을 지원합니다. #67442
- 동시 Commit 충돌을 방지하기 위해 Iceberg 테이블 싱크에 Commit 큐를 도입했습니다. #68084
- 데이터 구성과 읽기 성능을 개선하기 위해 Iceberg 테이블 싱크에 호스트 수준(host-level) 정렬을 추가했습니다. #68121
- ETL 실행 모드의 추가 최적화를 기본적으로 활성화하여, 별도의 명시적 구성 없이 INSERT INTO SELECT, CREATE TABLE AS SELECT 및 유사한 배치 작업의 성능을 개선했습니다. #66841
- Iceberg 테이블에 대한 INSERT 및 DELETE 작업의 커밋 감사 정보를 추가했습니다. #69198
- Iceberg REST Catalog에서 뷰 엔드포인트(view endpoint) 작업을 활성화하거나 비활성화하는 것을 지원합니다. #66083
- CachingIcebergCatalog의 캐시 조회 효율성을 최적화했습니다. #66388
- 다양한 Iceberg 카탈로그 타입에 대한 EXPLAIN을 지원합니다. #66563
- AWS Glue Catalog 테이블의 파티션 프로젝션(partition projection)을 지원합니다. #67601
- AWS Glue
GetDatabasesAPI에 대한 리소스 공유 타입(resource share type) 지원을 추가했습니다. #69056 - 엔드포인트 주입(endpoint injection)을 통한 Azure ABFS/WASB 경로 매핑(
azblob/adls2)을 지원합니다. #67847 - 원격 RPC 오버헤드와 외부 시스템 장애의 영향을 줄이기 위해 JDBC 카탈로그용 데이터베이스 메타데이터 캐시를 추가했습니다. #68256
- 사용자 지정 스키마 해석(custom schema resolution)을 지원하기 위해 JDBC 카탈로그에
schema_resolver속성을 추가했습니다. #68682 information_schema에서 PostgreSQL 테이블의 컬럼 주석(column comments)을 지원합니다. #70520- Oracle 및 PostgreSQL JDBC 타입 매핑을 개선했습니다. #70315 #70566
쿼리 엔진
- 재귀 CTE: 계층 구조 탐색, 그래프 쿼리, 반복적 SQL 연산을 위한 재귀 공통 테이블 표현식(Recursive CTE)을 지원합니다. #65932
- 통계 기반 스큐 감지, 히스토그램 지원, NULL 스큐 인식 기능으로 Skew Join v2 재작성을 개선했습니다. #68680 #68886
- 윈도우에 대한 COUNT DISTINCT를 개선하고, 융합된 다중 distinct 집계(fused multi-distinct aggregations) 지원을 추가했습니다. #67453
- 윈도우 함수에 대한 명시적 스큐 힌트(skew hint)를 지원하며, 스큐된 파티션 키를 갖는 윈도우 함수를 UNION으로 분할하여 자동으로 최적화합니다. #68739 #67944
- CTE에 대한 구체화 힌트(materialization hints)를 지원합니다. #70802
- 전역 지연 구체화(Global Lazy Materialization)를 기본적으로 활성화하여, 필요할 때까지 컬럼 읽기를 지연시킴으로써 쿼리 성능을 개선했습니다. #70412
- Trino 파서에서 INSERT 문에 대한 EXPLAIN 및 EXPLAIN ANALYZE를 지원합니다. #70174
- 쿼리 큐 가시성(query queue visibility)을 위한 EXPLAIN을 지원합니다. #69933
함수 및 SQL 구문
다음 함수들이 추가되었습니다: array_top_n #63376, arrays_zip #65556, json_pretty #66695, json_set #66193, initcap #66837, sum_map #67482, current_timezone #63653, current_warehouse #66401, sec_to_time #62797, ai_query #61583, min_n/max_n #63807, regexp_position #67252, is_json_scalar #66050, get_json_scalar #68815, raise_error #69661, uuid_v7 #67694, STRING_AGG #64704
다음과 같은 함수 또는 구문 확장을 제공합니다:
array_sort에서 람다 비교자(lambda comparator)를 지원합니다. #66607- SQL 표준 의미론(semantics)에 따라 FULL OUTER JOIN에 대한 USING 절을 지원합니다. #65122
- ORDER BY/PARTITION BY를 갖는 프레임 윈도우 함수(framed window functions)에 대한 DISTINCT 집계를 지원합니다. #65815 #65030 #67453
lead/lag/first_value/last_value윈도우 함수에서 ARRAY 타입을 지원합니다. #63547- count distinct 계열 집계 함수에 대해 VARBINARY를 지원합니다. #68442
- interval 연산에 대한
MULTIPLY/DIVIDE를 지원합니다. #68407 - IN 표현식에서 날짜 및 문자열 타입 캐스팅을 지원합니다. #61746
- BEGIN/START TRANSACTION에 대한 WITH LABEL 구문을 지원합니다. #68320
- SHOW 문에서 WHERE/ORDER/LIMIT 절을 지원합니다. #68834
- 작업 관리를 위한
ALTER TASK문을 지원합니다. #68675 CREATE FUNCTION ... AS <sql_body>를 통한 SQL UDF 생성을 지원합니다. #67558- S3에서 UDF 로드를 지원합니다. #64541
- CSV 파일 내보내기에 대해 여러 압축 형식(GZIP/SNAPPY/ZSTD/LZ4/DEFLATE/ZLIB/BZIP2)을 지원합니다. #68054
- 이름 기반 struct 필드 매칭을 위한
STRUCT_CAST_BY_NAMESQL 모드를 지원합니다. #69845 - 손쉬운 쿼리 프로파일 분석을 위해
ANALYZE PROFILE에서last_query_id()를 지원합니다. #64557
관리 및 관측성(Observability)
- 다중 웨어하우스 CPU 리소스 격리를 개선하기 위해 리소스 그룹에 대한
warehouses,cpu_weight_percent,exclusive_cpu_weight속성을 지원합니다. #66947 - FE 스레드 상태를 검사하기 위한
information_schema.fe_threads시스템 뷰를 도입했습니다. #65431 - 클러스터 수준에서 특정 쿼리 패턴을 차단하기 위한 SQL Digest 블랙리스트를 지원합니다. #66499
- 네트워크 토폴로지 제약으로 인해 접근할 수 없는 노드에서 Arrow Flight 데이터 검색을 지원합니다. #66348
- 재연결 없이 전역 변수 변경을 기존 연결에 전파하기 위한 REFRESH CONNECTIONS 명령을 도입했습니다. #64964
- 쿼리 프로파일을 분석하고 포맷팅된 SQL을 볼 수 있는 내장 UI 기능을 추가하여 쿼리 튜닝을 더 쉽게 만들었습니다. #63867
- 구조화된 클러스터 개요를 제공하기 위해
ClusterSummaryActionV2API 엔드포인트를 구현했습니다. #68836 - 현재 클러스터 실행 모드(shared-data 또는 shared-nothing)를 쿼리하기 위한 전역 읽기 전용 시스템 변수
@@run_mode를 추가했습니다. #69247 - 향상된 쿼리 큐 관리를 위해
query_queue_v2를 기본적으로 활성화했습니다. #67462 - Stream Load 및 Merge Commit 작업에 대한 사용자 수준 기본 웨어하우스를 지원합니다. #68106 #68616
- 필요 시 백엔드 블랙리스트 검증을 우회하기 위한
skip_black_list세션 변수를 추가했습니다. #67467 - 메트릭 API에 대한
enable_table_metrics_collect옵션을 추가했습니다. #68691 - 쿼리 상세 HTTP API에 대한 사용자 가장(impersonate) 지원을 추가했습니다. #68674
- 테이블 수준 속성으로
table_query_timeout을 추가했습니다. #67547 - 구성 가능한 지연 시간 임계값을 갖는 FE 프로파일 로깅을 추가했습니다. #69396
- FE 옵저버(observer) 노드 추가를 지원합니다. #67778
- 더 나은 로드 작업 가시성을 위해
information_schema.loads에서 Merge Commit 정보를 지원합니다. #67879 - 더 나은 문제 해결을 위해 클라우드 네이티브 테이블에서 태블릿 상태 표시를 지원합니다. #69616
- 외부 카탈로그 관측성을 위해 카탈로그 타입별 쿼리 메트릭을 추가했습니다. #70533
- FE 및 BE에 대한 Debian(.deb) 패키징 지원을 추가했습니다. #68821
보안
- [CVE-2026-33870] [CVE-2026-33871] AWS 번들을 교체하고 Netty를 4.1.132.Final로 업그레이드했습니다. #71017
- [CVE-2025-27821] Hadoop을 v3.4.2로 업그레이드했습니다. #68529
- [CVE-2025-54920]
spark-core_2.12를 3.5.7로 업그레이드했습니다. #70862
버그 수정
다음 이슈들이 수정되었습니다:
- 범위 분포(range distribution) 태블릿의 데이터 파일 삭제를 건너뛰어, 태블릿 분할 후 데이터 손실이 발생하던 문제를 수정했습니다. #71135
- 복합 타입에 대한
DefaultValueColumnIterator의 메모리 누수를 수정했습니다. #71142 BatchUnit과FetchTaskContext간의shared_ptr순환으로 인한 메모리 누수를 수정했습니다. #71126- 오류 경로에서 병렬 세그먼트/rowset 로딩 시 발생하던 use-after-free를 수정했습니다. #71083
- 집계 spill의
set_finishing에서 발생할 수 있던 해시 테이블 데이터 손실을 수정했습니다. #70851 - 동시 getline 접근으로 인해 SystemMetrics에서 발생하던 double-free 크래시를 수정했습니다. #71040
- eager merge가 모든 블록을 소비할 때 SpillMemTableSink에서 발생하던 크래시를 수정했습니다. #69046
- 딕셔너리 백킹 테이블(backing table)이 삭제될 때
visitDictionaryGetExpr에서 발생하던 NPE를 수정했습니다. #71109 - 참조된 컬럼이 누락된 경우 Stream Load/Broker Load에서 생성 컬럼(generated columns)을 분석할 때 발생하던 NPE를 수정했습니다. #71116
- TTL 정리기(cleaner)에 의해 자동 생성된 파티션이 삭제될 때 발생하던 NPE를 수정했습니다. #68257
- 스냅샷이 만료되었을 때
IcebergCatalog.getPartitionLastUpdatedTime에서 발생하던 NPE를 수정했습니다. #68925 - 상수 측 컬럼 참조(constant-side column reference)를 갖는 아우터 조인에 대한 잘못된 술어 재작성을 수정했습니다. #67072
- 디스크 재마이그레이션(A→B→A) 중 GC 경합으로 인해 발생하던 PK 태블릿 rowset 메타 손실을 수정했습니다. #70727
- SharedDataStorageVolumeMgr의 DB 읽기 락 누수를 수정했습니다. #70987
- shared-data에서 CHAR 컬럼 길이를 수정한 후 발생하던 잘못된 쿼리 결과를 수정했습니다. #68808
- 다중 테이블 경우의 MV 새로고침 버그를 수정했습니다. #61763
- 강제 새로고침된 경우 잘못된 MV 회수 시간(recycle time)을 수정했습니다. #68673
- 동기(sync) MV에서 모든 값이 null인 경우의 처리 버그를 수정했습니다. #69136
- 빠른 스키마 변경 ADD COLUMN 후 MV를 쿼리할 때 발생하던 중복 컬럼 id 오류를 수정했습니다. #71072
- IVM 새로고침이 불완전한 PCT 파티션 메타데이터를 기록하던 문제를 수정했습니다. #71092
- 공유된 DecodeInfo로 인한 low-cardinality 재작성 NPE를 수정했습니다. #68799
- low-cardinality 조인 술어 타입 불일치를 수정했습니다. #68568
null_counts가 비어 있을 때 Parquet Page Index Filter에서 발생하던 세그폴트를 수정했습니다. #68463- 동일한 경로에서 JSON flatten 배열과 객체가 충돌하던 문제를 수정했습니다. #68804
- Iceberg 캐시 weigher의 부정확성을 수정했습니다. #69058
- Iceberg 테이블 캐시 메모리 제한 문제를 수정했습니다. #67769
- Iceberg delete 컬럼 nullability 문제를 수정했습니다. #68649
- Azure ABFS/WASB FileSystem 캐시 키에 컨테이너가 포함되도록 수정했습니다. #68901
- HMS 연결 풀이 가득 찼을 때 발생하던 교착 상태를 수정했습니다. #68033
- Paimon Catalog에서 VARCHAR 필드 타입의 잘못된 길이를 수정했습니다. #68383
- ObjectTable에서 ClassCastException으로 인해 발생하던 Paimon 카탈로그 새로고침 크래시를 수정했습니다. #70224
- PaimonView가 Paimon 카탈로그 대신 default_catalog에 대해 테이블 참조를 해석하던 문제를 수정했습니다. #70217
- 상수 서브쿼리를 갖는 FULL OUTER JOIN USING 문제를 수정했습니다. #69028
- CTE 범위(scope)와 관련된 join on 절 버그를 수정했습니다. #68809
- 쇼트서킷(short-circuit) 포인트 조회에서 파티션 술어가 누락되던 문제를 수정했습니다. #71124
bindScope()패턴을 사용하여 ConnectContext 메모리 누수를 수정했습니다. #68215- Shared-nothing 클러스터에 대한
CatalogRecycleBin.asyncDeleteForTables의 메모리 누수를 수정했습니다. #68275 - Thrift accept 스레드가 예외를 만났을 때 종료되던 문제를 수정했습니다. #68644
- Routine Load 컬럼 매핑에서의 UDF 해석(resolution) 문제를 수정했습니다. #68201
DROP FUNCTION IF EXISTS가ifExists플래그를 무시하던 문제를 수정했습니다. #69216- 딕셔너리 페이지가 너무 클 때 발생하던 스캔 결과 오류를 수정했습니다. #68258
- 범위 파티션 겹침(overlap) 문제를 수정했습니다. #68255
- 쿼리 큐 할당 시간 및 대기(pending) 타임아웃 문제를 수정했습니다. #65802
- null 리터럴 배열을 처리할 때
array_map에서 발생하던 크래시를 수정했습니다. #70629 to_base64에서 발생하던 스택 오버플로를 수정했습니다. #70623- 옵티마이저 타임아웃 문제를 수정했습니다. #70605
- LDAP 인증에 대한 대소문자 구분 없는 사용자 이름 정규화 문제를 수정했습니다. #67966
- API
proc_file의 SSRF 위험을 완화했습니다. #68997 - 감사 및 SQL 마스킹(redaction)에서 사용자 인증 문자열을 마스킹 처리했습니다. #70360
동작 변경
- ETL 실행 모드 최적화가 이제 기본적으로 활성화됩니다. 이는 명시적 구성 변경 없이 INSERT INTO SELECT, CREATE TABLE AS SELECT 및 유사한 배치 워크로드에 이점을 제공합니다. #66841
lag/lead윈도우 함수의 세 번째 인자가 이제 상수 값뿐만 아니라 컬럼 참조도 지원합니다. #60209- FULL OUTER JOIN USING이 이제 SQL 표준 의미론을 따릅니다: USING 컬럼이 출력에 두 번이 아니라 한 번만 나타납니다. #65122
- 전역 지연 구체화(Global Lazy Materialization)가 이제 기본적으로 활성화됩니다. #70412
query_queue_v2가 이제 기본적으로 활성화됩니다. #67462- SQL 트랜잭션이 기본적으로 세션 변수
enable_sql_transaction에 의해 게이팅(gated)됩니다. #63535
4.1.0-RC
출시일: 2026년 2월 28일
Shared-data 아키텍처
- 멀티 테넌트 데이터 관리: Shared-data 클러스터에서 Range 기반 데이터 분산 및 태블릿 자동 분할/병합을 지원합니다. 태블릿이 과대해지면 자동으로 분할됩니다. #65199 #66342 #67056 #67386 #68342 #68569 #66743
- 대용량 태블릿 지원 (Phase 1): Lake 태블릿 내에서 병렬 Compaction 및 병렬 MemTable Finalization을 지원합니다. #66586 #68677
- Fast Schema Evolution V2: 스키마 작업에 대한 초 단위 DDL 실행이 Materialized View로 확장되었습니다. #65726 #66774 #67915
- [Beta] 역색인(Inverted Index): Shared-data 클러스터에서 텍스트 필터링 가속을 지원합니다. #66541
- 캐시 관찰성: 감사 로그 및 모니터링 시스템에 캐시 히트율 메트릭이 추가되었습니다. #63964
- Lake 테이블의 세그먼트 메타데이터 필터링으로 I/O가 감소됩니다. #68124
- Lake DeltaWriter에 대한 빠른 취소 지원이 추가되었습니다. #68877
- 자동화된 클러스터 스냅샷에 인터벌 기반 스케줄링을 지원합니다. #67525
데이터 레이크 분석
- Iceberg DELETE 지원: Position delete 파일 쓰기를 통해 DELETE 작업을 지원합니다. #67259 #67277 #67421 #67567
- TRUNCATE 지원: 외부 Hive 및 Iceberg 테이블에 대한 TRUNCATE를 지원합니다. #64768 #65016
- 증분 Materialized View: Iceberg append-only 테이블에 대해 전체 새로고침 없이 증분 새로고침을 지원합니다. #65469 #62699
- VARIANT 타입: Iceberg에서 반정형 데이터에 대한 읽기/쓰기 기능을 지원합니다. #63639 #66539
- Iceberg에서 파일 경로 및 행 위치 메타데이터 읽기를 지원합니다. #67003
- Iceberg v3
_row_id읽기 및 글로벌 Late Materialization을 지원합니다. #62318 #64133 - Iceberg 뷰에 대한 사용자 정의 속성을 지원합니다. #65938
- Paimon branch/tag/version/timestamp 쿼리를 지원합니다. #63316
- ETL 모드 최적화가 기본적으로 활성화되었습니다. #66841
- Iceberg INSERT/DELETE 커밋 감사 정보가 추가되었습니다. #69198
- Iceberg REST Catalog 뷰 엔드포인트 제어를 지원합니다. #66083
- CachingIcebergCatalog 효율성이 개선되었습니다. #66388
- Iceberg 카탈로그 타입에 대한 EXPLAIN 지원이 추가되었습니다. #66563
쿼리 엔진
- 재귀 CTE(Recursive CTE): 계층적 탐색, 그래프 쿼리 및 반복적 SQL 계산을 지원합니다. #65932
- 통계 기반 탐지 및 히스토그램 지원을 통한 Skew Join v2가 개선되었습니다. #68680 #68886
- 윈도우에서의 COUNT DISTINCT 및 퓨즈드 멀티 디스팅트 집계를 지원합니다. #67453
함수 및 SQL 구문
새로운 함수:
array_top_n,arrays_zip,json_pretty,json_set,initcap,sum_map,current_timezone,current_warehouse,sec_to_time,ai_query
함수 확장:
array_sort에서 Lambda 비교자를 지원합니다. #66607FULL OUTER JOIN USING절을 지원합니다. #65122- 프레임 윈도우에서 DISTINCT 집계를 지원합니다. #65815 #65030 #67453
- 윈도우 함수에서 ARRAY 타입을 지원합니다. #63547
관리 및 관찰성
- CPU 격리를 위한 리소스 그룹 속성이 추가되었습니다. #66947
information_schema.fe_threads시스템 뷰가 추가되었습니다. #65431- SQL Digest 블랙리스트 기능이 추가되었습니다. #66499
- Arrow Flight 데이터 검색을 지원합니다. #66348
REFRESH CONNECTIONS명령어가 추가되었습니다. #64964- Query Profile 분석 UI 기능이 추가되었습니다. #63867
- ClusterSummaryActionV2 API 엔드포인트가 추가되었습니다. #68836
- 읽기 전용
@@run_mode시스템 변수가 추가되었습니다. #69247