카테고리
Version
생성자
U
Untitled- 3.5.7
- 개선사항
- 버그 수정
- 3.5.6
- 개선사항
- 버그 수정
- 3.5.5
- 개선 사항
- 버그 수정
- 3.5.4
- 개선 사항
- 버그 수정
- 3.5.3
- 개선 사항
- 버그 수정
- 3.5.2
- 개선 사항
- 버그 수정
- 동작 변경
- 3.5.1
- 새로운 기능
- 개선 사항
- 버그 수정
- 동작 변경 사항
- 3.5.0
- 업그레이드 주의사항
- 공유 데이터 개선사항
- 데이터 레이크 분석
- 성능 개선 및 쿼리 최적화
- 파티션 관리
- 클러스터 관리
- 보안 및 인증
- 구체화된 뷰
- 로딩 및 언로딩
- 함수
- v3.5.0-RC01
- Shared-data 개선사항
- Data Lake Analytics
- 성능 향상 및 쿼리 최적화
- Partition 관리
- Cluster 관리
- 보안 과 인증
- Materialized Views
- 데이터 로딩 & 언로딩
- 함수들
- Upgrade Notes
3.5.7
출시일: 2025년 10월 21일
개선사항
- 과도한 메모리 경합 시나리오에서 재시도 백오프를 도입하여 Scan 연산자의 메모리 통계 정확도 개선. #63788
- 기존 tablet 분산을 활용하여 과도한 bucket 생성을 방지하도록 Materialized view bucketing 추론 최적화. #63367
- 빈번한 메타데이터 업데이트 중 일관성을 향상하고 캐시 무효화 위험을 줄이도록 Iceberg 테이블 캐싱 메커니즘 개선. #63388
- API 및 스케줄러 전반에서 쿼리 출처를 더 잘 추적하기 위해
QueryDetail및AuditEvent에querySource필드 추가. #63480 - MemTable 쓰기에서 중복 키가 감지될 때 상세한 컨텍스트를 출력하여 Persistent Index 진단 강화. #63560
- 동시 시나리오에서 락 세분성 및 순서를 개선하여 Materialized view 작업의 락 경합 감소. #63481
버그 수정
다음 이슈들이 수정되었습니다:
- 타입 불일치로 인한 Materialized view 재작성 실패. #63659
regexp_extract_all의 잘못된 동작 및pos=0지원 부족. #63626- 복잡한 함수가 있는 CASE WHEN의 무익한 단순화로 인한 스캔 성능 저하. #63732
- 부분 업데이트가 컬럼 모드에서 행 모드로 전환될 때 잘못된 DCG 데이터 읽기. #61529
ExceptionStackContext초기화 중 발생할 수 있는 교착 상태. #63776- ARM 아키텍처 머신에서 Parquet 숫자 변환 시 발생하는 크래시. #63294
- Aggregate 중간 타입이
ARRAY<NULL_TYPE>을 사용하여 발생하는 문제. #63371 - 부호 경계 케이스(예: INT128_MIN)에서 LARGEINT를 DECIMAL128로 캐스팅할 때 잘못된 오버플로 감지로 인한 안정성 문제. #63559
- LZ4 압축 및 압축 해제 오류를 감지할 수 없는 문제. #63629
- INT 타입 컬럼에서
FROM_UNIXTIME으로 파티션된 테이블을 쿼리할 때ClassCastException발생. #63684 - 유일한 유효한 소스 replica가
DECOMMISSION으로 표시되어 있을 때 밸런스 트리거 마이그레이션 후 tablet을 복구할 수 없는 문제. #62942 - PREPARE 문을 사용할 때 Profile에서 SQL 문과 Planner Trace가 손실되는 문제. #63519
extract_number,extract_bool,extract_string함수가 예외 안전하지 않은 문제. #63575- 종료된 tablet이 가비지 컬렉션되지 않는 문제. #63595
- PREPARE/EXECUTE 문의 반환에 대해 Profile이 SQL을
omit으로 표시하는 문제. #62988 - 결합된 조건자를 가진
date_trunc파티션 프루닝이 잘못 EMPTYSET을 생성하는 문제. #63464 - NullableColumn의 CHECK로 인한 릴리스 빌드 크래시. #63553
3.5.6
출시일: 2025년 9월 22일
개선사항
- 해제된 BE의 모든 tablet이 recycle bin에 있을 때 강제로 삭제하여 해당 tablet으로 인해 해제가 차단되는 것을 방지. #62781
- Vacuum 성공 시 Vacuum 메트릭이 업데이트됨. #62540
- 프래그먼트 인스턴스 실행 상태 리포트에 활성 스레드, 대기열 수, 실행 중인 스레드를 포함한 스레드 풀 메트릭 추가. #63067
- MinIO 및 기타 S3 호환 스토리지 시스템과의 호환성을 개선하기 위해 shared-data 클러스터에서 S3 경로 스타일 액세스 지원. storage volume 생성 시
aws.s3.enable_path_style_access를 true로 설정하여 이 기능을 활성화할 수 있음. #62591 ALTER TABLE <table_name> AUTO_INCREMENT = 10000;을 통해 AUTO_INCREMENT 값의 시작점 재설정 지원. #62767- 그룹 매칭을 위해 Group Provider에서 Distinguished Name(DN) 사용 지원으로 LDAP/Microsoft Active Directory 환경의 사용자 그룹 솔루션 개선. #62711
- Azure Data Lake Storage Gen2에 대한 Azure Workload Identity 인증 지원. #62754
- 장애 진단을 돕기 위해
information_schema.loadsview에 트랜잭션 오류 메시지 추가. #61364 - Scan 조건자에서 복잡한 CASE WHEN 표현식에 대한 공통 표현식 재사용을 지원하여 반복 계산 감소. #62779
- REFRESH 문 실행 시 Materialized view에서 ALTER 대신 REFRESH 권한 사용. #62636
- 잠재적 문제를 방지하기 위해 Lake 테이블에서 low-cardinality 최적화를 기본적으로 비활성화. #62586
- Shared-data 클러스터에서 worker 간 tablet 밸런싱을 기본적으로 활성화. #62661
- Outer-join WHERE 조건자에서 표현식 재사용을 지원하여 반복 계산 감소. #62139
- FE에 Clone 메트릭 추가. #62421
- BE에 Clone 메트릭 추가. #62479
- 기본적으로 통계 캐시 지연 새로 고침을 비활성화하기 위한 FE 설정 항목
enable_statistic_cache_refresh_after_write추가. #62518 - 보안 강화를 위해 SUBMIT TASK에서 자격 증명 정보 마스킹. #62311
- Trino 방언에서
json_extract가 JSON 타입 반환. #59718 null_or_empty에서 ARRAY 타입 지원. #62207- Iceberg manifest 캐시의 크기 제한 조정. #61966
- Hive에 대한 원격 파일 캐시 제한 추가. #62288
버그 수정
다음 이슈들이 수정되었습니다:
- 음수 타임아웃 값으로 인해 보조 replica가 무기한 중단되어 잘못된 타임스탬프 비교를 발생시키던 문제. #62805
- TransactionState가 REPLICATION일 때 PublishTask가 차단될 수 있는 문제. #61664
- Materialized view 갱신 중 삭제되고 재생성된 Hive 테이블에 대한 잘못된 복구 메커니즘. #63072
- Materialized view aggregation push-down 재작성 후 잘못된 실행 플랜이 생성되던 문제. #63060
- PlanTuningGuide가 쿼리 프로파일에서 인식할 수 없는 문자열(null explainString)을 생성하여 발생하는 ANALYZE PROFILE 실패. #63024
hour_from_unixtime의 부적절한 반환 타입 및 CAST의 잘못된 재작성 규칙. #63006- 데이터 경합 상태에서 Iceberg manifest 캐시의 NPE. #63043
- Shared-data 클러스터에서 Materialized view의 colocation 지원 부족. #62941
- Scan Range 배포 중 Iceberg 테이블 Scan 예외. #62994
- View 기반 재작성에 대해 잘못된 실행 플랜이 생성되던 문제. #62918
- Compute Node가 종료 시 정상적으로 종료되지 않아 발생하는 오류 및 중단된 작업. #62916
- Stream Load 실행 상태 업데이트 시 NPE. #62921
- PARTITION BY 절의 컬럼 이름과 이름의 대소문자가 다를 때 통계 관련 문제. #62953
- LEAST 함수가 조건자로 사용될 때 잘못된 결과가 반환되는 문제. #62826
- 테이블 프루닝 경계 CTEConsumer 위의 잘못된 ProjectOperator. #62914
- Clone 후 중복 replica 처리. #62542
- Stream Load 프로파일 수집 실패. #62802
- 부적절한 BE 선택으로 인한 비효율적인 디스크 리밸런싱. #62776
- 누락된 tablet_id가 null delta writer를 유발할 때 LocalTabletsChannel에서 발생할 수 있는 NPE 크래시. #62861
- KILL ANALYZE가 작동하지 않던 문제. #62842
- MCV 값에 작은따옴표가 포함될 때 히스토그램 통계의 SQL 구문 오류. #62853
- Prometheus용 메트릭의 잘못된 출력 형식. #62742
- 데이터베이스 삭제 후
information_schema.analyze_status를 쿼리할 때 NPE. #62796 - CVE-2025-58056. #62801
- SHOW CREATE ROUTINE LOAD 실행 시 데이터베이스를 지정하지 않으면 null로 간주되어 잘못된 결과가 반환되는 문제. #62745
files()에서 CSV 헤더를 잘못 건너뛰어 발생하는 데이터 손실. #62719- 배치 트랜잭션 upsert 재생 시 NPE. #62715
- Shared-nothing 클러스터에서 정상 종료 중 Publish가 성공으로 잘못 보고되는 문제. #62417
- null 포인터로 인한 비동기 delta writer 크래시. #62626
- 복원 작업 실패 후 Materialized view 버전 맵이 지워지지 않아 Materialized view 갱신이 건너뛰어지는 문제. #62634
- Materialized view 분석기에서 대소문자를 구분하는 파티션 컬럼 검증으로 인한 문제. #62598
- 구문 오류가 있는 문에 대한 중복 ID. #62258
- CancelableAnalyzeTask의 중복 상태 할당으로 인해 StatisticsExecutor 상태가 재정의되는 문제. #62538
- 통계 수집에서 생성되는 잘못된 오류 메시지. #62533
- 외부 사용자에 대한 불충분한 기본 최대 연결로 인한 조기 제한. #62523
- Materialized view 백업 및 복원 작업에서 발생할 수 있는 NPE. #62514
- 잘못된
http_workers_num메트릭. #62457 - 런타임 필터가 구성 중 해당 실행 그룹을 찾지 못하는 문제. #62465
- 복잡한 함수로 CASE WHEN을 단순화하여 Scan Node에서 지루한 결과가 발생하는 문제. #62505
gmtime이 스레드 안전하지 않은 문제. #60483- 이스케이프된 문자열로 Hive 파티션을 가져올 때 발생하는 문제. #59032
3.5.5
출시일: 2025년 9월 5일
개선 사항
- 새로운 시스템 변수
enable_drop_table_check_mv_dependency(기본값:false)가 추가되었습니다.true로 설정하면, 삭제하려는 객체가 downstream materialized view에서 참조되는 경우 시스템이DROP TABLE/DROP VIEW/DROP MATERIALIZED VIEW실행을 방지합니다. 오류 메시지는 종속된 materialized view를 나열하고 자세한 내용은sys.object_dependenciesview를 확인하도록 안내합니다. #61584 - 이제 로그에 빌드의 Linux 배포판과 CPU 아키텍처 정보가 포함되어 이슈 재현 및 문제 해결이 용이해졌습니다. Log format:
... build <hash> distro <id> arch <arch>. #62017 - Tablet별 영구 인덱스 및 증분 컬럼 그룹 파일 크기가 캐싱되어 온디맨드 디렉토리 스캔을 대체합니다. 이는 BE에서 Tablet 상태 보고를 가속화하고 높은 I/O 시나리오에서 지연 시간을 줄입니다. #61901
- FE 및 BE의 여러 고빈도 INFO 로그가 VLOG로 다운그레이드되었고, 태스크 제출 로그가 집계되어 중복 스토리지 관련 로그와 높은 부하 상태에서의 로그 양이 크게 감소했습니다. #62121
information_schema를 통한 External Catalog 메타데이터 쿼리 성능이 개선되었습니다.getTable을 호출하기 전에 테이블 필터를 적용하여 테이블별 RPC를 방지합니다. #62404
버그 수정
다음 문제들이 수정되었습니다:
- 데이터 누락으로 인해 Plan 단계에서 파티션 레벨 컬럼 통계를 가져올 때 NullPointerException 발생. #61935
- 비어있지 않은 NULL 배열의 Parquet 쓰기 문제가 수정되었고,
SPLIT(NULL, …)동작이 일관되게 NULL을 반환하도록 수정되어 데이터 손상 및 런타임 오류를 방지합니다. #61999 CASE WHEN표현식을 사용하여 materialized view를 생성할 때 호환되지 않는 VARCHAR 타입 반환으로 인한 실패(refresh 전후의 일관성을 보장하고, STRING을 선호하고 길이 불일치를 방지하기 위해 새로운 FE 구성transform_type_prefer_string_for_varchar를 도입하여 해결). #61996enable_rbo_table_prune이false일 때 중첩된 CTE에 대한 통계를 memo 외부에서 계산할 수 없는 문제. #62070- Audit 로그에서 INSERT INTO SELECT 문에 대한 부정확한 Scan Rows 결과. #61381
- Query Queue v2가 활성화된 상태에서 초기화 중 ExceptionInInitializerError/NullPointerException으로 인한 FE 시작 실패. #62161
LakePersistentIndex초기화 실패 및_memtable정리가 트리거될 때 BE 크래시 발생. #62279- creator 역할이 활성화되지 않아 materialized view 새로 고침 중 권한 문제 발생(FE 구성
mv_use_creator_based_authorization을 추가하여 해결.false로 설정하면 materialized view가 root로 새로 고침되어 LDAP 인증 클러스터와의 호환성 유지). #62396 - 대소문자 구분 List 파티션 테이블 이름으로 인한 materialized view 새로 고침 실패(OLAP 테이블 의미론에 맞춰 파티션 이름에 대한 대소문자 구분 없는 고유성 검사를 강제하여 해결). #62389
3.5.4
출시일: 2025년 8월 22일
개선 사항
- tablet을 복구할 수 없는 이유를 명확히 하는 로그가 추가되었습니다. #61959
- 로그의 DROP PARTITION 정보가 최적화되었습니다. #61787
- 통계 추정을 위해 알 수 없는 통계를 가진 테이블에 크지만 구성 가능한 행 수를 할당했습니다. #61332
- 라벨 위치에 따른 밸런스 통계가 추가되었습니다. #61905
- 클러스터 모니터링 개선을 위한 colocate 그룹 밸런스 통계가 추가되었습니다. #61736
- 정상 복제본 수가 기본 복제본 수를 초과할 때 Publish 대기 단계를 건너뜁니다. #61820
- tablet 보고서에 tablet 정보 수집 시간이 포함되었습니다. #61643
- 태그가 있는 Starlet 파일 작성을 지원합니다. #61605
- SHOW PROC를 통한 클러스터 밸런스 통계 보기를 지원합니다. #61578
- librdkafka를 2.11.0으로 업그레이드하여 Kafka 4.0을 지원하고 더 이상 사용되지 않는 구성을 제거했습니다. #61698
- Stream Load Transaction 인터페이스에
prepared_timeout구성이 추가되었습니다. #61539 - StarOS를 v3.5‑rc3로 업그레이드했습니다. #61685
버그 수정
다음 문제들이 수정되었습니다:
- 무작위 분산 테이블의 잘못된 Dict 버전. #61933
- context 조건에서 잘못된 쿼리 context. #61929
- ALTER 작업 중 shadow tablet에 대한 동기 Publish로 인한 Publish 실패. #61887
- CVE‑2025‑55163 이슈. #62041
- Apache Kafka에서 실시간 데이터 수집 시 메모리 누수. #61698
- lake persistent index의 재구축 파일 수 오류. #61859
- 생성된 표현식 컬럼에 대한 통계 수집으로 인한 크로스 데이터베이스 쿼리 오류. #61829
- 공유 없는 클러스터에서 Query Cache 불일치로 인한 일관되지 않은 결과. #61783
- 삭제된 파티션 정보를 보존하는 CatalogRecycleBin의 높은 메모리 사용량.#61582
- 타임아웃이 65,535밀리초를 초과할 때 SQL Server JDBC 연결 실패. #61719
- Security Integration이 암호를 암호화하지 못해 민감한 정보가 노출되는 문제. #60666
- Iceberg 파티션 컬럼에서
MIN()및MAX()함수가 예기치 않게 NULL을 반환하는 문제. #61858 - 푸시다운 불가능한 서브필드를 포함하는 Join의 다른 조건자가 잘못 재작성되는 문제. #61868
- QueryContext 취소가 use-after-free 상황을 초래할 수 있는 문제. #61897
- CBO의 테이블 정리가 다른 조건자를 간과하는 문제. #61881
COLUMN_UPSERT_MODE에서 부분 업데이트가 자동 증가 컬럼을 0으로 덮어쓸 수 있는 문제. #61341- 잘못된 시간대 오프셋을 사용하는 JDBC TIME 타입 변환으로 인해 잘못된 시간 값이 발생하는 문제. #61783
- Routine Load 작업에서
max_filter_ratio가 직렬화되지 않는 문제. #61755 - Stream Load에서
now(precision)함수의 정밀도 손실. #61721 - 쿼리 취소 시 "query id not found" 오류가 발생할 수 있는 문제. #61667
- LDAP 인증이 PartialResultException을 놓쳐 불완전한 쿼리 결과를 초래할 수 있는 문제.#60667
- 쿼리 조건에 DATETIME이 포함될 때 Paimon Timestamp 시간대 변환 문제.#60473
3.5.3
출시일: 2025년 8월 11일
개선 사항
- Lake Compaction에 세그먼트 쓰기 시간 통계가 추가되었습니다. #60891
- 성능 저하를 방지하기 위해 데이터 캐시 쓰기의 인라인 모드가 비활성화되었습니다. #60530
- Iceberg 메타데이터 스캔이 공유 파일 I/O를 지원합니다. #61012
- 모든 PENDING ANALYZE 작업 종료를 지원합니다. #61118
- 과도한 최적화 시간을 방지하기 위해 CTE 노드가 너무 많을 때 강제 재사용이 적용됩니다. #60983
- 클러스터 밸런스 결과에
BALANCE유형이 추가되었습니다. #61081 - 외부 테이블에 대한 구체화된 뷰 재작성이 최적화되었습니다. #61037
- 시스템 변수
enable_materialized_view_agg_pushdown_rewrite의 기본값이true로 변경되어 구체화된 뷰 쿼리에 대한 집계 푸시다운이 기본적으로 활성화됩니다. #60976 - 파티션 통계 잠금 경쟁이 최적화되었습니다. #61041
버그 수정
다음 문제들이 수정되었습니다:
- 컬럼 정리 후 일관되지 않은 청크 컬럼 크기 문제. #61271
- 파티션 통계 로딩의 동기 실행으로 인한 교착 상태 발생 가능성. #61300
array_map이 상수 배열 컬럼을 처리할 때 크래시 발생. #61309- 자동 증가 컬럼을 NULL로 설정할 때 시스템이 동일한 청크 내 유효한 데이터를 잘못 거부하는 문제. #61255
- 실제 JDBC 연결 수가
jdbc_connection_pool_size제한을 초과하는 문제. #61038 - FQDN 모드에서 IP 주소를 캐시 맵 키로 사용하지 않는 문제. #61203
- 배열 비교 중 배열 컬럼 복제 오류. #61036
- 직렬화된 스레드 풀 차단 배포로 인한 쿼리 성능 저하. #61150
- 하트비트 재시도 카운터 재설정 후 OK hbResponse가 동기화되지 않는 문제. #61249
hour_from_unixtime함수의 잘못된 결과. #61206- ALTER TABLE 작업과 파티션 생성 간의 충돌. #60890
- v3.3에서 v3.4 이상으로 업그레이드 후 캐시가 적용되지 않는 문제. #60973
- 벡터 인덱스 메트릭
hit_count가 설정되지 않는 문제. #61102 - Stream Load 트랜잭션이 코디네이터 노드를 찾지 못하는 문제. #60154
- OOM 파티션을 로딩할 때 BE가 크래시되는 문제. #60778
- 수동으로 생성된 파티션에서 INSERT OVERWRITE가 실패하는 문제. #60750
- 파티션 이름이 대소문자를 구분하지 않고 일치하지만 다른 값을 가질 때 파티션 생성이 실패하는 문제. #60909
- 시스템이 PostgreSQL UUID 타입을 지원하지 않는 문제. #61021
FILES()를 통해 Parquet 데이터를 로딩할 때 컬럼 이름의 대소문자 구분 문제. #61059
3.5.2
출시일: 2025년 7월 18일
개선 사항
- 쿼리 계획 정확도를 향상시키기 위해 ARRAY 컬럼에 대한 NDV(고유 값 수) 통계를 수집합니다. #60623
- 불필요한 로그 출력을 줄이기 위해 Colocate 테이블의 복제본 밸런싱 및 공유 데이터 클러스터의 태블릿 스케줄링이 비활성화되었습니다. #60737
- 카탈로그 접근 워크플로우 최적화: FE가 이제 외부 서비스 사용 불가로 인한 중단을 방지하기 위해 시작 시 외부 데이터 소스에 비동기적으로 접근하도록 지연시킵니다. #60614
- 조건자 푸시다운을 제어하기 위한 세션 변수
enable_predicate_expr_reuse가 추가되었습니다. #60603 - Kafka 파티션 정보 가져오기 실패 시 재시도 메커니즘을 지원합니다. #60513
- 구체화된 뷰와 기본 테이블 간 파티션 컬럼의 정확한 매핑을 요구하는 제한이 제거되었습니다. #60565
- 집계 중 데이터 필터링을 통해 집계 성능을 향상시키는 런타임 인-필터(Runtime In-Filters) 구축을 지원합니다. #59288
버그 수정
다음 문제들이 수정되었습니다:
- 여러 컬럼에 대한 낮은 카디널리티 최적화로 인한 COUNT DISTINCT 쿼리 크래시. #60664
- 여러 함수가 동일한 이름을 공유할 때 글로벌 UDF의 잘못된 매칭. #60550
- Stream Load 가져오기 중 널 포인터 예외(NPE) 문제. #60755
- 클러스터 스냅샷에서 복구 중 FE 시작 시 널 포인터 예외(NPE) 문제. #60604
- 순서가 맞지 않는 값으로 숏서킷 쿼리를 처리할 때 컬럼 모드 불일치로 인한 BE 크래시. #60466
- SUBMIT TASK 문에서 PROPERTIES를 통해 설정된 세션 변수가 적용되지 않는 문제. #60584
- 특정 조건에서
SELECT min/max쿼리의 잘못된 결과. #60601 - 조건자의 왼쪽이 함수일 때 잘못된 버킷 정리로 인한 잘못된 쿼리 결과. #60467
- Arrow Flight SQL을 통해 존재하지 않는
query_id에 대한 쿼리 시 크래시. #60497
동작 변경
lake_compaction_allow_partial_success의 기본값이true로 설정되었습니다. 이제 압축 작업이 부분적으로만 완료되더라도 성공으로 표시될 수 있어 후속 압축 작업의 차단을 방지합니다. #60643
3.5.1
출시일: 2025년 7월 1일
새로운 기능
- [실험적 기능] v3.5.1부터 StarRocks는 Apache Arrow Flight SQL 프로토콜 기반의 고성능 데이터 전송 채널을 도입하여 데이터 가져오기 채널을 포괄적으로 최적화하고 전송 효율성을 크게 향상시켰습니다. 이 솔루션은 StarRocks 컬럼형 실행 엔진에서 클라이언트까지 완전한 컬럼형 데이터 전송 파이프라인을 구축하여 기존 JDBC 및 ODBC 인터페이스에서 일반적으로 발생하는 빈번한 행-열 변환 및 직렬화 오버헤드를 제거하고, 진정한 제로 복사, 낮은 지연 시간 및 높은 처리량의 데이터 전송 기능을 달성합니다. #57956
- Java 스칼라 UDF(사용자 정의 함수)가 이제 입력 매개변수로 ARRAY 및 MAP 유형을 지원합니다. #55356
- 노드 간 데이터 캐시 공유: 노드가 네트워크를 통해 컴퓨팅 노드 간에 데이터 레이크의 캐시된 외부 테이블 데이터를 공유할 수 있게 합니다. 로컬 캐시 미스가 발생하면 시스템은 먼저 동일한 클러스터 내 다른 노드의 캐시에서 데이터를 가져오려고 시도합니다. 모든 캐시가 미스된 경우에만 원격 스토리지에서 데이터를 다시 가져옵니다. 이 기능은 탄력적 확장 시 캐시 무효화로 인한 성능 지터를 효과적으로 줄이고 안정적인 쿼리 성능을 보장합니다. 새로운 FE 구성 매개변수
enable_trace_historical_node가 이 동작을 제어합니다(기본값:false). #57083 - 스토리지 볼륨에 Google 클라우드 스토리지(GCS) 네이티브 지원 추가: 이제 GCS를 백엔드 스토리지 볼륨으로 사용하고 네이티브 SDK를 통해 GCS 리소스를 관리하고 액세스할 수 있습니다. #58815
개선 사항
- Hive 외부 테이블 생성 실패 시 오류 메시지가 최적화되었습니다. #60076
- Iceberg 메타데이터의
file_record_count를 사용하여count(1)쿼리 성능이 최적화되었습니다. #60022 - 모든 하위 작업이 성공할 때 지연된 일정 예약을 방지하기 위해 Compaction 스케줄링 로직이 개선되었습니다. #59998
- JDK 17로 업그레이드 후 BE 및 CN에
JAVA_OPTS="--add-opens=java.base/java.util=ALL-UNNAMED"가 추가되었습니다. #59947 - Kafka 브로커 엔드포인트가 변경될 때 ALTER ROUTINE LOAD 명령을 통해
kafka_broker_list속성 수정을 지원합니다. #59787 - 매개변수를 통해 Docker 기본 이미지의 빌드 종속성 감소를 지원합니다. #59772
- 관리형 ID 인증을 사용하여 Azure 액세스를 지원합니다. #59657
- 중복된 경로 컬럼 이름으로
Files()함수를 통해 외부 데이터를 쿼리할 때 오류 메시지가 개선되었습니다. #59597 - LIMIT 푸시다운 로직이 최적화되었습니다. #59265
버그 수정
다음 문제들이 수정되었습니다:
- 쿼리에 Max 및 Min 집계와 빈 파티션이 포함된 경우의 파티션 정리(pruning) 문제. #60162
- NULL 파티션 누락으로 인한 구체화된 뷰로 쿼리를 재작성할 때 잘못된 쿼리 결과. #60087
str2date를 기반으로 하는 파티션 표현식을 사용할 때 Iceberg 외부 테이블의 새로 고침 오류. #60089- START END 구문을 사용하여 임시 파티션을 생성할 때 잘못된 파티션 범위. #60014
- 비 리더 FE 노드에서 Routine Load 메트릭이 잘못 표시되는 문제. #59985
COUNT(*)윈도우 함수가 포함된 쿼리를 실행할 때 BE/CN이 충돌하는 문제. #60003- 대상 테이블 이름에 중국어 문자가 포함된 경우 Stream Load 실패. #59722
- 보조 복제본에 로딩이 실패할 때 3중 복제본 테이블에 전체 로딩 실패. #59762
- SHOW CREATE VIEW 출력에서 누락된 매개변수. #59714
동작 변경 사항
- 일부 FE 메트릭에
is_leader레이블이 포함됩니다. #59883
3.5.0
출시일: 2025년 6월 13일
업그레이드 주의사항
- StarRocks v3.5.0부터는 JDK 17 이상이 필요합니다.
- v3.4 이전 버전에서 클러스터를 업그레이드하려면 StarRocks가 의존하는 JDK 버전을 업그레이드해야 하며, FE 설정 파일 fe.conf의 설정 항목
JAVA_OPTS에서 JDK 17과 호환되지 않는 옵션(예: CMS 및 GC 관련 옵션)을 제거해야 합니다. v3.5 설정 파일의 기본JAVA_OPTS값을 사용하는 것을 권장합니다. - 외부 카탈로그를 사용하는 클러스터의 경우, BE 설정 파일 be.conf의
JAVA_OPTS설정 항목에-add-opens=java.base/java.util=ALL-UNNAMED를 추가해야 합니다. - 또한 v3.5.0부터 StarRocks는 더 이상 특정 JDK 버전에 대한 JVM 설정을 제공하지 않습니다. 모든 JDK 버전에서
JAVA_OPTS를 사용합니다.
공유 데이터 개선사항
- 공유 데이터 클러스터에서 생성된 컬럼을 지원합니다.
- 공유 데이터 클러스터의 클라우드 네이티브 기본 키 테이블에서 특정 인덱스 재구축을 지원합니다. 인덱스의 성능도 최적화되었습니다.
- 대규모 데이터 로딩 작업의 실행 로직이 최적화되어 메모리 제한으로 인해 Rowset에 너무 많은 작은 파일이 생성되는 것을 방지합니다. 데이터 가져오기 중에 시스템이 임시 데이터 블록을 병합하여 작은 파일 생성을 줄임으로써, 가져오기 후 쿼리 성능을 향상시키고 후속 압축 작업을 줄여 시스템 리소스 활용도를 개선합니다.
데이터 레이크 분석
- [베타] Hive Metastore 통합을 통해 Iceberg 카탈로그에서 Iceberg 뷰 생성을 지원합니다. 또한 ALTER VIEW 문을 사용하여 외부 시스템과의 구문 호환성 향상을 위해 Iceberg 뷰의 방언을 추가하거나 수정할 수 있습니다.
- Iceberg REST 카탈로그에서 중첩 네임스페이스를 지원합니다.
- Iceberg REST 카탈로그에서 임대 자격 증명을 제공하기 위해
IcebergAwsClientFactory를 사용하여 AWS 클라이언트 생성을 지원합니다. - Parquet 리더가 Bloom Filter를 사용한 데이터 필터링을 지원합니다.
- 쿼리 중 Parquet 형식의 Hive/Iceberg 테이블에서 낮은 카디널리티 컬럼에 대한 전역 사전을 자동으로 생성하는 기능을 지원합니다.
성능 개선 및 쿼리 최적화
- 통계 최적화:
- 테이블 샘플링을 지원합니다. 물리적 파일의 데이터 블록을 샘플링하여 통계 정확도와 쿼리 성능을 개선했습니다.
- targeted 통계 수집을 위해 쿼리의 조건절 컬럼 기록을 지원합니다.
- 파티션 레벨 카디널리티 추정을 지원합니다. 시스템은 시스템 정의 뷰
_statistics_.column_statistics를 재사용하여 각 파티션의 NDV를 기록합니다. - 컬럼이 서로 연관된 시나리오에서 CBO가 생성한 쿼리 계획을 최적화하기 위해 다중 컬럼 결합 NDV 수집을 지원합니다.
- 히스토그램을 사용하여 조인 노드 카디널리티와 in_predicate 선택도를 추정하여 데이터 편향에서의 추정 정확도를 개선합니다.
- 쿼리 피드백이 최적화되었습니다. 동일한 구조를 가진 쿼리는 매개변수 값이 다르더라도 동일한 유형으로 분류되어 실행 계획 최적화를 위한 동일한 튜닝 가이드를 공유합니다.
- 특정 시나리오에서 Bloom Filter의 대안으로 Runtime Bitset Filter를 지원합니다.
- 조인 런타임 필터의 스토리지 레이어 푸시다운을 지원합니다.
- 파이프라인 이벤트 스케줄러를 지원합니다.
파티션 관리
- 저장소 효율성과 쿼리 성능을 최적화하기 위해 ALTER TABLE을 사용하여 시간 함수 기반의 표현식 파티션 병합을 지원합니다.
- 리스트 파티션 테이블과 구체화된 뷰에 대한 파티션 TTL(Time-to-live)을 지원합니다. 또한 테이블과 구체화된 뷰에서
partition_retention_condition속성을 지원하여 사용자가 리스트 파티션에 대한 데이터 보존 전략을 설정할 수 있어 더 유연한 파티션 삭제 전략을 구현할 수 있습니다. - ALTER TABLE을 사용하여 일반 파티션 표현식으로 지정된 파티션 삭제를 지원하여 사용자가 유연하게 파티션을 일괄 삭제할 수 있습니다.
클러스터 관리
- 시스템 안정성과 성능 향상을 위해 FE 컴파일 대상을 Java 11에서 Java 17로 업그레이드했습니다.
보안 및 인증
- MySQL 프로토콜 기반의 SSL로 암호화된 보안 연결을 지원합니다.
- 외부 시스템을 사용한 인증 강화:
- OAuth 2.0과 JSON Web Token (JWT)을 사용하여 StarRocks 사용자 생성을 지원합니다.
- 외부 시스템과의 인증 프로세스를 단순화하기 위한 보안 통합을 지원합니다. 보안 통합은 LDAP, OAuth 2.0, JWT를 지원합니다.
- 외부 인증 서비스에서 사용자 그룹 정보를 얻기 위한 그룹 제공자를 지원합니다. 그룹 정보는 인증 및 권한 부여에 사용될 수 있습니다. 그룹 제공자는 LDAP, 운영 체제 또는 파일에서 그룹 정보를 획득하는 것을 지원합니다. 사용자는
current_group()함수를 사용하여 자신이 속한 사용자 그룹을 조회할 수 있습니다.
구체화된 뷰
- 사용자가 더 유연한 전략으로 데이터를 파티셔닝할 수 있도록 다중 파티션 컬럼을 사용한 구체화된 뷰 생성을 지원합니다.
- 데이터의 시의성을 일정 부분 희생하더라도 성능 안정성을 유지하기 위해
query_rewrite_consistency를force_mv로 설정하여 시스템이 구체화된 뷰를 사용하도록 강제하는 것을 지원합니다.
로딩 및 언로딩
pause_on_json_parse_error속성을true로 설정하여 JSON 구문 분석 오류 발생 시 Routine Load 작업을 일시 중지하는 것을 지원합니다.- [베타] 다중 SQL 문을 사용한 트랜잭션을 지원합니다(현재는 INSERT만 지원). 사용자는 여러 로딩 작업의 ACID(원자성, 일관성, 격리성, 지속성) 속성을 보장하기 위해 트랜잭션을 시작, 적용 또는 취소할 수 있습니다.
함수
- 세션 및 전역 레벨에서 시스템 변수
lower_upper_support_utf8를 도입하여upper()및lower()와 같은 대소문자 변환 함수에서 UTF-8 문자열(특히 비 ASCII 문자)에 대한 지원을 강화했습니다. - 새로운 함수 추가:
field()ds_theta_count_distinct()array_flatten()inet_aton()percentile_approx_weight()
v3.5.0-RC01
Shared-data 개선사항
Shared-data clusters support generated columns. #53526
- 공유 데이터 클러스터 환경에서 클라우드 네이티브 기반의 Primary Key 테이블은 이제 특정 인덱스만 선별적으로 재구축할 수 있는 기능을 지원합니다. 또한 이러한 인덱스들의 성능이 최적화되었습니다. #53971 #54178
- 대규모 데이터 로딩 작업의 실행 로직이 최적화되어 메모리 제한으로 인해 Rowset에 너무 많은 소형 파일이 생성되는 문제를 방지합니다. 데이터 가져오기 과정에서 시스템은 임시 데이터 블록을 병합하여 소형 파일 생성을 줄임으로써, 가져오기 후 쿼리 성능을 향상시키고 후속 Compaction(압축) 작업을 감소시켜 시스템 자원 활용도를 개선합니다. #53954
Data Lake Analytics
- [Beta] Hive Metastore 통합을 통해 Iceberg Catalog에서 Iceberg 뷰 생성을 지원합니다. 또한 ALTER VIEW 구문을 사용하여 Iceberg 뷰의 방언(dialect)을 추가하거나 수정할 수 있어 외부 시스템과의 구문 호환성이 향상되었습니다.. #56120
- Iceberg REST Catalog에서 중첩 네임스페이스를 지원합니다. #58016
- Iceberg REST Catalog에서
IcebergAwsClientFactory를 사용하여 AWS 클라이언트를 생성할 수 있어 임대 자격 증명(vended credentials)을 제공할 수 있습니다. #58296 - Parquet 리더가 Bloom Filter를 사용한 데이터 필터링을 지원합니다. #56445
- 쿼리 실행 중 Parquet 형식의 Hive/Iceberg 테이블에서 낮은 카디널리티(고유값 수가 적은) 컬럼에 대해 글로벌 사전을 자동으로 생성하는 기능을 지원합니다. #55167
성능 향상 및 쿼리 최적화
- 통계 최적화:
- 테이블 샘플링 지원. 물리적 파일의 데이터 블록을 샘플링하여 통계 정확도와 쿼리 성능을 개선했습니다. #52787
- 쿼리의 조건절(predicate) 컬럼을 기록하여 선별적인 통계 수집을 지원합니다. #53204
- 파티션 수준의 카디널리티(고유값 수) 추정을 지원합니다. 시스템은
_statistics_.column_statistics시스템 정의 뷰를 재사용하여 각 파티션의 고유값 수(NDV)를 기록합니다. #51513 - 다중 컬럼 결합 고유값 수(Joint NDV) 수집을 지원하여 컬럼 간 상관관계가 있는 시나리오에서 비용 기반 최적화기(CBO)가 생성하는 쿼리 계획을 최적화합니다. #56481 #56715 #56766 #56836
- 히스토그램을 사용하여 조인 노드 카디널리티와 in-조건절 선택도를 추정함으로써 데이터 불균형(skew) 상황에서의 추정 정확도를 향상시킵니다. #57874 #57639
- 쿼리 피드백을 지원합니다. 동일한 구조를 가지지만 매개변수가 다른 쿼리들은 같은 유형으로 분류되어 계획 실행 최적화를 위한 동일한 튜닝 가이드를 공유합니다. #58306
- 특정 시나리오에서 블룸 필터의 대안으로 런타임 비트셋 필터(Runtime Bitset Filter)를 지원합니다. #57157
- 조인 런타임 필터를 스토리지 레이어로 푸시다운하는 기능을 지원합니다. #55124
- 파이프라인 이벤트 스케줄러를 지원합니다. #54259
Partition 관리
- ALTER TABLE 문을 사용하여 시간 함수 기반의 표현식 파티션을 병합하는 기능을 지원하여 저장 효율성과 쿼리 성능을 최적화합니다. #56840
- Listed 파티션된 테이블과 구체화된 뷰에 대해 파티션 TTL(Time-to-live, 수명 기간)을 지원합니다. 또한 테이블과 구체화된 뷰에서
partition_retention_condition속성을 지원하여 사용자가 리스트 파티션에 대한 데이터 보존 전략을 설정할 수 있게 함으로써, 더 유연한 파티션 삭제 전략을 구현할 수 있게 합니다. #53117 - ALTER TABLE 문을 사용하여 일반 파티션 표현식으로 지정된 파티션을 삭제하는 기능을 지원하여 사용자가 파티션을 일괄적으로 유연하게 삭제할 수 있습니다. #53118
Cluster 관리
- 시스템 안정성 과 성능 향상을 위해서 FE의 컴파일 기준을 Java11 에서 Java17로 변경하였습니다. #53617 #57030
보안 과 인증
- MySQL 프로토콜을 기반으로 SSL로 암호화된 보안 연결을 지원합니다. #54877
- 외부 시스템을 사용한 강화된 인증:
- OAuth 2.0 및 JSON 웹 토큰(JWT)을 사용하여 StarRocks 사용자 생성을 지원합니다.
- 외부 시스템과의 인증 프로세스를 단순화하기 위한 보안 통합(Security Integration)을 지원합니다. 보안 통합은 LDAP, OAuth 2.0 및 JWT를 지원합니다. #55846
- 외부 인증 서비스에서 사용자 그룹 정보를 얻기 위한 그룹 제공자(Group Provider)를 지원합니다. 이 그룹 정보는 인증 및 권한 부여에 활용될 수 있습니다. 그룹 제공자는 LDAP, 운영 체제 또는 파일에서 그룹 정보를 획득하는 것을 지원합니다. 사용자는
current_group()함수를 사용하여 자신이 속한 사용자 그룹을 조회할 수 있습니다.#56670
Materialized Views
- 다중 파티션 컬럼 또는 표현식 지정을 지원하여 사용자가 더 유연한 전략으로 데이터를 파티셔닝할 수 있습니다. #52576
query_rewrite_consistency옵션을force_mv로 설정하여 시스템이 쿼리 재작성에 구체화된 뷰(materialized view)를 강제로 사용하도록 지원합니다. 이를 통해 어느 정도 데이터 최신성을 희생하는 대신 성능 안정성을 유지할 수 있습니다. #53819
데이터 로딩 & 언로딩
- JSON 파싱 오류 발생 시 Routine Load 작업을 일시 중지할 수 있도록
pause_on_json_parse_error속성을true로 설정하는 기능을 지원합니다. #56062 - [Experimental] 여러 SQL 문을 포함하는 트랜잭션을 지원합니다(현재는 INSERT 문만 지원됨). 사용자는 트랜잭션을 시작, 적용 또는 취소하여 여러 로딩 작업의 ACID(원자성, 일관성, 격리성 및 지속성) 속성을 보장할 수 있습니다. #53978
함수들
- 세션 및 글로벌 레벨에서 시스템 변수
lower_upper_support_utf8이 도입되었습니다. 이를 통해upper()및lower()같은 대소문자 변환 함수에서 UTF-8 문자열(특히 비 ASCII 문자)에 대한 지원이 강화되었습니다. 이로써 한글, 중국어, 일본어 등 다양한 유니코드 문자에 대한 대소문자 처리가 개선되었습니다. #56192 - 새로운 함수들이 추가되었습니다:
field()#5533 - MySQL의 FIELD 함수 찾는 문자열의 위치를 리턴ds_theta_count_distinct()#56960 - DataSketches | 기반의 확률 유니크 값 함수array_flatten()#50080 - array 값을 펼처주는 함수inet_aton()#51883 - MySQL에 있는 INET_ATON() 함수와 동일 IP값을 숫자로 변경percentile_approx_weight()#57410 - 가중치를 적용한 근사 백분위수(percentile)를 계산하는 함수
Upgrade Notes
- StarRocks v3.5.0부터는 JDK 17 이상이 필수 요구사항입니다. v3.4 이하 버전에서 클러스터를 업그레이드하려면, StarRocks가 의존하는 JDK 버전을 업그레이드해야 하며, FE 설정 파일 fe.conf의 JAVA_OPTS 설정 항목에서 JDK 17과 호환되지 않는 옵션들을 제거해야 합니다. 예를 들어, CMS와 GC 관련 옵션이 이에 해당합니다. 또한, v3.5.0부터 StarRocks는 더 이상 특정 JDK 버전에 맞춘 JVM 설정을 제공하지 않습니다. 모든 JDK 버전은 JAVA_OPTS를 공통적으로 사용합니다.