Release 307
Release 307 (2019년 4월 3일)
Presto 307 릴리스예요. COMMENT 문으로 테이블 주석 설정, LATERAL 파생 테이블의 외부 조인 지원, 보안 강화 등이 담겼어요.
본문
General
- 윈도우 함수나
ORDER BY를 사용하는 쿼리의 스필 파일 정리 문제를 고쳤어요(#543). OUTER JOIN위에ORDER BY를LIMIT과 함께 쓰는 쿼리를 최적화해,ORDER BY와LIMIT을 조인의 바깥쪽으로 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-name과password-credential-name설정 속성으로 설정할 수 있어요(#482).
SPI
LongDecimalType과IpAddressType이 이제FixedWithBlock대신Int128ArrayBlock을 사용해요.Type이 반환하는BlockBuilder를 쓰지 않고 블록을 직접 만드는 코드는 업데이트해야 해요(#492).FixedWidthBlock을 제거했어요. 대신*ArrayBlock클래스 중 하나를 사용하세요(#492).ConnectorMetadata.applyFilter()메서드를 통해 커넥터로의 간단한 제약(constraint) pushdown 지원을 추가했어요(#541).
더 알아보기 (Learn more)
COMMENT 문법과 LATERAL 파생 테이블은 최신 Trino SQL 문서에서 자세히 확인할 수 있어요. 서버 보안 강화 내용은 보안 문서를 함께 보면 좋아요.