릴리스 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 BYLIMIT를 포함한 쿼리의 계획을 개선했어요.
  • 동일한 PARTITION BYORDER 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 연산을 확인해 보세요.