Release 0.101

Release 0.101

Trino(당시 Presto) 0.101 릴리스의 변경 사항이에요. 여러 새 함수와 일반·Hive·Web UI·SPI 개선, 그리고 일부 호환성 파괴 변경이 포함돼요.

출처: 문서

본문

일반 (General)

  • CREATE TABLE AS에 더해 CREATE TABLE 지원을 추가했어요.
  • DROP TABLEDROP VIEWIF EXISTS 지원을 추가했어요.
  • array_agg() 함수를 추가했어요.
  • array_intersect() 함수를 추가했어요.
  • array_position() 함수를 추가했어요.
  • regexp_split() 함수를 추가했어요.
  • date_diff()date_add()millisecond 지원을 추가했어요.
  • map_agg()의 과도한 메모리 사용을 수정했어요.
  • row_number()로 파티셔닝된 Top-N 연산을 수행하는 쿼리의 과도한 메모리 사용을 수정했어요.
  • ARRAY 비교 연산자를 최적화했어요.
  • 숨겨진 컬럼이 있는 테이블의 UNION 쿼리 분석을 수정했어요.
  • JOIN 결합성을 right-associative 대신 left-associative로 수정했어요.
  • System 커넥터의 runtime.queries 테이블에 source 컬럼을 추가했어요.
  • System 커넥터의 runtime.nodes 테이블에 coordinator 컬럼을 추가했어요.
  • REST API의 error 객체에 errorCode, errorName, errorType을 추가했어요(errorCode는 이전에도 있었지만 항상 0이었어요).
  • JDBC 드라이버의 DatabaseMetaData.getIdentifierQuoteString()을 수정했어요.
  • JDBC 드라이버 ResultSet의 스레드 인터럽션을 처리하도록 했어요.
  • CLI에 history 명령과 !n으로 이전 명령을 실행하는 지원을 추가했어요.
  • 차단 전에 최대한 진행하도록 Driver를 변경했어요. 일부 limit 쿼리의 응답성을 개선해요.
  • JMX 커넥터에 프레디킷 푸시다운 지원을 추가했어요.
  • 단항 PLUS 연산자 지원을 추가했어요.
  • 잠금 경합을 줄여 스케줄링 속도를 개선했어요.
  • 옵티마이저가 로컬 그룹화·정렬 같은 물리적 프로퍼티를 이해하도록 확장했어요.
  • 윈도우 함수의 스트리밍 실행 지원을 추가했어요.
  • 기반 계획이 파티셔닝되어 있으면 UNION도 파티셔닝으로 실행되게 했어요.
  • 해시 파티션을 제어하는 hash_partition_count 세션 프로퍼티를 추가했어요.

Web UI

Web UI의 메인 페이지를 ReactJS를 사용하도록 완전히 다시 작성했어요. "Z" 키와 UI의 토글로 자동 새로고침을 일시 중지하는 기능 등 여러 새 기능도 있어요.

Hive

  • EC2 인스턴스 자격 증명으로 S3에 연결하는 지원을 추가했어요. 이 기능은 기본적으로 활성화돼요. 비활성화하려면 Hive 카탈로그 프로퍼티 파일에 hive.s3.use-instance-credentials=false를 설정해요.
  • ORC 파일을 split 가능하게 처리하도록 했어요.
  • lazy seek를 사용하도록 PrestoS3FileSystem을 변경해 ORC 성능을 개선했어요.
  • NaN을 포함한 컬럼의 ORC DOUBLE 통계를 수정했어요.
  • Hive 메타데이터 새로고침 간격을 2분에서 1초로 낮췄어요.
  • 실패한 작업에 대해 Hive 메타데이터 캐시를 무효화하도록 했어요.
  • s3a 파일시스템 스킴을 지원해요.
  • 큐가 가득 찼을 때 올바르게 백오프하도록 스플릿 발견을 수정했어요.
  • 비정규(non-canonical) Parquet struct를 지원해요.
  • 이름으로 Parquet 컬럼에 접근하는 지원을 추가했어요. 기본적으로 Parquet 파일의 컬럼은 Hive 테이블 정의에서의 순서 위치(ordinal position)로 접근돼요. Parquet 파일에 기록된 이름을 기준으로 컬럼에 접근하려면 Hive 카탈로그 프로퍼티 파일에 hive.parquet.use-column-names=true를 설정해요.
  • PrestoS3FileSystem에 JMX 통계를 추가했어요.
  • 파티션 디렉토리를 재귀적으로 스캔해 데이터를 찾는 hive.recursive-directories 구성 옵션을 추가했어요.

SPI

  • INSERTCREATE TABLE AS의 롤백을 위한 커넥터 콜백을 추가했어요.
  • 테이블의 물리적 구성을 나타내고 파티셔닝·그룹화·프레디킷·컬럼 같은 프로퍼티를 설명하는 추상화를 도입했어요. ConnectorPartition과 관련 인터페이스는 더 이상 쓰지 않으며(deprecated) 향후 버전에서 제거될 예정이에요.
  • ConnectorColumnHandleColumnHandle로 이름을 바꿨어요.

📌 참고: 이것은 이전 커넥터 SPI와 호환되지 않는 변경이에요. 커넥터를 작성했다면 이 릴리스 배포 전에 코드를 업데이트해야 해요.

더 알아보기 (Learn more)

0.101 릴리스의 변경 사항을 봤어요. 이어서 이전 버전인 Release 0.100을 살펴보면 좋아요.