Release 344
Release 344 (2020년 10월 9일)
Presto 344 릴리스예요. murmur3()·from_unixtime_nanos() 함수, T-Digest 타입·함수, 파일 기반 접근 제어 개편, Hive 보안 allow-all 등이 담겼어요.
본문
General
murmur3()함수를 추가했어요(#5054).from_unixtime_nanos()함수를 추가했어요(#5046).- T-Digest 타입과 함수를 추가했어요(#5158).
- 동적 필터를 활용하는 쿼리의 성능과 지연 시간을 개선했어요(#5081, #5340).
- 코디네이터에서 동적 필터를 처리하는 데 사용되는 스레드 수를 지정하는
dynamic-filtering.service-thread-count설정 속성을 추가했어요(#5341). - Secrets 환경 변수 치환을 확장해 단일 설정 속성에서 여러 번 치환할 수 있게 했어요(#4345).
fast-inequality-joins설정 속성을 제거했어요. 이 기능은 항상 활성화돼요(#5375).system.runtime의queries,transactions,tasks테이블에timestamp(3)대신 time zone이 있는timestamp(3)을 사용하도록 했어요(#5464).approx_percentile()의 성능과 정확도를 개선했어요(#5158).- 특정 크로스 조인 쿼리 성능을 개선했어요(#5276).
- 쿼리가 메모리가 부족할 때 잠재적 쿼리 교착 상태를 방지했어요(#5289).
- 정밀도가 6보다 높은 두 timestamp 타입 사이의 캐스트에서 반올림 오류로 인한 실패를 고쳤어요(#5310).
- 정밀도가 3보다 높은 두 timestamp with time zone 타입 사이의 캐스트에서 반올림 오류로 인한 실패를 고쳤어요(#5371).
EXPLAIN ANALYZE의 컬럼 프루닝을 고쳤어요(#4760).system.runtime의queries,transactions,tasks테이블이 반환하는 잘못된 타임스탬프 값을 고쳤어요(#5462).
Security
- 테이블·스키마·세션 속성 규칙이 정의되지 않았을 때 파일 기반 카탈로그 접근 제어를 거부(deny)에서 허용(allow)으로 변경했어요(#5039).
- 파일 기반 시스템 접근 제어에서 테이블·뷰 DDL에 대한 누락된 테이블 규칙 검사를 추가했어요(#5039).
- 파일 기반 시스템 접근 제어에서 스키마 생성에 대한 누락된 스키마 규칙 검사를 추가했어요(#5039).
- 파일 기반 시스템 접근 제어에 세션 속성 규칙을 추가했어요(#5039).
- 파일 기반 시스템 접근 제어의 테이블·스키마 규칙에 카탈로그 정규식을 추가했어요(#5039).
- 파일 기반 시스템 제어에서 테이블 생성·이름 변경·변경·드롭을 테이블 소유권만 검사하도록 변경했어요(#5039).
- 파일 기반 시스템 접근 제어가 카탈로그 규칙이 정의되지 않은 파일을 지원하도록 변경했어요. 이 경우 모든 카탈로그에 대한 접근이 허용돼요(#5039).
- 파일 기반 시스템·카탈로그 접근 제어가 사용자에게 권한이 있는 카탈로그·스키마·테이블만 표시하도록 변경했어요(#5039).
- 파일 기반 카탈로그 접근 제어가 권한 검사·조작을 거부하도록 변경했어요(#5039).
- 파일 기반 그룹 프로바이더(group provider)를 추가했어요(#5028).
Hive 커넥터
- 모든 인가 검사를 건너뛰는
hive.security=allow-all지원을 추가했어요(#5416). - Hudi 테이블에 대한 Kerberos 인증을 지원하게 됐어요(#5472).
- Hive 커넥터로 질의할 수 없으므로
SHOW TABLES나information_schema.tables같은 테이블 나열에서 Delta Lake 테이블을 숨길 수 있게 했어요.hive.hide-delta-lake-tables설정 속성으로 활성화할 수 있어요(#5430). - 데이터 파일을 더 효율적으로 나열해 쿼리 동시성을 개선했어요(#5260).
- 1970-01-01 이전 타임스탬프의 Parquet 인코딩을 고쳤어요(#5364).
Kafka 커넥터
- 메시지 타임스탬프를
_timestamp내부 컬럼으로 노출했어요(#4805). _timestamp,_partition_offset,_partition_id컬럼에 대한 조건자 pushdown을 추가했어요(#4805).
Phoenix 커넥터
CREATE TABLE의 컬럼 이름이 인용을 필요로 할 때 쿼리가 실패하던 문제를 고쳤어요(#3601).
PostgreSQL 커넥터
- 컬럼 주석 설정 지원을 추가했어요(#5307).
- 가변 정밀도 time 타입 지원을 추가했어요(#5342).
- 정밀도가 6보다 큰 time zone이 있거나 없는 timestamp로
CREATE TABLE과CREATE TABLE AS를 사용할 수 있게 했어요. 결과 컬럼은 PostgreSQL이 지원하는 최대값인 정밀도 6으로 선언돼요(#5342).
SQL Server 커넥터
- 집계와
WHERE절이 있는 쿼리 성능을 개선했어요(#5327).
더 알아보기 (Learn more)
T-Digest 타입과 approx_percentile() 개선은 근사 집계를 이해하는 데 유용해요. 파일 기반 접근 제어의 규칙 변경은 이후에도 중요한 운영 주제니 최신 보안 문서를 참고해 보세요.