Release 332

Release 332 (2020년 4월 8일)

Presto 332 릴리스예요. 여러 이벤트 리스너 구성, CREATE SCHEMA ... AUTHORIZATION, 실험적 파일 시스템 캐싱, 유연한 S3 보안 매핑 등이 담겼어요.

출처: Trino Release 332

본문

General

  • 여러 조인이 포함된 특정 쿼리의 계획 단계 실패를 고쳤어요(#3149).
  • 정밀도가 18보다 큰 decimal 값에 대한 큰 IN 조건자가 포함된 쿼리의 실행 실패를 고쳤어요(#3191).
  • 특정 중첩 별칭(aliases)이나 TABLESAMPLE 절이 포함된 쿼리의 prepared statement·뷰 생성 문제를 고쳤어요(#3250).
  • 드문 쿼리 실패를 고쳤어요(#2981).
  • etc/event-listener.propertiesetc/group-provider.properties 같은 설정 파일을 로드할 때 뒤쪽 공백(trailing whitespace)을 무시하도록 했어요. etc/config.properties와 카탈로그 속성 파일의 뒤쪽 공백은 이미 무시되고 있었어요(#3231).
  • 내부 통신 요청의 오버헤드를 줄였어요(#3215).
  • EXPLAIN (TYPE IO) 출력에 모든 테이블 컬럼에 대한 필터를 포함시켰어요(#2743).
  • 여러 이벤트 리스너를 설정할 수 있게 했어요. 모든 이벤트 리스너의 속성 파일은 event-listener.config-files 설정 속성으로 지정할 수 있어요(#3128).
  • 지정된 소유자로 스키마를 생성하는 CREATE SCHEMA ... AUTHORIZATION 문법을 추가했어요(#3066).
  • 부분 집계를 내부 조인을 통해 push하는 것을 제어하는 optimizer.push-partial-aggregation-through-join 설정 속성을 추가했어요. 이전에는 push_partial_aggregation_through_join 세션 속성으로만 가능했어요(#3205).
  • 설정 속성 optimizer.push-aggregation-through-joinoptimizer.push-aggregation-through-outer-join으로 이름을 바꿨어요(#3205).
  • 동적 필터가 적용된 채 처리된 split 수에 대한 연산자 통계를 추가했어요(#3217).

Security

  • 사용자가 여러 그룹에 속할 때 LDAP 인증 문제를 고쳤어요(#3206).
  • SHOW STATS 실행 시 테이블 컬럼 접근을 검증하도록 했어요(#2665).
  • information_schema.views에서 사용자가 접근할 수 있는 뷰만 반환하도록 했어요(#3290).

JDBC 드라이버

  • 클라이언트에 대한 추가 정보를 설정하는 clientInfo 속성을 추가했어요(#3188).
  • 시스템 간 요청을 연관시키는 추적 토큰을 설정하는 traceToken 속성을 추가했어요(#3188).

BigQuery 커넥터

  • 환경을 보기 전에 서비스 계정에서 상위 프로젝트 ID를 추출하도록 했어요(#3131).

Elasticsearch 커넥터

  • ip 타입 지원을 추가했어요(#3347).
  • 숫자 값을 가진 keyword 필드 지원을 추가했어요(#3381).
  • 불필요한 elasticsearch.aws.use-instance-credentials 설정 속성을 제거했어요(#3265).

Hive 커넥터

  • 2GB보다 큰 특정 Parquet 파일 읽기 실패를 고쳤어요(#2730).
  • gzip 압축 Parquet 데이터 읽기 성능을 개선했어요(#3175).
  • Delta Lake 테이블에서 읽는 것을 명시적으로 금지했어요. 이전에는 파티션된 테이블을 읽으면 0행이 반환되고, 파티션되지 않은 테이블을 읽으면 난해한 오류로 실패했어요(#3366).
  • Presto가 만드는 새 디렉터리의 권한을 설정하는 hive.fs.new-directory-permissions 설정 속성을 추가했어요. 기본값은 0777로 이전 동작에 해당해요(#3126).
  • 테이블·파티션 스키마의 컬럼을 이름으로 매칭할 수 있게 하는 hive.partition-use-column-names 설정 속성과 그에 대응하는 partition_use_column_names 카탈로그 세션 속성을 추가했어요. 기본적으로는 인덱스로 매핑돼요(#2933).
  • 지정된 소유자로 스키마를 생성하는 CREATE SCHEMA ... AUTHORIZATION 지원을 추가했어요(#3066).
  • hive.metastore.glue.endpoint-url 설정 속성으로 Glue 메타스토어 엔드포인트 URL을 지정할 수 있게 했어요(#3239).
  • 실험적 파일 시스템 캐싱을 추가했어요. hive.cache.enabled 설정 속성으로 활성화할 수 있어요(#2679).
  • 더 새로운 버전의 LZO로 압축된 파일 읽기를 지원하게 됐어요(#3209).
  • Alluxio Catalog Service 지원을 추가했어요(#2116).
  • 불필요한 hive.metastore.glue.use-instance-credentials 설정 속성을 제거했어요(#3265).
  • 불필요한 hive.s3.use-instance-credentials 설정 속성을 제거했어요(#3265).
  • 특정 사용자나 버킷/경로에 대해 별도의 자격 증명이나 IAM 역할을 쓸 수 있는 유연한 S3 보안 매핑을 추가했어요(#3265).
  • hive.metastore.glue.external-id 설정 속성으로 IAM 역할 신뢰 정책의 External ID를 지정할 수 있게 했어요(#3144).
  • IAM 역할과 함께 설정된 S3 자격 증명을 사용할 수 있게 했어요. 이전에는 설정된 IAM 역할이 조용히 무시됐어요(#3351).

Kudu 커넥터

  • Kudu 커넥터의 잘못된 컬럼 매핑을 고쳤어요(#3170, #2963).
  • OR과 함께 쓰인 IS NULL 조건자가 포함된 특정 쿼리의 잘못된 결과를 고쳤어요(#3274).

Memory 커넥터

  • JDBC 드라이버에 반환되는 테이블 목록에 뷰를 포함시켰어요(#3208).

MongoDB 커넥터

  • ObjectId에서 타임스탬프를 추출하는 objectid_timestamp를 추가했어요(#3089).
  • _schema에만 존재하는 테이블에 DROP TABLE을 실행할 때 _schema 컬렉션에서 문서를 삭제하도록 했어요(#3234).

SQL Server 커넥터

  • 스키마 간 테이블 이름 변경을 금지했어요. 이전에는 이런 이름 변경이 허용됐지만 이름 변경 시 스키마 이름이 무시됐어요(#3284).

SPI

  • QueryCompletedEvent에 행 필터와 컬럼 마스크를 노출했어요(#3183).
  • QueryCompletedEvent에 참조된 함수·프로시저를 노출했어요(#3246).
  • 커넥터가 EventListener 인스턴스를 제공할 수 있게 했어요(#3166).
  • dynamicFilter 파라미터가 없는 ConnectorPageSourceProvider.createPageSource() 변형을 deprecate했어요. 이 메서드는 향후 릴리스에서 제거될 예정이에요(#3255).

더 알아보기 (Learn more)

여러 이벤트 리스너와 실험적 파일 캐싱은 최신 Trino 문서에서 자세히 확인할 수 있어요. 유연한 S3 보안 매핑은 Hive 커넥터의 S3 보안 기능을 이해하는 데 중요해요.