Release 0.101
Release 0.101
Trino(당시 Presto) 0.101 릴리스의 변경 사항이에요. 여러 새 함수와 일반·Hive·Web UI·SPI 개선, 그리고 일부 호환성 파괴 변경이 포함돼요.
출처: 문서
본문
일반 (General)
CREATE TABLE AS에 더해CREATE TABLE지원을 추가했어요.DROP TABLE과DROP VIEW에IF 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을 포함한 컬럼의 ORCDOUBLE통계를 수정했어요.- 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
INSERT와CREATE TABLE AS의 롤백을 위한 커넥터 콜백을 추가했어요.- 테이블의 물리적 구성을 나타내고 파티셔닝·그룹화·프레디킷·컬럼 같은 프로퍼티를 설명하는 추상화를 도입했어요.
ConnectorPartition과 관련 인터페이스는 더 이상 쓰지 않으며(deprecated) 향후 버전에서 제거될 예정이에요. ConnectorColumnHandle을ColumnHandle로 이름을 바꿨어요.
📌 참고: 이것은 이전 커넥터 SPI와 호환되지 않는 변경이에요. 커넥터를 작성했다면 이 릴리스 배포 전에 코드를 업데이트해야 해요.
더 알아보기 (Learn more)
0.101 릴리스의 변경 사항을 봤어요. 이어서 이전 버전인 Release 0.100을 살펴보면 좋아요.