Release 331
Release 331 (2020년 3월 16일)
Presto 331 릴리스예요. BigQuery 커넥터, 동적 필터링 기본 활성화, Hive 전체 ACID 테이블 지원, 행 필터링·컬럼 마스킹 등이 담긴 큰 버전이에요.
본문
General
- 워커가 정상 종료(graceful shutdown)될 때 쿼리가 실패하지 않게 했어요(#2648).
- 비교 불가능한 함수를 가진
OR조건자가 포함된 쿼리의 조인 실패를 고쳤어요(#2861). - 분석이나 계획 중 오류가 있을 때 쿼리 완료 이벤트가 발생하도록 했어요(#2842).
ORDER BY쿼리의 메모리 회계 문제를 고쳤어요(#2612).- time zone을 가진 timestamp 값에 대한
last_day_of_month()를 고쳤어요(#2851). - 쌍이 맞지 않는 괄호가 있는 깊이 중첩된 표현식을 파싱할 때의 과도한 런타임을 고쳤어요(#2968).
- Presto에서 표현할 수 없는 날짜 리터럴을 올바르게 거부하도록 했어요(#2888).
- 중복 데이터 재셔플링을 제거해 쿼리 성능을 개선했어요(#2853).
BETWEEN이 포함된 부등식 조인의 성능을 개선했어요(#2859).- 사전 인코딩된(dictionary encoded) 데이터의 조인 성능을 개선했어요(#2862).
- 동적 필터링을 기본으로 활성화했어요(#2793).
EXPLAIN ANALYZE VERBOSE에 조인 재정렬 비용을 표시하도록 했어요(#2725).- 사용자의 그룹에 기반한 리소스 그룹 선택을 설정할 수 있게 했어요(#3023).
ALTER SCHEMA에SET AUTHORIZATION동작을 추가했어요(#2673).- BigQuery 커넥터를 추가했어요(#2532).
- 큰 prepared statement 지원을 추가했어요(#2719).
Security
- 사용하지 않는
internal-communication.jwt.enabled설정 속성을 제거했어요(#2709). - JWT 설정 속성을
http.authentication.jwt.*에서http-server.authentication.jwt.*로 이름을 바꿨어요(#2712). - 쿼리 실행, 뷰 쿼리, kill 쿼리에 대한 접근 제어 검사를 추가했어요. 파일 기반 접근 제어의 Query 규칙으로 설정할 수 있어요(#2213).
- 파일 기반 접근 제어에서 사용자에게 권한이 없는 테이블의 컬럼을 숨기도록 했어요(#2925).
JDBC 드라이버
PreparedStatement.getMetaData()를 구현했어요(#2770).
Web UI
- 워커 주소를 클립보드로 복사하는 문제를 고쳤어요(#2865).
- 쿼리 ID를 클립보드로 복사하는 문제를 고쳤어요(#2872).
- 데이터 크기 값 표시 문제를 고쳤어요(#2810).
- Presto가 프록시 뒤에 있을 때
/에서/ui/로의 리다이렉트 문제를 고쳤어요(#2908). - 준비된(prepared) 쿼리 표시 문제를 고쳤어요(#2784).
- 물리 입력 읽기 속도(physical input read rate)를 표시하도록 했어요(#2873).
- 설정된 비밀번호 인증기를 활용하는 간단한 폼 기반 인증을 추가했어요(#2755).
web-ui.enabled설정 속성으로 UI를 비활성화할 수 있게 했어요(#2755).
CLI
- 중첩 데이터 타입에서 varbinary의 포맷 문제를 고쳤어요(#2858).
--timezone파라미터를 추가했어요(#2961).
Hive 커넥터
- Hive 3.x 메타스토어를 쓸 때
information_schema테이블 읽기와 메타데이터 쿼리의 잘못된 결과를 고쳤어요(#3008). - Glue 메타스토어를 쓰고 테이블 저장 설명자(storage descriptor)에 속성이 없을 때 쿼리가 실패하던 문제를 고쳤어요(#2905).
- Hive 캐싱이 활성화되고 갱신 간격이 설정됐을 때의 교착 상태(deadlock)를 고쳤어요(#2984).
- Glue 메타스토어를 쓸 때
bucketing_version테이블 속성을 존중하도록 했어요(#2905). - Glue에서 파티션 가져오기 성능을 개선했어요(#3024).
- Glue에서 테이블·파티션을 생성하거나 갱신할 때 버킷 정렬 순서(bucket sort order) 지원을 추가했어요(#1870).
- Hive 전체 ACID(full ACID) 테이블 지원을 추가했어요(#2068, #1591, #2790).
- Parquet 파일에서 decimal 데이터를 읽을 때 파일 스키마의 정밀도·스케일이 파티션 스키마와 다르면 데이터 변환을 허용하게 했어요(#2823).
- 쿼리에 파티션 키에 대한 필터가 있어야 하도록 강제하는 옵션을 추가했어요.
hive.query-partition-filter-required설정 속성이나query_partition_filter_required세션 속성을true로 설정하면 활성화돼요(#2334). - S3에 데이터를 쓸 때 Intelligent-Tiering S3 스토리지 클래스를 선택할 수 있게 했어요.
hive.s3.storage-class설정 속성을INTELLIGENT_TIERING으로 설정하면 활성화돼요(#3032). - 보안상 이유로 Hive 시스템 스키마
sys를 숨겼어요(#3008). - 스키마 소유자를 변경하는 것을 지원하게 됐어요(#2673).
MongoDB 커넥터
- 쿼리에
real이나decimal같은 특정 데이터 타입에 대한 필터가 포함됐을 때 잘못된 결과가 나오던 문제를 고쳤어요(#1781).
기타 커넥터
- 스키마 드롭 지원을 추가했어요(#2956).
SPI
- 더 이상 쓰이지 않는
Identity생성자를 제거했어요(#2877). ConnectorIdentity에 대한 빌더(builder)를 도입하고 공개 생성자를 deprecate했어요(#2877).SystemAccessControl과ConnectorAccessControl의getRowFilter()와getColumnMask()API를 통한 행 필터링(row filtering)과 컬럼 마스킹(column masking) 지원을 추가했어요(#1480).- 프로시저 실행에 대한 접근 제어 검사를 추가했어요(#2924).
더 알아보기 (Learn more)
행 필터링·컬럼 마스킹은 이후 보안 기능의 기반이 됐어요. BigQuery 커넥터와 Hive full ACID 지원은 최신 커넥터 문서에서 자세히 확인할 수 있어요.