릴리스 477
릴리스 477 (2025년 9월 24일)
Trino 477 버전이 2025년 9월 24일에 공개됐어요. Lakehouse 커넥터와 희소 벡터용 cosine_distance()를 추가하고, 테이블 브랜치와 기본 컬럼 값 지원을 담은 큰 릴리스예요.
출처: 문서
본문
일반 (General)
- Lakehouse 커넥터를 추가했어요. (#25347)
ALTER MATERIALIZED VIEW ... SET AUTHORIZATION을 지원해요. (#25910)- 테이블을 만들거나 새 컬럼을 추가할 때 기본 컬럼 값(default column values)을 지원해요. (#25679)
ALTER VIEW ... REFRESH를 지원해요. (#25906)- 테이블 브랜치(branch) 관리와 조회를 지원해요. (#25751, #26300, #26136)
- 희소 벡터(sparse vector)를 위한
cosine_distance()함수를 추가했어요. (#24027) - ⚠️ 호환성 깨짐 변경: decimal 값의 산술 연산에서 precision과 scale 추론을 개선했어요. 이전 동작은
deprecated.legacy-arithmetic-decimal-operators구성 속성을true로 설정하면 복원할 수 있어요. (#26422) - ⚠️ 호환성 깨짐 변경: 서버 바이너리 배포와 Docker 컨테이너에서 HTTP 서버 이벤트 리스너 플러그인을 제거했어요. (#25967)
- ⚠️ 호환성 깨짐 변경: 카탈로그를 모든 노드에 배포하도록 요구를 강제해요. (#26063)
- 쿼리가 쓰는 데이터 양에 대한 한도를 구성할 수 있도록
query.max-write-physical-size구성 속성과query_max_write_physical_size세션 속성을 추가했어요. (#25955) - 주어진 개체에 대한 인증 정보를 노출하는
system.metadata.tables_authorization,system.metadata.schemas_authorization,system.metadata.functions_authorization테이블을 추가했어요. (#25907) - 리소스 그룹에 물리 데이터 스캔 추적을 추가했어요. (#25003)
system.runtime.tasks테이블에internal_network_input_bytes컬럼을 추가했어요. (#26524)to_geojson_geometry()에서Geometry타입을 지원해요. (#26451)system.runtime.tasks테이블에서raw_input_bytes와raw_input_rows컬럼을 제거했어요. (#26524)- 로드에 실패한 카탈로그를
system.metadata.catalogs에 포함하지 않아요. (#26493) discovery.type구성 속성이dns로 설정됐을 때 모든 워커에 DNS 이름을 제공하는 Kubernetes류 환경의 노드 발견 구성을 단순화했어요. (#26119)row_number(),rank(),dense_rank(),ORDER BY ... LIMIT가 포함된 특정 쿼리의 메모리 사용량을 개선했어요. (#25946)GROUP BY가 포함된 쿼리의 메모리 사용량을 개선했어요. (#25879)DISTINCT또는ORDER BY절이 포함된 집계가 있는 쿼리의 필요 메모리를 줄였어요. (#26276)- 노드 수가 적은 클러스터에서 단순 쿼리의 성능을 개선했어요. (#26525)
- 느린 데이터 소스에 쿼리할 때, 그리고 쿼리가 조기 종료되거나 취소될 때 클러스터 안정성을 개선했어요. (#26602)
- 스필(spill) 시 조인과 집계의 신뢰성을 개선했어요. (#25892, #25976)
GROUP BY가 포함된 쿼리에서 스필 파일이 정리되도록 보장해요. (#26141)- 조인이 포함된 쿼리의 메모리 부족(out-of-memory) 오류를 줄였어요. (#26142)
- 스필이 활성화됐을 때
GROUP BY가 포함된 쿼리의 잘못된 결과를 고쳤어요. (#25892) GROUP BY AUTO에서 다른 표현식에 집계가 있을 때 실패하던 걸 고쳤어요. (#25987)ST_Contains(),ST_Intersects(),ST_Distance()함수를 쓰는 조인이 포함된 쿼리의 잘못된 결과를 고쳤어요. (#26021)- 클라이언트 spooling 프로토콜이 활성화됐을 때 메모리 부족 실패를 고쳤어요. (#25999)
ORDER BY절이 포함된 집계가 있는GROUP BY쿼리를 실행할 때 JVM 메모리 부족 오류로 워커가 크래시하던 걸 고쳤어요. (#26276)SET SESSION AUTHORIZATION을 통해 그룹으로 접근이 부여됐을 때 grant가 잘못 무시되던 걸 고쳤어요. (#26344)- 타일이 전체 지오메트리 영역을 덮지 않던
geometry_to_bing_tiles의 잘못된 결과를 고쳤어요. (#26459) ARRAY타입 안에 중첩된ROW값에 대해 집계할 때 사용된 메모리 양을 과도하게 보고하던 걸 고쳤어요. (#26405)EXPLAIN ANALYZE출력에서 물리 입력 메트릭의 회계를 개선했어요. (#26637)
웹 UI (Web UI)
- 미리보기 Web UI에 쿼리 상세 페이지를 추가했어요. (#25554)
- 미리보기 Web UI에 쿼리 JSON 페이지를 추가했어요. (#26319)
- 미리보기 Web UI에 쿼리 라이브 계획 흐름 페이지를 추가했어요. (#26392)
- 미리보기 Web UI에 쿼리 참조(references) 페이지를 추가했어요. (#26327)
- 미리보기 Web UI에 쿼리 스테이지 보기를 추가했어요. (#26440)
- 미리보기 Web UI에 쿼리 라이브 계획 흐름 페이지를 추가했어요. (#26610)
- 외부 네트워크 접근이 없는 Trino 클러스터의 UI 응답성을 개선했어요. (#26031)
CLI
- 쿼리 히스토리에서 Alt+↑ 또는 Alt+↓로 키보드 탐색을 지원해요. (#26138)
Delta Lake 커넥터
- 자격 증명 없이 GCS를 사용하는 것을 지원해요. (#25810)
s3.socket-read-timeout구성 속성의 이름을s3.socket-timeout으로 바꿨어요. (#26263)EXPLAIN ANALYZE VERBOSE출력에 파일 시스템 캐시에서 읽은 데이터에 대한 메트릭을 추가했어요. (#26342)- Alluxio 사용 시 리소스 사용률을 개선했어요. (#26121)
- 네이티브 파일 시스템 리소스를 가능한 한 빨리 해제해 리소스 사용률을 개선했어요. (#26085)
azure.multipart-write-enabled구성 옵션이true로 설정됐을 때 Azure의 쓰기 집약적 쿼리 처리량을 개선했어요. (#26225)- S3 스로틀링으로 인한 쿼리 실패를 줄였어요. (#26407)
- 비정상적으로 큰 Parquet footer를 디코딩할 때 메모리 부족 오류로 워커가 크래시하는 것을 방지했어요. (#25973)
- 오래된 버전의 PyArrow가 만든 Parquet 파일에서 읽을 때 잘못된 결과가 나오던 걸 고쳤어요. (#26058)
- 삭제 벡터(deletion vector)가 활성화됐을 때 잘못된 형태의 체크포인트 파일을 쓰던 걸 고쳤어요. (#26145)
variant컬럼에 null 값이 포함된 테이블을 읽을 때 실패하던 걸 고쳤어요. (#26016, #26184)- Parquet 파일에서
decimal숫자를 읽을 때 선언된 precision이 Parquet 메타데이터에 설명된 precision과 다르면 잘못된 결과가 나오던 걸 고쳤어요. (#26203) - 테이블이 삭제 벡터를 쓰고 파티션 경로에 특수 문자가 있으면 잘못된 결과가 나오던 걸 고쳤어요. (#26299)
Exasol 커넥터
- Exasol
hashtype타입을 지원해요. (#26512) LIMIT가 포함된 쿼리의 성능을 개선했어요. (#26592)
Hive 커넥터
- 자격 증명 없이 GCS를 사용하는 것을 지원해요. (#25810)
- Esri JSON 포맷을 사용하는 테이블 읽기를 지원해요. (#25241)
- 텍스트 파일 포맷에서
extended_boolean_literal을 지원해요. (#21156) EXPLAIN ANALYZE VERBOSE출력에 파일 시스템 캐시에서 읽은 데이터에 대한 메트릭을 추가했어요. (#26342)- Twitter Elephantbird protobuf 역직렬화를 지원해요. (#26305)
s3.socket-read-timeout구성 속성의 이름을s3.socket-timeout으로 바꿨어요. (#26263)azure.multipart-write-enabled구성 옵션이true로 설정됐을 때 Azure의 쓰기 집약적 쿼리 처리량을 개선했어요. (#26225)- S3 스로틀링으로 인한 쿼리 실패를 줄였어요. (#26407)
- 비정상적으로 큰 Parquet footer를 디코딩할 때 메모리 부족 오류로 워커가 크래시하는 것을 방지했어요. (#25973)
- Alluxio 사용 시 리소스 사용률을 개선했어요. (#26121)
- 오래된 버전의 PyArrow가 만든 Parquet 파일에서 읽을 때 잘못된 결과가 나오던 걸 고쳤어요. (#26058)
- 날짜 파티션 프로젝션의
partition_projection_format컬럼 속성을 읽는 문제를 고쳤어요. (#25642) - Parquet 파일에서
decimal숫자를 읽을 때 선언된 precision이 Parquet 메타데이터에 설명된 precision과 다르면 잘못된 결과가 나오던 걸 고쳤어요. (#26203) - 텍스트 파일이 포함된 테이블의 물리 입력 읽기 시간 메트릭을 고쳤어요. (#26612)
- 인용(quoting)과 이스케이프가 비활성화된 Hive OpenCSV 테이블 읽기를 지원해요. (#26619)
HTTP Event Listener
http-event-listener.connect-http-method구성 속성으로 사용할 HTTP 메서드를 구성하는 것을 지원해요. (#26181)
Hudi 커넥터
parquet.max-read-block-row-count구성 속성이나parquet_max_read_block_row_count세션 속성으로 Parquet 파일 읽기의 배치 크기를 구성하는 것을 지원해요. (#25981)- 자격 증명 없이 GCS를 사용하는 것을 지원해요. (#25810)
s3.socket-read-timeout구성 속성의 이름을s3.socket-timeout으로 바꿨어요. (#26263)- Alluxio 사용 시 리소스 사용률을 개선했어요. (#26121)
azure.multipart-write-enabled구성 옵션이true로 설정됐을 때 Azure의 쓰기 집약적 쿼리 처리량을 개선했어요. (#26225)- S3 스로틀링으로 인한 쿼리 실패를 줄였어요. (#26407)
- 비정상적으로 큰 Parquet footer를 디코딩할 때 메모리 부족 오류로 워커가 크래시하는 것을 방지했어요. (#25973)
- 오래된 버전의 PyArrow가 만든 Parquet 파일에서 읽을 때 잘못된 결과가 나오던 걸 고쳤어요. (#26058)
- Parquet 파일에서
decimal숫자를 읽을 때 선언된 precision이 Parquet 메타데이터에 설명된 precision과 다르면 잘못된 결과가 나오던 걸 고쳤어요. (#26203)
Iceberg 커넥터
- 독립 인증 방식으로
SIGV4를 지원해요.iceberg.rest-catalog.security구성 속성을SIGV4로 설정하면 켤 수 있어요.iceberg.rest-catalog.sigv4-enabled구성 속성은 더 이상 지원하지 않아요. (#26218) - 자격 증명 없이 GCS를 사용하는 것을 지원해요. (#25810)
compression_codec테이블 속성으로 테이블을 읽을 때 사용할 압축 코덱을 구성할 수 있어요.compression_codec세션은 더 이상 지원하지 않아요. (#25755)EXPLAIN ANALYZE VERBOSE출력에 파일 시스템 캐시에서 읽은 데이터에 대한 메트릭을 추가했어요. (#26342)s3.socket-read-timeout구성 속성의 이름을s3.socket-timeout으로 바꿨어요. (#26263)expire_snapshots프로시저의 성능을 개선했어요. (#26230)remove_orphan_files프로시저의 성능을 개선했어요. (#26326, #26438)$files메타데이터 테이블 쿼리의 성능을 개선했어요. (#25677)- task 재시도가 활성화됐을 때 Iceberg 테이블에 쓰는 성능을 개선했어요. (#26620)
remove_orphan_files프로시저의 메모리 사용량을 줄였어요. (#25847)azure.multipart-write-enabled구성 옵션이true로 설정됐을 때 Azure의 쓰기 집약적 쿼리 처리량을 개선했어요. (#26225)- S3 스로틀링으로 인한 쿼리 실패를 줄였어요. (#26407, #26432)
- 비정상적으로 큰 Parquet footer를 디코딩할 때 메모리 부족 오류로 워커가 크래시하는 것을 방지했어요. (#25973)
- Alluxio 사용 시 리소스 사용률을 개선했어요. (#26121)
- Iceberg 테이블에 쓰는 과정에서 생성되는 메타데이터 양을 줄였어요. (#15439)
REFRESH MATERIALIZED VIEW의 성능 회귀와 잠재적 쿼리 실패를 고쳤어요. (#26051)- 오래된 버전의 PyArrow가 만든 Parquet 파일에서 읽을 때 잘못된 결과가 나오던 걸 고쳤어요. (#26058)
- 최상위 파티션 컬럼에 null 값이 있을 때
optimize_manifests프로시저가 실패하던 걸 고쳤어요. (#26185) - Parquet 파일에서
decimal숫자를 읽을 때 선언된 precision이 Parquet 메타데이터에 설명된 precision과 다르면 잘못된 결과가 나오던 걸 고쳤어요. (#26203) - 파티셔닝된 테이블에서
OPTIMIZE_MANIFESTS를 실행할 때 코디네이터 메모리 부족 실패를 고쳤어요. (#26323)
Kafka Event Listener
kafka-event-listener.max-request-size구성 속성으로 최대 요청 크기를 구성하는 것을 지원해요. (#26129)kafka-event-listener.batch-size구성 속성으로 배치 크기를 구성하는 것을 지원해요. (#26129)
Memory 커넥터
- 기본 컬럼 값을 지원해요. (#25679)
ALTER VIEW ... REFRESH를 지원해요. (#25906)
MongoDB 커넥터
- 요소 타입이 다른 array 타입을 읽을 때 실패하던 걸 고쳤어요. (#26585)
MySQL Event Listener
mysql-event-listener.terminate-on-initialization-failure가 비활성화됐으면 시작 실패를 무시해요. (#26252)
OpenLineage Event Listener
- OpenLineage
trino_query_context페이셋에 사용자 식별 필드를 추가했어요. (#26074) trino_metadata페이셋에query_id필드를 추가했어요. (#26074)openlineage-event-listener.job.name-format구성 속성으로 job 페이셋 이름을 사용자 지정할 수 있어요. (#25535)
PostgreSQL 커넥터
PostGIS가public이 아닌 스키마에 설치됐을 때geometry타입을 지원해요. (#25972)
SPI
Type.getObjectValue에서ConnectorSession을 제거했어요. (#25945)- 사용하지 않는
NodeManager.getEnvironment메서드를 제거했어요. (#26096) @Experimental애노테이션을 제거했어요. (#26200)- 더 이상 사용하지 않는
ConnectorPageSource.getNextPage메서드를 제거했어요. (#26222) EventListener#splitCompleted와ConnectorMetadata.refreshMaterializedView지원을 제거했어요. (#26436, #26455)- 사용하지 않는
CatalogHandle클래스를 제거했어요. (#26520) ConnectorMetadata.beginRefreshMaterializedView와ConnectorMetadata.finishRefreshMaterializedView의 시그니처를 바꿨어요. 다른 카탈로그의 테이블 핸들은 더 이상 이 메서드에 전달되지 않아요. (#26454)NodeManager.getCurrentNode를 더 이상 사용하지 않게 하고ConnectorContext.getCurrentNode를 권장해요. (#26096)ConnectorMetadata.delegateMaterializedViewRefreshToConnector를 더 이상 사용하지 않게(deprecate) 처리했어요. (#26455)io.trino.spi.eventlistener.QueryStatistics에서totalBytes와totalRows를 제거했어요. (#26524)
더 알아보기 (Learn more)
- 이 문서의 원문: 릴리스 477
- Trino 공식 문서: https://trino.io/docs/current/