Release 347

Release 347 (2020년 11월 25일)

Presto 347 릴리스예요. INTERSECT ALL·EXCEPT ALL, contains_sequence() 함수, ALTER VIEW ... SET AUTHORIZATION, 최소 Java 11.0.7 요구, Kudu 동적 필터링 등이 담겼어요.

출처: Trino Release 347

본문

General

  • 뷰의 소유자를 변경하는 ALTER VIEW ... SET AUTHORIZATION 문법을 추가했어요(#5789).
  • INTERSECT ALLEXCEPT 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-joinrewrite_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 드라이버

  • PreparedStatementaddBatch(), clearBatch(), executeBatch() 메서드를 구현했어요(#5507).

CLI

  • 셸 리다이렉션으로 presto-cli에 쿼리를 제공하는 것을 지원하게 됐어요(#5881).

Docker 이미지

  • Presto Docker 이미지가 기본 이미지로 CentOS 8을 사용하도록 업데이트했어요(#5920).

Hive 커넥터

  • 뷰 소유자를 변경하는 ALTER VIEW ... SET AUTHORIZATION SQL 문법 지원을 추가했어요. Presto 뷰와 Hive 뷰를 모두 지원해요(#5789).
  • hive.dfs.replication 설정 속성으로 HDFS 복제 팩터(replication factor)를 설정할 수 있게 했어요(#1829).
  • Hive 프로시저의 테이블에 대한 접근 검사를 추가했어요(#1489).
  • 테이블·컬럼 통계를 병렬로 갱신해 INSERTCREATE 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은 뷰 소유권 관리에 유용해요.