0.6.0
0.6.0
Apache Pinot 0.6.0 릴리스 노트 문서예요. 이 릴리스는 upsert, 계층형 스토리지(tiered storage), pinot-spark-connector, having 절 지원, 테이블 구성과 스키마에 대한 더 많은 검증, ordinals 지원 등 훌륭한 새 기능을 도입했어요.
출처: 문서
본문
요약 (Summary)
이 릴리스는 upsert, 계층형 스토리지, pinot-spark-connector, having 절 지원, GROUP BY 및 ORDER BY 절의 ordinals 지원, 배열 변환 함수, 세그먼트 메타데이터 전용 모드의 push 작업 타입 추가, 인스턴스 태그 업데이트 같은 새 API, 새 health check 엔드포인트 등 훌륭한 새 기능을 도입했어요. 또한 많은 중요한 버그 수정도 포함되어 있어요. 자세한 내용은 아래를 참고해 주세요.
릴리스는 다음 커밋에서 생성되었어요: e5c9bec 그리고 다음 cherry-pick:
주요 새 기능 (Notable New Features)
- 계층형 스토리지 (#5793)
- Upsert 기능 (#6096, #6113, #6141, #6149, #6167)
- QueryContext에서 집계 함수 사전 생성 (#5805)
- 컨트롤러 healthcheck 엔드포인트 /health 추가 (#5846)
- pinot-spark-connector 추가 (#5787)
- 다중값 비사전(non-dictionary) group by 지원 (#5851)
- 모든 스칼라 함수의 타입 변환 지원 (#5849)
- 추가 날짜시간 기능 추가 (#5438)
- ORDER-BY의 사후 집계(post-aggregation) 지원 (#5856)
- SELECT의 사후 집계 지원 (#5867)
- SQL용 범위 병합을 지원하는 RANGE FilterKind 추가 (#5898)
- HAVING 지원 추가 (#5889)
- int가 아닌 데이터 타입의 정확한 distinct count 지원 (#5872)
- 최대 qps 버킷 수 추가 (#5922)
- raw 값의 Range Indexing 지원 (#5853)
- IdSet 및 IdSetAggregationFunction 추가 (#5926)
- [Deepstore 우회] 사소한 버그 수정과 함께 Deepstore 우회 통합 테스트 추가 (#5857)
- 스키마 불일치 감지를 위한 Hadoop 카운터 추가 (#5873)
- RawThetaSketchAggregationFunction 추가 (#5970)
- 직접 updateTags를 위한 Instance API (#5902)
- 스트리밍 쿼리 핸들러 추가 (#5717)
- InIdSetTransformFunction 추가 (#5973)
- 헤더에 수집 설명(ingestion descriptor) 추가 (#5995)
- Zookeeper put api (#5949)
- Feature/#5390 세그먼트 인덱싱 리로드 상태 api (#5718)
- 세그먼트 처리 프레임워크 (#5934)
- QueryExecutor의 스트리밍 쿼리 지원 (#6027)
- 테이블 수준 메트릭스 발행을 위한 허용 테이블 목록 추가 (#6037)
- PQL과 SQL 쿼리 필터를 모두 최적화하는 FilterOptimizer 추가 (#6056)
- 세그먼트 메타데이터 전용 모드의 push 작업 타입 추가 (#5967)
- RealtimeToOfflineSegments 태스크용 Minion taskExecutor (#6050, #6124)
- 배열 변환 함수 추가: array_average, array_max, array_min, array_sum (#6084)
- 세그먼트 리로드 중 기존 star-tree 수정/제거 허용 (#6100)
- off-heap bloom filter 리더 구현 (#6118)
- SQL용 멀티스레드 Group By 리듀서 지원 (#6044)
- OnHeapGuavaBloomFilterReader 추가 (#6147)
- GROUP BY 및 ORDER BY 절에서 ordinals 사용 지원 (#6152)
- Dictionary용 공통 API 병합 (#6176)
- 세그먼트 업로드에 테이블 수준 잠금 추가 ([#6165])
- group by용 재귀 함수 검증 체크 추가 (#6186)
- StrictReplicaGroupInstanceSelector 추가 (#6208)
- IN_SUBQUERY 지원 추가 (#6022)
- IN_PARTITIONED_SUBQUERY 지원 추가 (#6043)
- 일부 UI 기능 (#5810, #5981, #6117, #6215)
특별 참고 사항 (Special notes)
-
이전 버전 호환을 유지하려면 브로커를 서버보다 먼저 업그레이드해야 해요:
-
Pinot 컴포넌트는 다음 순서대로 배포해야 해요:
(PinotServiceManager → ServiceRole.CONTROLLER 역할의 Bootstrap 서비스 → 나머지 모든 Bootstrap 서비스 병렬)
-
이 집계 함수는 여전히 베타 버전이에요. 이 PR은 서버에서 브로커로 전송되는 데이터 형식의 변경을 포함하므로, 브로커와 서버가 모두 새 버전으로 업그레이드된 경우에만 동작해요:
- DistinctCountThetaSketchAggregationFunction 강화 (#6004)
주요 버그 수정 (Major Bug fixes)
- 빈 sketch와 union을 제거해 DistinctCountThetaSketch 성능 개선 (#5798)
- 압축되지 않은 데이터에 대해 데이터 버퍼에서 직접 읽도록 VarByteChunkSVForwardIndexReader 강화 (#5816)
- 스키마 fetch 호출의 이전 버전 비호환 문제 수정 (#5885)
- MetricsHelper의 경쟁 조건 수정 (#5887)
- ControllerLeaderLocator가 생성되기 전에 세그먼트가 완료되는 경쟁 조건 수정 (#5864)
- BYTES 컬럼의 CSV 및 JSON 컨버터 수정 (#5931)
- 변환 UDF가 실제 함수 이름이 아닌 함수 이름 'OTHER'로 파싱되는 문제 수정 (#5940)
- 스트림 offset을 가져오는 동안 내장된 예외 통합 (#5956)
- 계획 단계에 쿼리 타임아웃 사용 (#5990)
- 스키마를 가져올 때 null 검사 추가 (#5994)
- schema/tableConfig 추가/업데이트 시 timeColumnName 검증 (#5966)
- 테이블 구성과 스트림의 파티셔닝 불일치 처리 (#6031)
- 불변 세그먼트의 내장 가상 컬럼 수정 (#6042)
- 실시간 세그먼트가 커밋될 때 라우팅 새로고침 (#6078)
- 정밀도 있는 Decimal Sum 집계 지원 추가 (#6053)
- zk 연결이 끊어지면 예외를 던지도록 Helix 호출 수정 (#6069)
- 세그먼트 리로드 중 기존 star-tree 수정/제거 허용 (#6100)
- 스키마 빌더에 최대 길이 지원 추가 (#6112)
- 비-star-tree 차원에서 모든 일치 프레디킷을 건너뛰도록 star-tree 강화 (#6109)
이전 버전과 호환되지 않는 변경 (Backward Incompatible Changes)
- 실시간 임계값 속성 이름을 덜 모호하게 변경 (#5953)
- DistinctCountThetaSketchAggregationFunction 강화 (#6004)
- ORC, Thrift, ProtoBuf 레코드의 Deep Extraction 지원 (#6046)