Release 344

Release 344 (2020년 10월 9일)

Presto 344 릴리스예요. murmur3()·from_unixtime_nanos() 함수, T-Digest 타입·함수, 파일 기반 접근 제어 개편, Hive 보안 allow-all 등이 담겼어요.

출처: Trino Release 344

본문

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.runtimequeries, 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.runtimequeries, 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 TABLESinformation_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 TABLECREATE TABLE AS를 사용할 수 있게 했어요. 결과 컬럼은 PostgreSQL이 지원하는 최대값인 정밀도 6으로 선언돼요(#5342).

SQL Server 커넥터

  • 집계와 WHERE 절이 있는 쿼리 성능을 개선했어요(#5327).

더 알아보기 (Learn more)

T-Digest 타입과 approx_percentile() 개선은 근사 집계를 이해하는 데 유용해요. 파일 기반 접근 제어의 규칙 변경은 이후에도 중요한 운영 주제니 최신 보안 문서를 참고해 보세요.