Release 340

Release 340 (2020년 8월 8일)

Presto 340 릴리스예요. 재귀 쿼리의 실험적 지원, LIMIT·OFFSET·FETCH FIRST의 쿼리 파라미터, 여러 비트 연산 함수, Hive 트랜잭션 테이블 생성 등이 담겼어요.

출처: Trino Release 340

본문

General

  • LIMIT, OFFSET, FETCH FIRST 절에서 쿼리 파라미터(query parameters) 지원을 추가했어요(#4529, #4601).
  • 재귀 쿼리(recursive queries)의 실험적 지원을 추가했어요(#4250).
  • bitwise_left_shift(), bitwise_right_shift(), bitwise_right_shift_arithmetic()을 추가했어요(#740).
  • luhn_check()를 추가했어요(#4011).
  • ALTER TABLEIF EXISTSIF NOT EXISTS 문법을 추가했어요(#4651).
  • 페이지 전송 오류의 오류 정보에 원격 호스트를 포함시켰어요(#4511).
  • 동적 파티션 프루닝의 최소 지연 시간을 개선했어요(#4388).
  • 더 이상 데이터가 필요 없는 쿼리 스테이지를 취소해 클러스터 부하를 줄였어요(#4290).
  • VARCHARCHAR 타입의 보유 크기(retained size) 추정을 개선해 쿼리 메모리 사용을 줄였어요(#4123).
  • starts_with()가 포함된 쿼리 성능을 개선했어요(#4669).
  • DECIMAL 데이터 타입을 사용하는 쿼리 성능을 개선했어요(#4730).
  • GROUP BY 절에 중복 표현식이 포함됐을 때 실패하던 문제를 고쳤어요(#4609).
  • 쿼리 계획 중 잠재적 멈춤(hang)을 고쳤어요(#4635).

Security

  • CREATE TABLE LIKE를 통한 테이블 스키마의 비권한 접근(unauthorized access)을 고쳤어요(#4472).

JDBC 드라이버

  • 1582-10-15 이전 날짜 처리 문제를 고쳤어요(#4563).
  • 1900-01-01 이전 타임스탬프 처리 문제를 고쳤어요(#4563).

Elasticsearch 커넥터

  • 인덱스 매핑(mapping)이 없을 때 실패하던 문제를 고쳤어요(#4535).

Hive 커넥터

  • 스키마의 위치가 유효하지 않을 때 external_location으로 테이블을 생성할 수 있게 했어요(#4069).
  • 비트랜잭션으로 생성됐다가 나중에 트랜잭션으로 변환된 테이블에 대한 읽기 지원을 추가했어요(#2293).
  • 트랜잭션 테이블 생성을 허용하게 됐어요. 트랜잭션 테이블에 대한 쓰기는 아직 지원되지 않는다는 점에 주의하세요(#4516).
  • Glue 메타스토어에 접근할 때 수행되는 재시도 횟수를 위한 hive.metastore.glue.max-error-retries 설정 속성을 추가했어요(#4611).
  • Thrift 메타스토어 TLS 설정에 Java KeyStore 파일을 사용할 수 있게 했어요(#4432).
  • Hive 메타스토어 캐시의 적중률(hit rate) 통계를 JMX로 노출했어요(#4458).
  • 큰 파일이 있고 skip.header.line.count 속성이 1로 설정된 테이블을 질의할 때 성능을 개선했어요(#4513).
  • JSON 테이블 읽기 성능을 개선했어요(#4705).
  • S3 데이터 위치에 _$folder$ 마커 객체가 포함됐을 때 쿼리가 실패하던 문제를 고쳤어요(#4552).
  • 테이블과 파티션 메타데이터가 다를 때 ROW 타입의 중첩 필드를 참조하면 실패하던 문제를 고쳤어요(#3967).

Kafka 커넥터

  • Raw 데이터 형식 insert 지원을 추가했어요(#4417).
  • JSON insert 지원을 추가했어요(#4477).
  • 사용하지 않는 kafka.connect-timeout 설정 속성을 제거했어요(#4664).

MongoDB 커넥터

  • 풀링된 연결의 최대 유휴 시간을 제한하는 mongodb.max-connection-idle-time 속성을 추가했어요(#4483).

Phoenix 커넥터

  • 테이블을 생성할 때 데이터 블록 인코딩을 지정하는 테이블 수준 속성을 추가했어요(#4617).
  • 스키마를 나열할 때 쿼리가 실패하던 문제를 고쳤어요(#4560).

PostgreSQL 커넥터

  • 상수 표현식에 대한 count() 집계를 push down하도록 했어요. 예를 들어 SELECT count(1)(#4362).

SPI

  • 쿼리 이벤트 리스너에 쿼리 타입에 대한 정보를 노출했어요(#4592).
  • ConnectorMetadata.applyLimit() 메서드를 통한 TopN pushdown 지원을 추가했어요(#4249).
  • 구버전의 ConnectorSplitManager.getSplits() 변형들을 deprecate했어요(#4508).

더 알아보기 (Learn more)

재귀 쿼리와 LIMIT·OFFSET·FETCH FIRST의 파라미터는 최신 Trino SQL 문서에서 확인할 수 있어요. 비트 연산 함수와 luhn_check()도 함수 문서에서 자세히 봐 두면 좋아요.