0.12.0
0.12.0
Apache Pinot 0.12.0 릴리스 노트 문서예요. 이 릴리스는 Multi-Stage 쿼리 엔진에 새 조인 의미론과 새 SQL 의미 지원을 추가하고, 다양한 주요 업데이트와 버그 수정을 포함해요.
출처: 문서
본문
Multi-Stage 쿼리 엔진
새 조인 의미론 지원 (New join semantics support)
- Left join (#9466)
- In-equi join (#9448)
- Full join (#9907)
- Right join (#9907)
- Semi join (#9367)
- Using 키워드 (#9373)
새 SQL 의미 지원 (New sql semantics support):
- Having (#9274)
- Order by (#9279)
- In/NotIn 절 (#9374)
- Cast (#9384)
- Like/Rexlike (#9654)
- Range 프레디킷 (#9445)
성능 개선 (Performance enhancement)
주요 업데이트 (Major updates)
- @sajjad-moradi가 consuming 세그먼트 강제 커밋 #9197
- @jadami10이 신선도 기반 consumption 상태 체커 추가 #9244
- @gviedma가 진행 중인 controller 세그먼트 다운로드·업로드 요청 추적 메트릭 추가 #9258
- @xiangfu0가 각 컴포넌트의 로컬 로그 파일 다운로드 엔드포인트 추가 #9259
- [Feature] @61yao가 수집 작업에서 입력 파일 재귀 검색 옵션 추가. 기본값은 이전 버전과 호환되도록 true #9265
- @klsince가 브로커의 기능을 기반으로 한 controller의 쿼리 취소 API 추가 #9276
- @KKcorps가 Spark Job Launcher 도구 추가 #9288
- @yuanbenson이 Standalone 세그먼트 push 작업 러너의 일관된 데이터 push 활성화 #9295
- @Jackie-Jiang이 서버가 최종 집계 결과를 직접 반환하도록 허용 #9304
- @klsince이 세그먼트를 multi-datadir에 유지하는 TierBasedSegmentDirectoryLoader #9306
- @vvivekiyer의 적응형 서버 선택 (Adaptive Server Selection) #9311
- [Feature] @61yao가 IsDistinctFrom과 IsNotDistinctFrom 지원 #9312
- @KKcorps가 잘못된 데이터 타입의 오류 레코드 수집 허용 #9320
- @saurabhd336이 하이브리드 테이블 쿼리의 커스텀 시간 경계 설정 허용 #9356
- @klsince이 최대 허용 지연으로 늦은 cron 작업 건너뛰기 #9372
- @Jackie-Jiang이 BOOLEAN과 TIMESTAMP의 암시적 cast 허용 안 함 #9385
- @KKcorps이 CSV 플러그인에 누락된 속성 추가 #9399
- @klsince이 MDC를 설정해 minion 태스크 로그를 별도 파일로 깔끔하게 라우팅 #9400
- @KKcorps이 메타데이터에서 세그먼트 날짜 시간을 고치는 새 API 추가 #9413
- @61yao이 문자열의 raw 바이트를 반환하도록 get bytes 업데이트 및 getBytesMV 지원 #9441
- @navina이 /consumingSegmentsInfo에서 consumer의 레코드 지연 노출 #9515
- @KKcorps이 높은 카디널리티 컬럼에 사전 생성 안 함 #9527
- @klsince이 Helix에서 추적되는 태스크 런타임 구성 가져오기 #9540
- @Jackie-Jiang이 json 인덱스에 더 많은 옵션 추가 #9543
- @klsince이 SegmentTierAssigner 추가 및 세그먼트 tier 정보를 가져오는 restful API 개선 #9598
- @saurabhd336이 세그먼트 수준 디버그 API 추가 #9609
- @navina이 Kafka 커넥터에 레코드 가용성 지연 추가 #9621
- @klsince이 SegmentReloadMessage로 세그먼트를 새 tier로 이동해야 하는 서버에 알림 #9624
- @klsince이 인스턴스 구성으로 multi-datadirs 구성 허용 및 이에 대한 Quickstart 예제 #9705
- @jasperjiaguo이 Lucene 인덱스의 stopword 커스터마이즈 #9708
- @KKcorps이 메모리 최적화 차원 테이블 추가 #9802
- @xiangfu0의 ADLS 파일시스템 업그레이드 #9855
- @bagipriyank이 Delete Schema/Table pinot admin 명령 추가 #9857
- @xiangfu0이 새로운 ADLSPinotFS auth 타입 DEFAULT 추가 #9860
- @KKcorps이 Kinesis 요청에 rate limit 추가 #9863
- @xiangfu0이 zk 클라이언트 타임아웃 구성 추가 #9975
기타 기능/변경 (Other features/changes)
- @satishwaghela이 가장 최근 스케줄링 오류 표시 #9161
- @Jackie-Jiang이 IntermediateResultsBlock의 distinct 쿼리에 집계 결과 사용 안 함 #9262
- @sajjad-moradi이 실시간 테이블에서 실제 소비율 대 rate limit 비율 메트릭 발행 #9201
- @walterddr이 offlineTableCount 메트릭 항목 추가 #9270
- @klsince이 쿼리 취소 응답 메시지 개선 #9242
- @apucher이 비표준 엔드포인트에 @ManualAuthorization 애노테이션 추가 #9252
- @Jackie-Jiang이 output stream 사용을 피하도록 ser/de 최적화 #9278
- @SabrinaZhaozyf이 Covariance 함수 지원 추가 #9236
- @somandal이 selection order-by 전용 쿼리의 order-by 표현식 목록에 MV 컬럼이 있을 때 예외 던짐 #9078
- @jasperjiaguo이 실행 중 서버 쿼리 취소와 타임아웃 확인 개선 #9286
- @sajjad-moradi이 실시간 테이블을 비활성화하지 않고 다른 스트림에서 수집하는 기능 추가 #9289
- @npawar이 불필요한 needPreprocess를 피하기 위한 minMaxInvalid 플래그 추가 #9238
- @walterddr이 array cardinality 함수 추가 #9300
- @klsince이 세그먼트를 multi-datadir에 유지하는 TierBasedSegmentDirectoryLoader #9306
- @KKcorps이 CSV record reader의 커스텀 null 값 지원 추가 #9318
- @saurabhd336이 파일 메타데이터 기반 parquet reader 타입 추론 #9294
- @SabrinaZhaozyf이 MV 컬럼의 Cast 함수 지원 추가 #9296
- @KKcorps이 잘못된 데이터 타입의 오류 레코드 수집 허용 #9320
- [Feature] @61yao의 NOT 연산자 변환 #9330
- @KKcorps이 CSV 디코더에서 null 문자열 처리 #9340
- [Feature] @61yao의 NOT 스칼라 함수 #9338
- @tanmesh이 EXTRACT 문법 지원 추가 및 적절한 Pinot 표현식으로 변환 #9184
- @KKcorps이 java 쿼리 클라이언트의 controller 요청 Auth 지원 추가 #9230
- @zhtaoxiang이 테이블 삭제 시 관련 minion 태스크 메타데이터 모두 삭제 #9339
- @yuanbenson은 BloomFilterRule이 지원되는 컬럼 타입에만 추천하도록 #9364
- @xiangfu0이 ParquetNativeRecordReader에서 모든 타입 지원 #9352
- @zhtaoxiang이 메타데이터 push의 세그먼트 이름 확인 개선 #9359
- @xiangfu0이 오류에도 표현식 변환기가 계속하도록 허용 #9376
- @klsince이 최대 허용 지연으로 늦은 cron 작업 건너뛰기 #9372
- @jasperjiaguo이
and필터 프레디킷 평가 효율 향상 #9336 - @ankitsultana이 Broker/Minion 특정 구성의 instanceId Config 폐기 #9308
- @Jackie-Jiang이 스레드를 완전히 활용하도록 combine 연산자 최적화 #9387
- @jasperjiaguo이 계획 생성 후 타임아웃이면 쿼리 종료 #9386
- [Feature] @61yao이 IsDistinctFrom과 IsNotDistinctFrom 지원 #9312
- [Feature] @61yao이 컬럼 이름의 Coalesce 지원 #9327
- @KKcorps이 kinesis의 interrupted 예외 로깅 비활성화 #9405
- @jasperjiaguo이 thread cpu 시간 벤치마크 #9408
- @KKcorps이 SIMPLE_DATE_FORMAT의 기본값으로 ISODateTimeFormat 사용 #9378
- @Jackie-Jiang이 upsert 메타데이터 매니저의 공통 로직 추출 #9435
- @saurabhd336이 minion 태스크 메타데이터 매니저 메서드를 더 일반적으로 변경 #9436
- @navina이 kafka의 consumer 속성에 항상 clientId 전달 #9444
- @vvivekiyer의 적응형 서버 선택 #9311
- @klsince이 reentrant하도록 IndexHandler 메서드 개선 #9440
- @klsince이 worker에서 더 세밀한 태스크 진행 상태 추적에 MinionEventObserver 사용 #9432
- @KKcorps이 입력 파일 경로에 공백 허용 #9426
- @KKcorps이 변환 중 오류를 우아하게 처리하는 지원 추가 #9377
- @ankitsultana이 SegmentMissingError를 피하기 위해 서버에서 삭제된 세그먼트 이름 캐시 #9423
- @KKcorps이 잘못된 timestamp 처리 #9355
- @klsince이 태스크의 더 세밀한 진행 추적을 위한 minion worker 이벤트 관찰자 개선 #9449
- @itschrispeck의 spark-connector가 v2/brokers 엔드포인트를 사용하도록 #9451
- @xiangfu0이 pinot-core와 pinot-segment-local 의존성을 제거하기 위해 presto-pinot-driver에서 netty 서버 쿼리 지원 제거 #9455
- @vvivekiyer의 적응형 서버 선택: 검토 중인 코멘트 반영 #9462
- @klsince이 세그먼트 프로세서 프레임워크 내에서 진행 추적 #9457
- @Jackie-Jiang이 DataTable에서 ser/de를 분리 #9468
- @klsince이 파일 나열 시 mtime, length 같은 파일 정보를 공짜로 수집 #9466
- @navina이 Stream 소스에서 레코드 키, 헤더, 메타데이터 추출 #9224
- [pinot-spark-connector] @cbalci이 spark 커넥터 최대 인바운드 메시지 크기 상향 #9475
- @klsince이 minion 태스크 진행 api 개선 #9482
- @agavra이 AT TIME ZONE 파싱 추가 #9477
- @elonazoulay이 gapfill 쿼리로 인한 메트릭 폭발 제거 #9490
- @vvivekiyer이 ForwardIndexHandler: segmentReload 중 compressionType 변경 #9454
- @GSharayu이 Segment AssignmentStrategy 인터페이스 도입 #9309
- @jasperjiaguo이 브로커 groupby 감축에 쿼리 중단 플래그 확인 추가 #9499
- @walterddr이 선택적 클라이언트 페이로드 추가 #9465
- [feature] @61yao의 distinct from 스칼라 함수 #9486
- @Jackie-Jiang이 null 처리를 위해 서버에서만 데이터 테이블 버전 확인 #9508
- @KKcorps이 세그먼트 읽기 예외에 docId와 컬럼 이름 추가 #9512
- @jasperjiaguo이 AndDocIdSet 평가에서 스캔 기반 연산자를 카디널리티로 정렬 #9420
- @Jackie-Jiang이 codecov 업로드 실패 시 CI 실패로 처리하지 않음 #9522
- [Upsert] @deemoliu이 Pinot upsert 최적화를 위해 validDocsIndex 스냅샷 유지 #9062
- @dongxiaoman의 broker 필터 #9391
- [feature] @61yao의 coalesce scalar #9487
- @saurabhd336이 하이브리드 테이블 쿼리의 커스텀 시간 경계 설정 허용 #9356
- [GHA] @walterddr이 cache timeout 추가 #9524
- @Jackie-Jiang이 PinotHelixResourceManager.hasTable() 최적화 #9526
- @Jackie-Jiang이 upsert 메타데이터 매니저를 만들 수 없을 때 예외 포함 #9532
- @klsince이 태스크 만료 시간 구성 허용 #9530
- @klsince이 디버그 API로 태스크 완료 시간 노출 #9534
- @Jackie-Jiang이 KafkaPartitionLevelConsumer의 잘못된 경고 로그 제거 #9536
- @klsince이 조건부로 minion worker의 http 서버 시작 #9542
- @vvivekiyer이 StreamMessage를 일반화하고 버그 수정 #9544
- @KKcorps이 기본 키 직렬화 성능 개선 #9538
- [Upsert] @Jackie-Jiang이 서버 종료 시 upsert 메타데이터 제거 건너뛰기 #9551
- @walterddr이 array element at 함수 추가 #9554
- @nizarhejazi이 enableNullHandling이 true이고 비어 있는 null 비트맵이 있는 컬럼으로 집계 함수를 사용할 때 처리 #9566
- @somandal이 forward index 없는 세그먼트 저장 형식 지원 #9333
- @timsants이 구성에 명시적으로 설정되지 않았을 때 SegmentNameGenerator 타입 추론 추가 #9550
- @agavra이 JMX 메트릭과 컴포넌트 로그에 버전 정보 추가 #9578
- @agavra이 사용하지 않는 RecordTransform/RecordFilter 클래스 제거 #9607
- @vvivekiyer이 기존 raw MV 컬럼의 압축 타입 변경 시 forward index 재작성 지원 #9510
- @sajjad-moradi이 Avro의 Fixed 데이터 타입 지원 #9642
- [feature] [kubernetes] @jameskelleher이 controller와 broker의 service-external.yaml에 loadBalancerSourceRanges 추가 #9494
- @Jackie-Jiang이 쿼리 예외에서 인쇄할 사용 불가능한 세그먼트를 최대 10개로 제한 #9617
- @agavra이 더 많은 사용하지 않는 필터 코드 제거 #9620
- @Jackie-Jiang이 세그먼트에서 record reader 캐시 하지 않음 #9604
- @rino-kadijk이 user agent 헤더의 첫 부분을 구성 가능하게 변경 #9471
- @gortiz이
order by sorted ASC, unsorted와order by DESC케이스 최적화 #8979 - @Jackie-Jiang이 비문자열 값을 제대로 처리하도록 클러스터 구성 업데이트 API 강화 #9635
- @yuanbenson이 recommender REST API를 PUT으로 되돌림 (PR #9326 되돌림) #9638
- @Jackie-Jiang이 서버 구성에서 잘못된 pruner 이름 제거 #9646
- @navina이 picocli 명령에서 폐기된
help대신usageHelp사용 #9608 - @Jackie-Jiang이 서버에서 고유 쿼리 id 처리 #9648
- @walterddr이 stateless group marker 누락 수정 #9673
- @Jackie-Jiang이 강제 커밋을 사용한 consuming 세그먼트 리로드 지원 #9640
- @Jackie-Jiang이 프레디킷이 모든 비-star 노드와 일치할 때 star-node를 사용하도록 star-tree 개선 #9667
- @klsince이 프리페치할 컬럼 인덱스를 결정하는 FetchPlanner 인터페이스 추가 #9668
- @Jackie-Jiang이 ArrayDeque를 사용한 star-tree 순회 개선 #9688
- @Jackie-Jiang이 combine 연산자의 오류 처리 #9689
- @SabrinaZhaozyf이 이전 버전이 master에 없으면 다른 오류 코드 반환 #9686
- @vvivekiyer이 기존 컬럼에 대해 런타임에 사전 생성 지원 #9678
- @klsince이 indexDir 존재 확인 대신 mutable 세그먼트를 명시적으로 확인 #9718
- @npawar이 segmentTar 다운로드 전에 남은 파일 제거 #9719
- @walterddr이 세그먼트 메타데이터에 인덱스 키와 크기 맵 추가 #9712
- @Jackie-Jiang이 세그먼트 존재의 진실 공급원으로 ideal state 사용 #9735
- @KKcorps이 Minion 태스크로 종료 시 파일시스템 닫기 #9681
- @jadami10이 테이블 크기가 로딩되는 동안에도 테이블 목록 렌더링 #9741
- @SabrinaZhaozyf이 IP Address 함수 지원 추가 #9501
- @agavra이 브로커에서 오류 메시지 버블링 #9754
- @somandal이 기존 컬럼의 forward index 비활성화 지원 추가 #9740
- @walterddr이 aggregate index size 형태로 테이블 메타데이터 정보 표시 #9733
- @klsince이 RT 테이블의 불변 세그먼트를 로드할 때 조건부 전처리 #9772
- @agavra이 QueryConfig의 기본 타임아웃 nano 변경 되돌림 #9790
- @vvivekiyer의 적응형 서버 선택: 응답하지 않은 서버의 통계 업데이트 #9801
- @KKcorps이 기본 컬럼의 null 값 인덱스 추가 #9777
- [MergeRollupTask] @zhtaoxiang이 세그먼트 이름에 파티션 정보 포함 #9815
- @navina이 컨트롤러의 주기적 태스크로 consumer 지연 메트릭 추가 #9800
- @priyen이 Hyperloglog 개체를 더 최적으로 역직렬화 #9749
- @wirybeaver이 피어에서 오프라인 세그먼트 다운로드 #9710
- @jasperjiaguo이 서버의 스레드 수준 사용량 회계와 쿼리 중단 #9727
- @deemoliu이 부분 upsert용 max merger와 min mergers 추가 #9665
- #9518 @bagipriyank이 보안 버전 pinot 0.11.0으로 pinot helm 0.2.6 추가 #9519
- @snleee이 replication 구성의 읽기 접근 결합 #9849
- @jhisse이 helm 차트에 v1 ingress 추가 #9862
- @vvivekiyer이 replicaGroup 기반 라우팅을 위한 AdaptiveServerSelection 최적화 #9803
- @Jackie-Jiang이 InstancePartitions에서 인스턴스 정렬 안 함 #9866
- @navina이 기본 병합 전략으로 기존 레코드의 새 컬럼 병합 #9851
- @vvivekiyer이 기존 컬럼의 런타임 사전 비활성화 지원 #9868
- @agavra이 BOOL_AND와 BOOL_OR 집계 함수 지원 #9848
- @navina이 사용하지 않는 subscriptions 삭제에 Pulsar AdminClient 사용 #9859
- @jadami10이 테이블 크기의 테이블 정렬 함수 추가 #9844
- @Jackie-Jiang이 Kafka consumer에서 필요할 때만 offset 탐색 #9896
- @klsince이 지정된 테이블 이름의 브로커가 없을 때 폴백 #9914
- @Jackie-Jiang이 서버 종료 중 liveness 확인 허용 #9915
- @KKcorps이 MergeRollup Minion 태스크에서 Metadata를 통한 세그먼트 업로드 허용 #9825
- @Jackie-Jiang이 IS 변경 누락에 대한 Helix 우회책 복원 #9921
- @KKcorps이 CLI로 실시간 세그먼트 업로드 허용 #9861
- @KKcorps이 CLI로 테이블 구성 업데이트·삭제 기능 추가 #9852
- @klsince이 push 모드가 설정되지 않으면 기본적으로 TAR #9935
- @klsince이 세그먼트 리더 인터페이스로 startree 인덱스 로드 #9828
- @saurabhd336이 MV 변환 함수에 컬렉션 허용 #9908
- @vvivekiyer이 완료된 실시간 세그먼트 로드 시 새 IndexLoadingConfig 구성 #9938
- @timsants이 스키마가 raw 테이블 이름과 일치하지 않을 때 GET /tableConfigs를 이전 버전 호환되게 변경 #9922
- feat: @etolbakov이 ORCRecordReader에 압축 파일 지원 추가 #9884
- @snleee이 Variance와 Standard Deviation 집계 함수 추가 #9910
- @zhtaoxiang이 실시간 테이블에서 MergeRollupTask 활성화 #9890
- @vvivekiyer이 raw 컬럼을 dict 기반으로 변환할 때 cardinality 업데이트 #9875
- @timsants이 UploadSegmentCommand에 auth 토큰 재추가 #9960
- @snleee이 avro record reader의 gz 지원 개선 #9951
- @somandal이 noForwardIndex의 기본 컬럼 처리 및 리로드 경로에서 forward index 재생성 #9810
- [Feature] @61yao이 coalesce literal 지원 #9958
- @npawar이 클라이언트를 직접 전달할 때 serverSideEncryption 속성으로 S3PinotFs 초기화 기능 #9988
- @klsince이 태스크 진행 상태를 가져올 때 보류 중인 minion 태스크를 제대로 처리 #9911
- @zhtaoxiang이 메트릭 레지스트리에 저장된 gauge 업데이트 허용 #9961
- @agavra이 SET 문법에서 대소문자 구분 없는 쿼리 옵션 지원 #9912
- @jadami10이 versions-maven-plugin을 2.13.0으로 고정 #9993
- @navina이 Pulsar Connection handler가 consumer/reader를 띄우지 않도록 #9893
- @Jackie-Jiang이 인덱스 확인을 위한 인메모리 세그먼트 메타데이터 처리 #10017
- @snleee이 S3 PinotFS의 IAM 역할을 사용한 크로스 계정 접근 지원 #10009
- @zhtaoxiang이 minion 태스크 메타데이터 마지막 업데이트 시간을 메트릭으로 보고 #9954
- @agavra이 SKEWNESS와 KURTOSIS 집계 지원 #10021
- @zhtaoxiang이 minion 태스크 생성 시간과 오류 메트릭 발행 #10026
- @Jackie-Jiang이 모든 레플리카에 같은 기본 시간 값 사용 #10029
- @saurabhd336이 리밸런싱 시 수렴 대기 세그먼트 수 줄임 #10028
UI 업데이트 및 개선 (UI Update & Improvement)
- 클러스터 구성에 기반해 쿼리 콘솔 탭 숨기기 허용 (#9261)
- 구성으로 pinot broker swagger UI 숨기기 허용 (#9343)
- 세밀한 minion 태스크 진행을 보여주는 UI 추가 (#9488)
- 세그먼트 리로드 진행을 추적하는 UI 추가 (#9521)
- UI에서 minion 태스크 런타임 구성 상세 표시 (#9652)
- 세그먼트 상태 재정의 (#9699)
- 스키마 편집 중 세그먼트 리로드 옵션 표시 (#9762)
- 스키마 UI를 비동기로 로드 (#9781)
- 알 수 없는 앱 경로로 리다이렉트할 때 빈 화면 수정 (#9888)
라이브러리 버전 업그레이드 (Library version upgrade)
- glibc 요구 사항을 낮추기 위해 h3 lib를 3.7.2에서 4.0.0으로 업그레이드 (#9335)
- ZK 버전을 3.6.3으로 업그레이드 (#9612)
- snakeyaml을 1.30에서 1.33으로 업그레이드 (#9464)
- RoaringBitmap을 0.9.28에서 0.9.35로 업그레이드 (#9730)
- spotless-maven-plugin을 2.9.0에서 2.28.0으로 업그레이드 (#9877)
- decode-uri-component를 0.2.0에서 0.2.2로 업그레이드 (#9941)
버그 수정 (BugFixes)
- @abhs50이 요청 헤더 로깅 버그 수정 #9247
- @klsince이 코어가 많은 호스트에서만 나타나는 UT 수정 #9257
- @Jackie-Jiang이 메시지 수 수정 #9271
- @sajjad-moradi이 Schema REST 엔드포인트의 auth AccessType 문제 수정 #9293
- @Jackie-Jiang이 PerfBenchmarkRunner가 tmp 디렉터리를 건너뛰도록 수정 #9298
- @saurabhd336이 thrift 역직렬화기 스레드 안전성 문제 수정 #9299
- @Jackie-Jiang이 BOOLEAN과 TIMESTAMP의 문자열 변환 수정 #9287
- [hotfix] @walterddr이 switch case 분기에 VARBINARY 컬럼 추가 #9313
- @sajjad-moradi이 "/recommender" 엔드포인트의 애노테이션 수정 #9326
- @somandal이 누락된 pom 의존성으로 인한 jdk8 빌드 문제 수정 #9351
- @somandal이 pinot-connector jkd8 java 클라이언트에 pinot-common-jdk8을 사용하도록 pom 수정 #9353
- @KKcorps이 작업 타입을 반영하도록 로그 수정 #9381
- [Bugfix] @MeihanLi의 스키마 업데이트 버그 수정 #9382
- @jasperjiaguo이 histogram null 포인터 예외 수정 #9428
- @saurabhd336이 SDF의 스레드 안전성 문제 수정(WIP) #9425
- Bug fix: @KKcorps이 수집 작업의 실패 상태가 exit code에 반영되지 않는 문제 #9410
- @Jackie-Jiang이 MinMaxValueBasedSelectionOrderByCombineOperator의 skip 세그먼트 로직 수정 #9434
- @Jackie-Jiang이 같은 request id를 사용하는 하이브리드 테이블 요청 버그 수정 #9443
- @Jackie-Jiang이 raw 컬럼의 range index 범위 확인 수정 #9453
- @ankitsultana이 BinaryOperatorTransformFunction의 GTE 비교 데이터 정확성 버그 수정 #9461
- @klsince이 PinotFS 구현을 listFilesWithMetadata로 확장 및 일부 버그 수정 #9478
- @walterddr이 null transform 경계 확인 수정 #9495
- @Jackie-Jiang이 값이 추출되지 않을 때 JsonExtractScalar 수정 #9500
- @npawar이 실시간 테이블의 AddTable 수정 #9506
- @Jackie-Jiang이 일부 타입 변환 스칼라 함수 수정 #9509
- [MINOR] @agavra이 ConfluentSchemaRegistryRealtimeClusterIntegrationTest의 스팸 로그 수정 #9516
- @Jackie-Jiang이 보존 키 컬럼의 timestamp 인덱스 수정 #9533
- @Jackie-Jiang이 ByteBuffer 재사용 가능 시 record extractor 수정 #9549
- @somandal이 explain plan ALL_SEGMENTS_PRUNED_ON_SERVER 노드 수정 #9572
- @Jackie-Jiang이 데이터 타입 변환이 필요할 때 시간 검증 수정 #9569
- UI: @jayeshchoudhary이 잘못된 태스크 완료 시간 수정 #9557
- @Jackie-Jiang이 실시간 테이블에서 업로드된 세그먼트를 삭제할 수 없는 버그 수정 #9579
- [bugfix] @zhtaoxiang이 FileIngestionHelper에서 세그먼트 빌드 디렉터리 수정 #9591
- @Jackie-Jiang이 NonAggregationGroupByToDistinctQueryRewriter 수정 #9605
- @walterddr이 distinct 결과 반환 수정 #9582
- @lfernandez93이 GcsPinotFS 수정 #9556
- @walterddr이 DataSchema 스레드 안전성 문제 수정 #9619
- Bug fix: @timsants이 /tableConfigs 전체 목록에 누락된 테이블 구성 가져오기 추가 #9603
- @Jackie-Jiang이 이전 업로드 실패 시 세그먼트 재업로드 수정 #9631
- @Jackie-Jiang이 전체 구분자로 분할해야 할 문자열 분할 수정 #9650
- @Jackie-Jiang이 서버 요청 전송 지연이 음수가 되지 않도록 수정 #9656
- bugfix: @timsants이 GenericRow serde에 누락된 BIG_DECIMAL 지원 추가 #9661
- @Jackie-Jiang이 stateless여야 할 extra restlet 리소스 테스트 수정 #9674
- @vvivekiyer의 AdaptiveServerSelection: timer 수정 #9697
- @agavra이 prometheus와 호환되도록 PinotVersion 수정 #9701
- @Jackie-Jiang이 ControllerTest 공유 클러스터 설정 수정 #9704
- [hotfix] @walterddr의 groovy 클래스 캐시 누출 #9716
- @Jackie-Jiang이 SegmentMapper의 TIMESTAMP 인덱스 처리 수정 #9722
- @Jackie-Jiang이 구성 변경을 반영하도록 서버 admin 엔드포인트 캐시 수정 #9734
- [bugfix] @walterddr의 case-when 문제 수정 #9702
- [bugfix] @thangnd197이 StartControllerCommand가 기본 conf/pinot-controller.conf에서 "pinot.zk.server", "pinot.cluster.name"도 처리하도록 #9739
- [hotfix] @walterddr의 semi-join 최적화 #9779
- @snleee이 tier가 있는 실시간 테이블의 리밸런스 문제 수정 #9780
- UI: @jayeshchoudhary이 세그먼트가 나쁜 상태일 때 세그먼트 디버그 상세 표시 #9700
- @GSharayu이 세그먼트 할당 전략의 복제 수정 #9816
- @klsince이 SegmentProcessorFramework의 잠재적 fd 누출 수정 #9797
- @Jackie-Jiang이 controller 구성에서 ZK 주소를 읽을 때 NPE 수정 #9751
- @jadami10이 쿼리 테이블 목록에 검색 바 표시, InstancesTables 필터 수정 #9742
- [pinot-spark-connector] @cbalci이 GRPC reader의 빈 데이터 테이블 처리 수정 #9837
- [bugfix] @zhtaoxiang이 mergeRollupTask 메트릭 수정 #9864
- Bug fix: @KKcorps이 올바른 primary key 수 가져오기 #9876
- @Jackie-Jiang이 실시간 테이블 리로드 문제 수정 #9885
- UI: @jayeshchoudhary이 다른 테이블 페이지에서 세그먼트 상태 색상이 유지되는 문제 수정 #9891
- @Jackie-Jiang이 BYTES의 bloom filter 생성 수정 #9898
- [hotfix] @walterddr이 테이블 이름을 사용하지 않는 broker 선택 수정 #9902
- @jackjlli이 같은 세그먼트에 대해 두 세그먼트 업로드가 발생한 경쟁 조건 수정 #9905
- @agavra이 timezone_hour/timezone_minute 함수 수정 #9949
- [Bugfix] @jackjlli이 brokerId 추출을 BaseBrokerStarter로 이동 #9965
- @Jackie-Jiang이 StringLongPair의 ser/de 수정 #9985
- bugfix @klsince이 HadoopPinotFS.copyFromLocalDir의 dir 확인 #9979
- Bugfix: @mayankshriv이 TableRebalancer에서 올바른 예외 import 사용 #10025
- @ankitsultana이 경쟁 조건으로 인한 AbstractMetrics의 NPE 수정 #10022