Release 332
Release 332 (2020년 4월 8일)
Presto 332 릴리스예요. 여러 이벤트 리스너 구성, CREATE SCHEMA ... AUTHORIZATION, 실험적 파일 시스템 캐싱, 유연한 S3 보안 매핑 등이 담겼어요.
본문
General
- 여러 조인이 포함된 특정 쿼리의 계획 단계 실패를 고쳤어요(#3149).
- 정밀도가 18보다 큰 decimal 값에 대한 큰
IN조건자가 포함된 쿼리의 실행 실패를 고쳤어요(#3191). - 특정 중첩 별칭(aliases)이나
TABLESAMPLE절이 포함된 쿼리의 prepared statement·뷰 생성 문제를 고쳤어요(#3250). - 드문 쿼리 실패를 고쳤어요(#2981).
etc/event-listener.properties나etc/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-join을optimizer.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 보안 기능을 이해하는 데 중요해요.