릴리스 369
릴리스 369 (2022년 1월 24일)
이번 릴리스에서는 태스크 수준 재시도 실험 구현, 시스템·사용자 메모리 구분 제거, 리소스 그룹 백엔드 확장이 핵심이에요.
출처: Trino 릴리스 369 문서
본문
일반 (General)
Pacific/Kanton시간대 지원을 추가했어요. (#10679)EXPLAIN ANALYZE VERBOSE에서Physical input read time을 가장 간결한 시간 단위로 표시해요. (#10576)- HTTP 이벤트 리스너의 요청 재시도 메커니즘을 세밀하게 조정했어요. (#10566)
- 리소스 그룹의 백엔드 데이터베이스로 PostgreSQL과 Oracle을 지원해요. (#9812)
- 불필요한 스필링 구성값
spill-order-by와spill-window-operator를 제거했어요. (#10591) - 클러스터 구성을 단순화하려고 시스템·사용자 메모리 구분을 제거했어요.
query.max-total-memory-per-node구성값을 제거했어요. 대신query.max-memory-per-node를 쓰세요. (#10574) double·real값을varchar타입으로 캐스팅할 때 SQL 표준에서 지정한 형식을 쓰도록 했어요. (#552)ALTER MATERIALIZED VIEW ... SET PROPERTIES지원을 추가했어요. (#9613)- 태스크 수준 재시도의 실험적 구현을 추가했어요.
retry-policy구성값이나retry_policy세션 속성을task로 설정하면 켜져요. (#9818) - 노드 간 작업을 더 균형 있게 분배해 쿼리 벽시계 시간을 개선했어요. 이전 워크로드 균형 정책은
node-scheduler.splits-balancing-policy=node로 되돌릴 수 있어요. (#10660) phased실행 정책에서 실패가 발생해 쿼리 실행이 멈추지 않도록 했어요. (#10656)- 소수 곱셈의 오버플로를 잡도록 했어요. (#10732)
max_by·min_by집계의UnsupportedOperationException을 고쳤어요. (#10599)- date를
varchar(n)타입으로 캐스팅할 때 잘못된 결과나 실패가 나오던 문제를 고쳤어요. (#552) - 로그 순환 시 로그 파일 이름 길이가 무한히 늘어나던 문제를 고쳤어요. (#10738)
보안 (Security)
http-server.authentication.oauth2.groups-field에서 OAuth2 클레임의 그룹을 추출할 수 있게 했어요. (#10262)
JDBC 드라이버
DatabaseMetaData를 쓸 때 발생하던 메모리 누수를 고쳤어요. (#10584, #10632)
BigQuery 커넥터
bigquery.case-insensitive-name-matching.cache-ttl구성 옵션을 제거했어요. 이전에는 무시되고 있었어요. (#10697)numeric·bignumeric타입 컬럼을 읽을 때 쿼리가 실패하던 문제를 고쳤어요. (#10564)
ClickHouse 커넥터
- 최소 요구 버전을 21.3으로 올렸어요. (#10703)
- 스키마 이름 변경 지원을 추가했어요. (#10558)
- 컬럼 주석 설정 지원을 추가했어요. (#10641)
- ClickHouse
ipv4·ipv6타입을 Trinoipaddress타입으로 매핑했어요. (#7098) map_string_as_varchar세션 속성으로 ClickHousefixedstring·string을 Trinovarchar로 매핑할 수 있게 했어요. (#10601)- 잘못된 결과를 피하려고
decimal타입의avg프러시다운을 비활성화했어요. (#10650) - 메타데이터 캐시가 켜진 상태에서 발생하던 가짜 오류를 고쳤어요. (#10544, #10512)
Druid 커넥터
- 메타데이터 캐시가 켜진 상태에서 발생하던 가짜 오류를 고쳤어요. (#10544, #10512)
Hive 커넥터
- ORC 파일에 Bloom 필터 쓰기 지원을 추가했어요. (#3939)
- flush_metadata_cache 시스템 프로시저로 특정 스키마·테이블·파티션의 메타데이터 캐시를 비울 수 있게 했어요. (#10385)
- Glue 카탈로그 인증에 장기 AWS Security Token Service(STS) 자격 증명을 지원해요. (#10735)
- Hive ACID 테이블 조회 시 쿼리 실패가 나면 Hive Metastore의 트랜잭션 잠금이 해제되도록 했어요. (#10401)
- Hive에서 Iceberg로의 리다이렉트가 켜지지 않았을 때 Iceberg 테이블 읽기를 금지했어요. (#8693, #10441)
- Bloom 필터가 있는 ORC 파일을 읽을 때 범위 조건을 쓰는 쿼리의 성능을 개선했어요. (#4108)
- 2GB보다 큰 Parquet 파일 쓰기를 지원해요. (#10722)
- 메타데이터 캐시가 켜진 상태에서 발생하던 가짜 오류를 고쳤어요. (#10646, #10512)
- 스키마 위치에 기존 테이블의 일부가 아닌 파일이 있을 때
DROP SCHEMA중 데이터 손실을 방지했어요. (#10485) task_writer_count> 1일 때 트랜잭션 테이블에 삽입하는 문제를 고쳤어요. (#9149)- 스트리밍이 켜진 상태에서 S3에 데이터를 쓸 때 발생할 수 있는 데이터 손상을 고쳤어요. (#10710)
Iceberg 커넥터
- Iceberg 테이블 속성을 조회할 수 있는
$properties시스템 테이블을 추가했어요. (#10480) ALTER TABLE .. EXECUTE OPTIMIZE문 지원을 추가했어요. (#10497)- 쓰기 시 Iceberg 컬럼 메트릭 모드를 존중하도록 했어요. (#9938)
- Glue 카탈로그 인증에 장기 AWS Security Token Service(STS) 자격 증명을 지원해요. (#10735)
- Bloom 필터가 있는 ORC 파일을 읽을 때 범위 조건을 쓰는 쿼리의 성능을 개선했어요. (#4108)
- Trino의 쓰기 작업 후 select 쿼리 계획 성능을 개선했어요. (#9340)
- 테이블 통계가 Iceberg 컬럼 메트릭에서 결정적으로 누적되도록 했어요. (#9716)
- 스키마 위치에 기존 테이블의 일부가 아닌 파일이 있을 때
DROP SCHEMA중 데이터 손실을 방지했어요. (#10485) - 2GB보다 큰 Parquet 파일 쓰기를 지원해요. (#10722)
- 뷰 쿼리가 같은 테이블을 여러 번 참조할 때 구체화된 뷰 새로고침을 고쳤어요. (#10570)
- 스트리밍이 켜진 상태에서 S3에 데이터를 쓸 때 발생할 수 있는 데이터 손상을 고쳤어요. (#10710)
MySQL 커넥터
- 메타데이터 캐시가 켜진 상태에서 발생하던 가짜 오류를 고쳤어요. (#10544, #10512)
Oracle 커넥터
- Oracle
date를 Trinotimestamp(0)타입으로 매핑했어요. (#10626) - 인덱스된
date컬럼의 조건 프러시다운 성능 회귀를 고쳤어요. (#10626) - 메타데이터 캐시가 켜진 상태에서 발생하던 가짜 오류를 고쳤어요. (#10544, #10512)
Phoenix 커넥터
- 메타데이터 캐시가 켜진 상태에서 발생하던 가짜 오류를 고쳤어요. (#10544, #10512)
Pinot 커넥터
- 기본 인증 지원을 추가했어요. (#9531)
PostgreSQL 커넥터
- 스키마 이름 변경 지원을 추가했어요. (#8939)
- 메타데이터 캐시가 켜진 상태에서 발생하던 가짜 오류를 고쳤어요. (#10544, #10512)
Redshift 커넥터
- 스키마 이름 변경 지원을 추가했어요. (#8939)
- 메타데이터 캐시가 켜진 상태에서 발생하던 가짜 오류를 고쳤어요. (#10544, #10512)
SingleStore (MemSQL) 커넥터
- 메타데이터 캐시가 켜진 상태에서 발생하던 가짜 오류를 고쳤어요. (#10544, #10512)
SQL Server 커넥터
- 메타데이터 캐시가 켜진 상태에서 발생하던 가짜 오류를 고쳤어요. (#10544, #10512)
SPI
ConnectorMetadata.getTableLayout()API 지원을 제거했어요. (#781)