릴리스 0.177
릴리스 0.177 (Release 0.177)
이 릴리스에서는 정확성 수정, SHOW STATS, 여러 최적화, 파일 기반 전역 보안이 포함돼 있어요.
출처: 문서
본문
⚠️
optimize_mixed_distinct_aggregations세션 프로퍼티나optimizer.optimize-mixed-distinct-aggregations설정 옵션을 켠 상태에서 집계에 해당하는 행이 없으면 쿼리가 잘못NULL을 만들 수 있어요. 이 최적화는 Presto 버전 0.156에서 도입됐어요.
일반 (General)
CHAR타입 컬럼에 대해 범위 비교를 수행할 때의 정확성 문제를 고쳤어요.fast_inequality_join을 비활성화하지 않는 한 부등식 조인에서 null과 비결정적 표현식을 잘못 처리해 생기던 정확성 문제를 고쳤어요.- 람다 표현식으로 인한 과도한 GC 오버헤드를 고쳤어요. 캡처된 람다 표현식에는 여전히 알려진 GC 문제가 있어요. 이는 향후 릴리스에서 고쳐질 거예요.
- 커넥터에 테이블 생성을 요청하기 전에
CREATE TABLE에서 중복 컬럼을 검사하게 됐어요. 이는 대부분의 커넥터에서 오류 메시지를 개선하고, 내부적으로 검증을 수행하지 않는 커넥터의 오류를 방지해요. - 세미조인(즉 서브쿼리가 있는
IN프레디킷) 왼쪽의 null 값을 지원하게 됐어요. - 테이블과 쿼리 통계를 표시하는
SHOW STATS를 추가했어요. - 람다를 포함한 함수의 암시적 강제 변환 지원을 개선했어요. 특히
reduce()함수를 더 쉽게 사용할 수 있게 됐어요. - 불필요한 데이터 교환을 피하도록
ORDER BY와LIMIT를 포함한 쿼리의 계획을 개선했어요. - 동일한
PARTITION BY와ORDER BY절을 가진 윈도우 함수를 포함한 쿼리의 성능을 개선했어요. OUTER JOIN과 집계, 또는 특정 형태의 상관 서브쿼리를 포함한 특정 쿼리의 성능을 개선했어요. 이 최적화는 실험적이며push_aggregation_through_join세션 프로퍼티나optimizer.push-aggregation-through-join설정 옵션으로 켤 수 있어요.- 조인과 집계를 포함한 특정 쿼리의 성능을 개선했어요. 이 최적화는 실험적이며
push_partial_aggregation_through_join세션 프로퍼티로 켤 수 있어요. - 람다 표현식의 인자 수가 기대와 다를 때 오류 메시지를 개선했어요.
- 람다 표현식을 포함한 특정 잘못된
GROUP BY표현식의 오류 메시지를 개선했어요.
Hive
- RCFile을 읽을 때
CHAR타입의 후행 공백 처리를 고쳤어요. - 파티션 수가 파티션당 스캔 한도보다 많은 테이블에 삽입을 허용하게 됐어요.
- Hive 테이블 통계를 엔진에 노출하는 기능을 지원하게 됐어요. 이 옵션은 실험적이며
statistics_enabled세션 프로퍼티로 켤 수 있어요. - 손상된 ORC 파일의 오류 메시지에 파일 이름이 항상 있도록 했어요.
Cassandra
- Cassandra 커넥터의 메타데이터 캐싱을 제거했어요. 메타데이터 캐싱은 Presto가 Cassandra 클러스터가 정의한 일관성을 위반하게 만들었어요. Cassandra 드라이버가 내부적으로 메타데이터를 캐시하므로 불필요하기도 해요.
cassandra.max-schema-refresh-threads,cassandra.schema-cache-ttl,cassandra.schema-refresh-interval설정 옵션은 제거됐어요. - 연결 재시도 메커니즘의 간헐적 문제를 고쳤어요.
웹 UI
- 클러스터 HUD 실시간 통계를 모든 실행 중인 쿼리에 걸쳐 집계하도록 변경했어요.
- 클러스터 HUD의 병렬성 통계를 워커당 평균으로 변경했어요.
- 쿼리 목록 뷰에서 항상 불확정 진행 막대를 표시하던 버그를 고쳤어요.
- 실행 중 드라이버 통계에서 차단된 드라이버를 제외하도록 변경했어요.
- 쿼리 상세 페이지에서 CPU와 스케줄된 시간 비율 스파크라인의 단위를 초로 변경했어요.
- 쿼리 상세 페이지 새로고침 간격을 3초로 변경했어요.
- 모든 페이지에 업타임과 연결 상태 지표를 추가했어요.
CLI
- 전처리 명령을 지원하게 됐어요.
PRESTO_PREPROCESSOR환경 변수가 설정되면 모든 명령이 Presto 서버로 보내지기 전에 지정한 프로그램을 통해 파이프돼요.
더 알아보기 (Learn more)
이어서 릴리스 0.178에서 to_ieee754_32()/to_ieee754_64()와 GROUPING 연산을 확인해 보세요.