Release 307

Release 307 (2019년 4월 3일)

Presto 307 릴리스예요. COMMENT 문으로 테이블 주석 설정, LATERAL 파생 테이블의 외부 조인 지원, 보안 강화 등이 담겼어요.

출처: Trino Release 307

본문

General

  • 윈도우 함수나 ORDER BY를 사용하는 쿼리의 스필 파일 정리 문제를 고쳤어요(#543).
  • OUTER JOIN 위에 ORDER BYLIMIT과 함께 쓰는 쿼리를 최적화해, ORDER BYLIMIT을 조인의 바깥쪽으로 push했어요(#419).
  • 아주 작은 페이지를 생성하는 데이터 소스에 대한 테이블 스캔 성능을 개선했어요(#467).
  • DISTINCT 절을 포함한 IN 서브쿼리 표현식의 성능을 개선했어요(#551).
  • EXPLAIN (TYPE IO)에서 처리하는 타입 지원을 확장했어요(#509).
  • lateral 파생 테이블(즉 LATERAL)을 포함한 외부 조인을 지원하게 됐어요(#390).
  • COMMENT 문법으로 테이블 주석을 설정하는 것을 지원하게 됐어요(#200).

Web UI

  • /ui(끝에 슬래시 없이)로 열어도 UI가 동작하도록 했어요(#500).

Security

  • 쿼리 결과와 취소 URI를 안전하게 만들었어요. 이전에는 인증된 사용자가 실행 중인 아무 쿼리의 결과 데이터를 가로챌 수 있었어요(#561).

Server RPM

  • JVM이 대량의 네이티브 메모리를 할당하지 못하게 했어요. 새 설정은 Presto가 RPM으로 설치될 때 자동 적용돼요. 다른 방식으로 설치하거나 직접 만든 jvm.config를 쓸 때는 jvm.config-Djdk.nio.maxCachedBufferSize=2000000을 추가할 것을 권장해요. 자세한 내용은 Deploying Trino 문서를 참고해요(#542).

CLI

  • CLI가 종료될 때 배치 모드의 쿼리를 항상 중단하도록 했어요(#508, #580).

JDBC 드라이버

  • ResultSet이 닫히거나 Statement가 취소될 때 쿼리를 동기적으로 중단하도록 했어요. 이전에는 중단이 백그라운드에서 전송되어 JVM이 서버가 중단을 받기 전에 종료될 수 있었어요(#580).

Hive 커넥터

  • Hive 버킷팅(bucketing) 버전에 대한 안전 검사를 추가했어요. Hive 3.0이 호환되지 않는 해시 함수를 사용하는 새 버킷팅 버전을 도입했는데, Hive 커넥터는 이런 테이블을 읽을 때 버킷팅되지 않은 것으로 취급하고 쓰기는 허용하지 않아요(#512).
  • COMMENT 문법으로 테이블 주석을 설정하는 것을 지원하게 됐어요(#200).

기타 커넥터

  • 타임스탬프 값의 읽기·쓰기 문제를 고쳤어요. 이전에는 Presto JVM 시간대에 따라 잘못된 값이 읽힐 수 있었어요(#495).
  • 클라이언트가 제공한 사용자 이름과 비밀번호를 사용하는 것을 지원하게 됐어요. 자격 증명 이름은 user-credential-namepassword-credential-name 설정 속성으로 설정할 수 있어요(#482).

SPI

  • LongDecimalTypeIpAddressType이 이제 FixedWithBlock 대신 Int128ArrayBlock을 사용해요. Type이 반환하는 BlockBuilder를 쓰지 않고 블록을 직접 만드는 코드는 업데이트해야 해요(#492).
  • FixedWidthBlock을 제거했어요. 대신 *ArrayBlock 클래스 중 하나를 사용하세요(#492).
  • ConnectorMetadata.applyFilter() 메서드를 통해 커넥터로의 간단한 제약(constraint) pushdown 지원을 추가했어요(#541).

더 알아보기 (Learn more)

COMMENT 문법과 LATERAL 파생 테이블은 최신 Trino SQL 문서에서 자세히 확인할 수 있어요. 서버 보안 강화 내용은 보안 문서를 함께 보면 좋아요.