Release 347
Release 347 (2020년 11월 25일)
Presto 347 릴리스예요. INTERSECT ALL·EXCEPT ALL, contains_sequence() 함수, ALTER VIEW ... SET AUTHORIZATION, 최소 Java 11.0.7 요구, Kudu 동적 필터링 등이 담겼어요.
본문
General
- 뷰의 소유자를 변경하는
ALTER VIEW ... SET AUTHORIZATION문법을 추가했어요(#5789). INTERSECT ALL과EXCEPT ALL지원을 추가했어요(#2152).contains_sequence()함수를 추가했어요(#5593).- 네트워크 서브넷으로 클러스터 토폴로지(쿼리 스케줄링에 사용)를 정의할 수 있게 했어요(#4862).
- 워커 간 통신 오버헤드를 줄여 쿼리 성능을 개선했어요(#5905, #5949).
- 클라이언트 HTTP 응답 압축을 비활성화할 수 있게 했어요. 빠른 네트워크 링크에서 처리량을 개선할 수 있어요. 압축은
query-results.compression-enabled설정 속성으로 전역적으로, CLI에서는--disable-compression플래그로, JDBC 드라이버에서는disableCompression드라이버 속성으로 비활성화할 수 있어요(#5818). - 세션 속성
rewrite-filtering-semi-join-to-inner-join을rewrite_filtering_semi_join_to_inner_join으로 이름을 바꿨어요(#5954). - 세션 속성 값을 디코딩할 수 없을 때 사용자 오류를 던지도록 했어요(#5731).
row타입의 값을 만드는 표현식이VALUES절에서 쓰일 때 쿼리가 실패하던 문제를 고쳤어요(#3398).
Server
- Presto 시작에 최소 Java 버전 11.0.7이 필요하게 됐어요. 이는 JDK-8206955를 완화하기 위한 거예요(#5957).
Security
- 여러 LDAP 바인드 패턴(bind patterns) 지원을 추가했어요(#5874).
- 뷰에 대한 권한을 확인할 때 뷰 소유자의 그룹을 포함하도록 했어요(#5945).
JDBC 드라이버
PreparedStatement에addBatch(),clearBatch(),executeBatch()메서드를 구현했어요(#5507).
CLI
- 셸 리다이렉션으로 presto-cli에 쿼리를 제공하는 것을 지원하게 됐어요(#5881).
Docker 이미지
- Presto Docker 이미지가 기본 이미지로 CentOS 8을 사용하도록 업데이트했어요(#5920).
Hive 커넥터
- 뷰 소유자를 변경하는
ALTER VIEW ... SET AUTHORIZATIONSQL 문법 지원을 추가했어요. Presto 뷰와 Hive 뷰를 모두 지원해요(#5789). hive.dfs.replication설정 속성으로 HDFS 복제 팩터(replication factor)를 설정할 수 있게 했어요(#1829).- Hive 프로시저의 테이블에 대한 접근 검사를 추가했어요(#1489).
- 테이블·컬럼 통계를 병렬로 갱신해
INSERT와CREATE TABLE AS ...쿼리의 지연 시간을 줄였어요(#3638). - Avro 테이블을 질의할 때 S3 연결이 누수되던 문제를 고쳤어요(#5562).
Kudu 커넥터
- 동적 필터링 지원을 추가했어요.
kudu.dynamic-filtering.wait-timeout설정 속성이나dynamic_filtering_wait_timeout세션 속성에 0이 아닌 기간 값을 설정하면 활성화돼요(#5594).
MongoDB 커넥터
LIMIT절이 포함된 쿼리 성능을 개선했어요(#5870).
기타 커넥터
- PostgreSQL, MySQL, Oracle, Redshift, SQL Server 커넥터에서 크게 push down된 조건자를 압축해 쿼리 성능을 개선했어요. 압축 임계값은
domain-compaction-threshold설정 속성이나domain_compaction_threshold세션 속성으로 바꿀 수 있어요(#6057). - PostgreSQL, MySQL, SQL Server 커넥터에서 집계와 조건자 계산을 원격 데이터베이스로 push해 집계와 조건자가 포함된 특정 복잡한 쿼리의 성능을 개선했어요(#4112).
SPI
- 커넥터가 테이블 스캔 연산을 다른 커넥터로 리다이렉트할 수 있게 했어요(#5792).
- 테이블 스캔 연산에 대한 물리 입력 바이트와 행을 쿼리 완료 이벤트에 추가했어요(#5872).
더 알아보기 (Learn more)
INTERSECT ALL·EXCEPT ALL 문법과 contains_sequence() 함수는 최신 Trino SQL·함수 문서에서 확인할 수 있어요. ALTER VIEW ... SET AUTHORIZATION은 뷰 소유권 관리에 유용해요.