카테고리
Version
생성자
U
Untitled- 3.4.8
- 동작 변경사항
- 버그 수정
- 3.4.7
- 버그 수정
- 3.4.6
- 개선사항
- 버그 수정
- 동작 변경사항
- 3.4.5
- 개선사항
- 버그 수정
- 동작 변경사항
- 3.4.4
- 개선사항
- 버그 수정
- 3.4.3
- 개선 사항
- 버그 수정
- 3.4.2
- 개선 사항
- 버그 수정
- 동작 변경
- 3.4.1
- 새로운 기능 및 개선 사항
- 버그 수정
- 동작 변경
- 3.4.0
- 데이터 레이크 분석
- 성능 개선 및 쿼리 최적화
- 공유 데이터 개선 사항
- 스토리지 엔진
- 로드 중
- 기타
- 동작 변경
- 다운그레이드 참고 사항
3.4.8
출시일: 2025년 9월 30일
동작 변경사항
enable_lake_tablet_internal_parallel의 기본값을true로 설정하여 shared-data 클러스터의 Cloud-native 테이블에 대한 Parallel Scan을 기본적으로 활성화하여 쿼리당 내부 병렬 처리를 증가시킵니다. 이로 인해 최대 리소스 사용량이 증가할 수 있습니다. #62159
버그 수정
다음 이슈들이 수정되었습니다:
- Delta Lake 파티션 컬럼 이름이 강제로 소문자로 변환되어 실제 컬럼 이름과 불일치하던 문제. #62953
- Iceberg manifest 캐시 제거 경쟁 조건이 NullPointerException(NPE)을 발생시키던 문제. #63043
- Iceberg 스캔 단계에서 처리되지 않은 일반 예외가 스캔 범위 제출을 중단하고 메트릭을 생성하지 않던 문제. #62994
- Materialized view 재작성에 사용된 복잡한 다층 projected view가 잘못된 플랜 또는 누락된 컬럼 통계를 생성하던 문제. #62918 #62198
- Hive 테이블 기반 Materialized view의 파티션 컬럼 대소문자 불일치가 잘못 거부되던 문제. #62598
- Materialized view 갱신이 생성자의 기본 역할만 사용하여 권한 부족 문제를 일으키던 문제. #62396
- List-partitioned Materialized view의 파티션 이름에서 대소문자를 구분하지 않는 충돌이 중복 이름 오류를 발생시키던 문제. #62389
- Materialized view 복원 실패 후 남은 버전 매핑이 후속 증분 갱신을 건너뛰게 하여 빈 결과를 반환하던 문제. #62634
- Materialized view 복원 후 비정상 파티션이 FE 재시작 시 NullPointerException을 발생시키던 문제. #62563
- Non-global aggregation 쿼리가 aggregation pushdown 재작성을 잘못 적용하여 잘못된 플랜을 생성하던 문제. #63060
- Tablet 삭제 상태가 메모리에만 업데이트되고 영구 저장되지 않아 GC가 여전히 실행 중으로 처리하고 회수를 건너뛰던 문제. #63623
- 동시 쿼리 및 tablet drop이 조기 delvec 정리를 유발하고 "no delete vector found" 오류를 발생시키던 문제. #63291
- Primary Key 인덱스의 base 및 cumulative compaction이 동일한
max_rss_rowid를 공유하는 문제. #63277 - 초기화 실패 후 LakePersistentIndex 소멸자가 실행될 때 발생할 수 있는 BE 크래시. #62279
- Publish 스레드 풀의 정상 종료 시 대기 중인 작업을 조용히 삭제하고 실패를 표시하지 않아 버전 구멍을 만들고 "모두 성공" 인상을 주던 문제. #62417
- 리밸런싱 중 새로 추가된 BE의 새로 복제된 replica가 즉시 중복으로 판단되어 제거되어 새 노드로 데이터 마이그레이션을 방지하던 문제. #62542
- Tablet의 최대 버전을 읽을 때 락이 누락되어 복제 트랜잭션 결정이 일관되지 않던 문제. #62238
date_trunc등식과 원시 컬럼 범위 조건자의 조합이 포인트 간격으로 축소되어 빈 결과 집합을 반환하던 문제 (예:date_trunc('month', dt)='2025-09-01' AND dt>'2025-09-23'). #63464- 비결정적 조건자(random/time 함수)의 pushdown이 일관되지 않은 결과를 생성하던 문제. #63495
- CTE 재사용 결정 후 consumer 노드가 누락되어 불완전한 실행 플랜을 생성하던 문제. #62784
- 테이블 함수와 low-cardinality 딕셔너리 인코딩이 공존할 때 타입 불일치로 인한 크래시. #62466 #62292
- 대용량 CSV가 병렬 프래그먼트로 분할될 때 모든 프래그먼트가 헤더 행을 건너뛰어 데이터 손실을 발생시키던 문제. #62719
- 명시적 DB 없이
SHOW CREATE ROUTINE LOAD를 실행하면 같은 이름의 다른 데이터베이스에서 작업을 반환하던 문제. #62745 - 동시 load 작업 정리 중
sameLabelJobs가 null이 되어 NullPointerException이 발생하던 문제. #63042 - 모든 tablet이 이미 recycle bin에 있을 때도 BE 해제가 차단되던 문제. #62781
- 스레드 풀 거부 후
OPTIMIZE TABLE작업이 PENDING 상태에서 멈추던 문제. #62300 - Dirty tablet 메타데이터 정리가 GTID 인수를 잘못된 순서로 사용하던 문제. #62275
3.4.7
출시일: 2025년 9월 1일
버그 수정
다음 문제들이 수정되었습니다:
- Routine Load 작업이
max_filter_ratio를 직렬화하지 않는 문제. #61755 - Stream Load에서
now(precision)함수가 precision 파라미터를 손실하는 문제. #61721 - Audit Log에서
INSERT INTO SELECT구문의 Scan Rows 결과가 부정확한 문제. #61381 - 클러스터를 v3.4.5로 업그레이드한 후,
fslib read iops메트릭이 업그레이드 전보다 증가하는 문제. #61724 - JDBC Catalog를 사용한 SQLServer 쿼리가 자주 멈추는 문제. #61719
3.4.6
출시일: 2025년 8월 7일
개선사항
- Parquet 파일로 데이터를 내보낼 때
INSERT INTO FILES를 사용하는 경우, 이제parquet.version속성을 통해 Parquet 버전을 지정하여 내보낸 파일을 읽을 때 다른 도구와의 호환성을 향상시킬 수 있습니다. #60843
버그 수정
다음 문제들이 수정되었습니다:
TableMetricsManager의 지나치게 큰 잠금 단위로 인해 로딩 작업이 실패하는 문제. #58911FILES()를 통해 Parquet 데이터를 로딩할 때 컬럼명 대소문자 구분 문제. #61059- 공유 데이터 클러스터를 v3.3에서 v3.4 이상으로 업그레이드한 후 캐시가 적용되지 않는 문제. #60973
- 파티션 ID가 null일 때 0으로 나누기 오류가 발생하여 BE가 크래시되는 문제. #60842
- BE 스케일링 중 Broker Load 작업이 실패하는 문제. #60224
동작 변경사항
information_schema.keywords뷰의keyword컬럼이 MySQL 정의와 일치하도록word로 이름이 변경되었습니다. #60863
3.4.5
릴리스 날짜: 2025년 7월 10일
개선사항
- 로딩 작업 실행의 관찰성 향상: 로딩 태스크의 런타임 정보를
information_schema.loads뷰로 통합했습니다. 사용자는 이 뷰에서 모든 INSERT, Broker Load, Stream Load, Routine Load 서브태스크의 실행 세부사항을 확인할 수 있습니다. 로딩 태스크의 상태와 상위 작업(PIPES, Routine Load Jobs)과의 연관성을 더 잘 이해할 수 있도록 추가 필드가 추가되었습니다. ALTER ROUTINE LOAD문을 통한kafka_broker_list수정을 지원합니다.
버그 수정
다음 문제들이 수정되었습니다:
- 고빈도 로딩 시나리오에서 Compaction이 지연될 수 있는 문제 #59998
- Unified Catalog를 통해 Iceberg 외부 테이블을 쿼리할 때
not support getting unified metadata table factory오류가 발생하는 문제 #59412 - 원격 스토리지의 CSV 파일을
DESC FILES()로 조회할 때 시스템이xinf를 FLOAT 타입으로 잘못 추론하여 부정확한 결과가 반환되는 문제 #59574 INSERT INTO가 empty partition 을 만났을 때 BE가 크래시되는 문제 #59553- StarRocks가 Iceberg의 Equality Delete 파일을 읽을 때, 데이터가 이미 Iceberg 테이블에서 삭제되었음에도 불구하고 삭제된 데이터에 여전히 접근할 수 있는 문제 #59709
- 컬럼 이름 변경으로 인한 쿼리 실패 문제 #59178
동작 변경사항
- BE 설정 항목
skip_pk_preload의 기본값이false에서true로 변경되었습니다. 결과적으로 시스템은 Primary Key 테이블에 대한 Primary Key Index 사전 로딩을 건너뛰어Reached Timeout오류 가능성을 줄입니다. 이 변경으로 인해 Primary Key Index 로딩이 필요한 작업의 쿼리 지연시간이 증가할 수 있습니다.
3.4.4
릴리스 날짜: 2025년 6월 10일
개선사항
- Storage Volume이 이제 Managed Identity를 자격 증명으로 사용하여 ADLS2를 지원합니다. #58454
- 복잡한 시간 함수 표현식 기반 파티션의 경우, 대부분의 DATETIME 관련 함수 기반 파티션에서 파티션 프루닝이 잘 작동합니다.
FILES함수를 사용하여 Azure에서 Avro 데이터 파일 로딩을 지원합니다. #58131- Routine Load가 유효하지 않은 JSON 데이터를 만났을 때, 문제 해결을 돕기 위해 소비된 파티션과 오프셋 정보가 오류 로그에 기록됩니다. #55772
버그 수정
다음 문제들이 수정되었습니다:
- 파티션된 테이블의 동일한 파티션에 동시 쿼리가 접근할 때 Hive Metastore가 중단되는 문제 #58089
- 태스크의 비정상 종료로 인해 작업이
INSERTQUEUEING상태에 머무르는 문제 #58603 - 클러스터를 v3.4.0에서 v3.4.2로 업그레이드한 후, 많은 수의 태블릿 복제본에서 예외가 발생하는 문제 #58518
- 잘못된
UNION실행 계획으로 인한 FE OOM 문제 #59040 - 파티션 재활용 중 유효하지 않은 데이터베이스 ID로 인해 FE 시작이 실패할 수 있는 문제 #59666
- FE CheckPoint 작업 실패 후, 프로세스가 제대로 종료되지 않아 블로킹이 발생하는 문제 #58602
3.4.3
출시일 4월 30일, 2025
개선 사항
- 루틴 로드(Routine Load)와 스트림 로드(Stream Load)가
columns매개변수에서 람다 표현식 사용을 지원하여 복잡한 컬럼 데이터 추출이 가능해졌습니다.array_filter/map_filter를 사용하여 ARRAY/MAP 데이터를 필터링하고 추출할 수 있습니다. JSON 데이터의 복잡한 필터링 및 추출은cast함수를 결합하여 JSON 배열/JSON 객체를 ARRAY 및 MAP 타입으로 변환함으로써 달성할 수 있습니다. 예를 들어,COLUMNS (js, col=array_filter(i -> json_query(i, '$.type')=='t1', cast(js as Array<JSON>))[1])는 JSON 배열js에서type이t1인 첫 번째 JSON 객체를 추출할 수 있습니다. cast함수를 사용하여 JSON 객체를 MAP 타입으로 변환하고,map_filter와 결합하여 특정 조건을 충족하는 JSON 객체에서 항목을 추출하는 기능을 지원합니다. 예를 들어,map_filter((k, v) -> json_query(v, '$.type') == 't1', cast(js AS MAP<String, JSON>))는js에서type이t1인 JSON 객체를 추출할 수 있습니다.information_schema.task_runs뷰를 쿼리할 때 LIMIT 절을 지원합니다. #57404
버그 수정
다음 문제들이 수정되었습니다:
- ORC 형식의 Hive 테이블에 대한 쿼리가
OrcChunkReader::lazy_seek_to failed. reason = bad read in RleDecoderV2: :readByte오류와 함께 반환되는 문제. - Equality Delete 파일이 포함된 Iceberg 테이블을 쿼리할 때 상위 계층의 RuntimeFilter가 하위로 푸시다운되지 않는 문제.
- 디스크 사전 집계 전략으로의 스필(spill-to-disk pre-aggregation strategy)을 활성화하면 쿼리가 실패하는 문제.
ConstantRef-cmp-ConstantRef not supported here, null != 111 should be eliminated earlier오류와 함께 쿼리가 반환되는 문제.- 쿼리 큐(Query Queue) 기능이 활성화되지 않은 상태에서
query_queue_pending_timeout_second매개변수로 인한 쿼리 타임아웃 문제.
3.4.2
출시일 4월 10, 2025
개선 사항
- FE는 시스템 가용성을 개선하기 위해 정상 종료 기능을 지원합니다.
./stop_fe.sh -g를통해 FE를 종료할 때 FE는 먼저/api/healthAPI를 통해 500 상태 코드를 프론트엔드 로드밸런서에 반환하여 종료 준비 중임을 알리고, 로드밸런서가 사용 가능한 다른 FE 노드로 전환할 수 있도록 합니다. 한편, FE는 진행 중인 쿼리가 완료되거나 시간 초과될 때까지 계속 실행됩니다(기본 시간 초과: 60초). #56823
버그 수정
다음과 같은 문제가 수정되었습니다:
- 파티션 열이 생성된 열인 경우 파티션 가지 치기가 작동하지 않을 수 있습니다. #54543
concat함수의 잘못된 매개변수 처리로 인해 쿼리 실행 중 BE 크래시가 발생할 수 있습니다. #57522- 브로커 로드를 사용하여 데이터를 로드할 때
ssl_enable속성이 적용되지 않습니다. #57229 - NULL 값이 존재하는 경우, STRUCT 타입 열의 하위 필드를 쿼리하면 BE 크래시가 발생할 수 있습니다. #56496
ALTER TABLE {table}문으로 테이블의 버킷 배포를 수정할 때PARTITIONS (p1, p1) DISTRIBUTED BY ...문에서 중복된 파티션 이름을 지정하면 내부적으로 생성된 임시 파티션을 삭제하지 못할 수 있습니다. #57005- 공유 데이터 클러스터에서
SHOW PROC '/current_queries'를 실행하면 "오류 1064(HY000)" 오류가 발생했습니다: 쿼리 통계 수집 요청을 전송하지 못했습니다." 오류가 발생했습니다. #56597 INSERT OVERWRITE로딩 작업을 병렬로 실행하면 "ConcurrentModificationException: null" 오류가 발생하여 로딩이 실패합니다. #56557- v2.5.21에서 v3.1.17로 업그레이드한 후, 여러 브로커 로드 작업을 동시에 실행하면 예외가 발생할 수 있습니다. #56512
동작 변경
- BE 구성 항목
avro_ignore_union_type_tag의기본값이true로변경되어["NULL", "STRING"]을 문자열 유형 데이터로 직접 구문 분석할 수 있어 일반적인 사용자 요구 사항에 더 잘 부합합니다. #57553 - 세션 변수
big_query_profile_threshold의기본값이 0에서 30(초)으로 변경되었습니다. #57177 - 구체화된 뷰 새로 고침 중에 프로필 정보를 수집할지 여부를 제어하기 위한 새로운 FE 구성 항목
enable_mv_refresh_collect_profile이추가되었습니다. 기본값은false입니다(이전에는 시스템이 기본적으로 프로필을 수집했습니다). #56971
3.4.1
릴리스 날짜: 2025년 3월 12일
새로운 기능 및 개선 사항
- 데이터 레이크 분석에서 델타 레이크의 삭제 벡터를 지원합니다.
- 보안 뷰 지원. 보안 뷰를 만들면 참조된 기초 테이블에 대한 SELECT 권한이 없는 사용자가 뷰를 쿼리하지 못하도록 할 수 있습니다(뷰에 SELECT 권한이 있는 경우에도).
- 스케치 HLL
(ds_hll_count_distinct)을 지원합니다. 이 함수는approx_count_distinct에비해 더 정밀한 대략적인 중복 제거를 제공합니다. - 공유 데이터 클러스터(CN)는 클러스터 복구를 위한 자동 스냅샷 생성을 지원합니다.
- 공유 데이터 클러스터의 스토리지 볼륨은 Azure Data Lake Storage Gen2를 지원합니다.
- MySQL 프로토콜을 통해 StarRocks에 연결할 때 SSL 인증을 지원하여 권한이 없는 사용자가 클라이언트와 StarRocks 클러스터 간에 전송되는 데이터를 읽을 수 없도록 합니다.
버그 수정
다음과 같은 문제가 수정되었습니다:
- OLAP 보기가 구체화된 보기 처리 로직에 영향을 미치는 문제. #52989
- 성공적으로 커밋된 복제본 수에 관계없이 복제본 하나를 찾지 못하면 쓰기 트랜잭션이 실패합니다. (수정 후, 대부분의 복제본이 성공하는 한 트랜잭션은 성공합니다. #55212
- 활성화 상태가 false인 노드가 스케줄된 경우 스트림 로드가 실패합니다. #55371
- 클러스터 스냅샷의 파일이 실수로 삭제되었습니다. #56338
동작 변경
- 이제 정상 종료가 기본적으로 활성화됩니다(이전에는 비활성화되어 있었습니다). 관련 BE/CN 매개변수
loop_count_wait_fragments_finish의기본값이2로변경되어, 시스템이 실행 중인 쿼리가 완료될 때까지 최대 20초 동안 대기합니다. #56002
3.4.0
릴리스 날짜: 2025년 1월 24일
데이터 레이크 분석
- Iceberg V2 쿼리 성능을 최적화하고 삭제 파일의 반복 읽기를 줄임으로써 메모리 사용량을 줄였습니다.
- 델타 레이크 테이블에 대한 열 매핑을 지원하여 델타 스키마 진화 이후 데이터에 대한 쿼리가 가능합니다. 자세한 내용은 델타 레이크 카탈로그 - 기능 지원을 참조하세요.
- 데이터 캐시 관련 개선 사항:
- 가끔 발생하는 대규모 쿼리로 인한 캐시 오염을 크게 방어하고 캐시 적중률을 개선하며 쿼리 성능의 변동을 줄여주는 세그먼트화된 LRU(SLRU) 캐시 퇴거 전략이 도입되었습니다. 대규모 쿼리가 있는 시뮬레이션 테스트 사례에서 SLRU 기반 쿼리 성능은 70% 이상 향상될 수 있습니다. 자세한 내용은 데이터 캐시 - 캐시 교체 정책을 참조하세요.
- 공유 데이터 아키텍처와 데이터 레이크 쿼리 시나리오 모두에서 사용되는 데이터 캐시 인스턴스를 통합하여 구성을 간소화하고 리소스 활용도를 개선했습니다. 자세한 내용은 데이터 캐시를 참조하세요.
- 캐시 디스크의 로드 및 성능에 따라 일부 쿼리 요청을 원격 스토리지로 유연하게 라우팅하여 전반적인 액세스 처리량을 향상시키는 데이터 캐시에 대한 적응형 I/O 전략 최적화를 제공합니다.
- 데이터 레이크 쿼리 시나리오에서 데이터 캐시에 있는 데이터의 지속성을 지원합니다. BE 재시작 후 이전에 캐시된 데이터를 재사용하여 쿼리 성능 변동을 줄일 수 있습니다.
- 쿼리에 의해 트리거되는 자동 분석 작업을 통해 외부 테이블 통계의 자동 수집을 지원합니다. 메타데이터 파일에 비해 보다 정확한 NDV 정보를 제공함으로써 쿼리 계획을 최적화하고 쿼리 성능을 개선할 수 있습니다. 자세한 내용은 쿼리 트리거 수집을 참조하세요.
- Iceberg에 시간 이동 쿼리 기능을 제공하여 지정된 BRANCH 또는 TAG에서 타임스탬프 또는 버전을 지정하여 데이터를 읽을 수 있습니다.
- 데이터 레이크 쿼리를 위한 쿼리 조각의 비동기 전송을 지원합니다. 이는 BE가 쿼리를 실행하기 전에 FE가 쿼리할 모든 파일을 가져와야 한다는 제한을 피하여, FE가 쿼리 파일을 가져오고 BE가 쿼리를 실행할 수 있도록 하며, 캐시에 없는 많은 수의 파일을 포함하는 데이터 레이크 쿼리의 전반적인 지연 시간을 줄여줍니다. 한편, 파일 목록 캐싱으로 인한 FE의 메모리 부하를 줄이고 쿼리 안정성을 향상시킵니다. (현재 Hudi와 Delta Lake에 대한 최적화가 구현되어 있으며, Iceberg에 대한 최적화는 아직 개발 중입니다.)
성능 개선 및 쿼리 최적화
- [실험 중] 느린 쿼리의 자동 최적화를 위한 예비 쿼리 피드백 기능을 제공합니다. 시스템이 느린 쿼리의 실행 세부 정보를 수집하고, 쿼리 계획을 자동으로 분석하여 잠재적인 최적화 기회를 찾아내고, 해당 쿼리에 대한 맞춤형 최적화 가이드를 생성합니다. CBO가 이후 동일한 쿼리에 대해 동일한 불량 계획을 생성하는 경우, 시스템은 가이드를 기반으로 이 쿼리 계획을 로컬로 최적화합니다. 자세한 내용은 쿼리 피드백을 참조하세요.
- [실험 중] Python UDF를 지원하여 Java UDF에 비해 더 편리한 함수 사용자 지정을 제공합니다. 자세한 내용은 Python UDF를 참조하세요.
- [실험적] 쿼리 결과에서 대용량 데이터를 보다 효율적으로 읽을 수 있도록 화살표 비행 인터페이스를 지원합니다. 또한 FE 대신 BE가 반환된 결과를 처리할 수 있도록 하여 FE에 대한 부담을 크게 줄여줍니다. 특히 빅 데이터 분석 및 처리, 머신 러닝과 관련된 비즈니스 시나리오에 적합합니다.
- 다중 열 OR 술어의 푸시다운을 활성화하여 다중 열 OR 조건(예:
a = xxx 또는 b = yyy)이 있는 쿼리가 특정 열 인덱스를 활용할 수 있도록 하여 데이터 읽기 양을 줄이고 쿼리 성능을 개선합니다. - TPC-DS 1TB 빙산 데이터 세트에서 TPC-DS 쿼리 성능을 약 20% 최적화했습니다. 최적화 방법에는 기본 키와 외래 키를 사용한 테이블 가지치기 및 집계 열 가지치기, 집계 푸시다운이 포함됩니다.
공유 데이터 개선 사항
- 쿼리 캐시를 지원하여 공유-무공유 아키텍처에 맞춰 조정합니다.
- 동기식 구체화된 뷰를 지원하여 공유-무공유 아키텍처에 부합합니다.
스토리지 엔진
- 모든 파티셔닝 방법을 표현식 파티셔닝으로 통합하고 각 레벨이 모든 표현식이 될 수 있는 다단계 파티셔닝을 지원합니다. 자세한 내용은 표현식 파티셔닝을 참조하세요.
- [프리뷰] 집계 테이블에서 모든 기본 집계 함수를 지원합니다. 일반 집계 함수 상태 저장 프레임워크를 도입하여 StarRocks에서 지원하는 모든 기본 집계 함수를 사용하여 집계 테이블을 정의할 수 있습니다.
- 벡터 인덱스를 지원하여 딥 러닝 및 머신 러닝 시나리오에서 일반적으로 요구되는 대규모 고차원 벡터의 빠른 근사 근사 이웃 검색(ANNS)을 가능하게 합니다. 현재 StarRocks는 두 가지 유형의 벡터 인덱스를 지원합니다: IVFPQ와 HNSW입니다.
로드 중
- 삽입 덮어쓰기는 이제 새로운 시맨틱인 동적 덮어쓰기를 지원합니다. 이 시맨틱이 활성화되면, 수집된 데이터는 새 파티션을 생성하거나 새 데이터 레코드에 해당하는 기존 파티션을 덮어씁니다. 관련되지 않은 파티션은 잘리거나 삭제되지 않습니다. 이 의미는 사용자가 파티션 이름을 지정하지 않고 특정 파티션의 데이터를 복구하려는 경우에 특히 유용합니다. 자세한 내용은 동적 덮어쓰기를 참조하세요.
- 브로커 로드를 기본 로드 방법으로 대체하기 위해 FILES에서 INSERT로 데이터 수집을 최적화했습니다:
- FILES는 이제 원격 저장소에 있는 파일을 나열하고 파일의 기본 통계를 제공하는 기능을 지원합니다. 자세한 내용은 FILES - list_files_only를 참조하세요.
- INSERT는 이제 이름별로 열을 일치시키는 기능을 지원하므로 사용자가 동일한 이름을 가진 여러 열에서 데이터를 로드할 때 특히 유용합니다. (기본 동작은 위치별로 열을 일치시킵니다.) 자세한 내용은 이름으로 열 일치를 참조하십시오.
- INSERT는 다른 로드 방법과 마찬가지로 PROPERTIES 지정을 지원합니다. 사용자는 데이터 수집의 동작과 품질을 제어하기 위해 INSERT 작업에 대해
strict_mode,max_filter_ratio,timeout을지정할 수 있습니다. 자세한 내용은 INSERT - 속성을 참조하세요. - 파일에서 INSERT는 보다 정확한 소스 데이터 스키마를 추론하기 위해 대상 테이블 스키마 검사를 파일의 스캔 단계로 푸시다운하는 기능을 지원합니다. 자세한 내용은 푸시 다운 대상 테이블 스키마 검사를 참조하십시오.
- FILES는 서로 다른 스키마를 가진 파일 통합을 지원합니다. Parquet 및 ORC 파일의 스키마는 열 이름을 기준으로 유니온되고, CSV 파일의 스키마는 열의 위치(순서)를 기준으로 유니온됩니다. 일치하지 않는 열이 있는 경우 사용자는
fill_mismatch_column_with속성을 지정하여 열을 NULL로 채우거나 오류를 반환하도록 선택할 수 있습니다. 자세한 내용은 스키마가 다른 파일 유니온을 참조하세요. - FILES는 Parquet 파일에서 STRUCT 유형 데이터 추론을 지원합니다. (이전 버전에서는 STRUCT 데이터가 STRING 유형으로 유추됩니다.) 자세한 내용은 Parquet에서 STRUCT 유형 유추하기를 참조하세요.
- 여러 개의 동시 스트림 로드 요청을 단일 트랜잭션으로 병합하고 데이터를 일괄 커밋하여 실시간 데이터 수집의 처리량을 개선하는 기능을 지원합니다. 동시성이 높은 소량(KB~수십 MB) 실시간 로딩 시나리오를 위해 설계되었습니다. 잦은 로딩 작업으로 인한 과도한 데이터 버전, 압축 중 리소스 소비, 과도한 작은 파일로 인한 IOPS 및 I/O 지연 시간을 줄일 수 있습니다.
기타
- 정상 종료 시 BE 또는 CN 노드의 상태를
SHUTDOWN으로정확하게 표시하여 BE 및 CN의 정상 종료 프로세스를 최적화했습니다. - 디스크 공간을 과도하게 차지하지 않도록 로그 인쇄를 최적화했습니다.
- 공유-무공유 클러스터는 이제 논리적 보기, 외부 카탈로그 메타데이터, 표현식 파티셔닝 및 목록 파티셔닝 전략으로 생성된 파티션 등 더 많은 개체의 백업 및 복원을 지원합니다.
- [프리뷰] 팔로워 FE에서 체크포인트를 지원하여 체크포인트 중 리더 FE의 과도한 메모리 사용을 방지하여 리더 FE의 안정성을 개선합니다.
동작 변경
공유 데이터 아키텍처와 데이터 레이크 쿼리 시나리오 모두에서 사용되는 데이터 캐시 인스턴스가 이제 통합되었으므로, v3.4.0으로 업그레이드한 후 다음과 같은 동작이 변경됩니다:
- BE 구성 항목
datacache_disk_path는이제 더 이상 사용되지 않습니다. 데이터는${storage_root_path}/datacache디렉터리 아래에 캐시됩니다. 데이터 캐시 전용 디스크를 할당하려면 심볼릭 링크를 사용하여 위에서 언급한 디렉터리를 수동으로 가리키면 됩니다. - 공유 데이터 클러스터의 캐시된 데이터는 자동으로
${storage_root_path}/datacache로마이그레이션되며 업그레이드 후 재사용할 수 있습니다. datacache_disk_size의동작이 변경됩니다:datacache_disk_size가0(기본값)이면 캐시 용량 자동 조정이 활성화됩니다(업그레이드 전 동작과 일치).datacache_disk_size를0보다큰 값으로 설정하면 시스템에서datacache_disk_size와starlet_star_cache_disk_size_percent중 더 큰 값을 캐시 용량으로 선택합니다.
다운그레이드 참고 사항
- 클러스터는 v3.4.0에서 v3.3.9 이상으로만 다운그레이드할 수 있습니다.