릴리스 361
릴리스 361 (2021년 8월 27일)
이번 릴리스에서는 MATCH_RECOGNIZE·WINDOW 절의 서브쿼리 지원과 테이블 리다이렉션, OAuth2/OIDC 인증 개선이 핵심이에요.
출처: Trino 릴리스 361 문서
본문
일반 (General)
MATCH_RECOGNIZE와WINDOW절에서 서브쿼리를 지원해요. (#8736)- 구체화된 뷰에 대한 상세 정보를 담은
system.metadata.materialized_views테이블을 추가했어요. (#8796) INSERT,UPDATE,DELETE작업에 대한 테이블 리다이렉션을 지원해요. (#8683)decimal값의sum()·avg()집계 성능을 개선했어요. (#8878)- 중간~많은 수의 상수를 쓰는
IN조건 쿼리의 성능을 개선했어요. (#8833) - 식별자로 쓸 때 따옴표가 필요한 필드 이름을 가진
row컬럼에 접근하는 특정 쿼리의 실패를 고쳤어요. (#8845) varchar컬럼과char상수 사이의 비교가 포함된 쿼리의 잘못된 결과를 고쳤어요. (#8984)- 두 소수를 더할 때 잘못된 결과가 나오던 문제를 고쳤어요. 정밀도가 다른 소수가 들어간 특정 쿼리에서 발생했어요. (#8973)
- 호환되지 않는 SQL 명령으로 객체를 삭제·이름 변경하지 못하게 했어요. 예를 들어
DROP TABLE로 더 이상 뷰를 떨어뜨릴 수 없어요. (#8869)
보안 (Security)
- OAuth2/OIDC 불투명 접근 토큰(opaque access tokens)을 지원해요. 속성
http-server.authentication.oauth2.audience는 OIDC가 기대하는 대로http-server.authentication.oauth2.client-id를 쓰도록 제거했어요. 새 속성http-server.authentication.oauth2.additional-audiences는client-id가 아닌 audience를 지원해요. 또한 새 속성http-server.authentication.oauth2.issuer는 이제 필수예요. 이 URL에서 발급되지 않은 토큰은 거부돼요. (#8641)
JDBC 드라이버
PreparedStatement.getParameterMetaData()메서드를 구현했어요. (#2978)- 테이블이나 스키마 이름 패턴에 대문자 값이 포함된 컬럼 나열 문제를 고쳤어요. 이 수정은 JDBC 드라이버가 아니라 서버 쪽이에요. (#8978)
BigQuery 커넥터
- BigQuery
time타입을 쓸 때 결과가 잘못 나오던 문제를 고쳤어요. (#8999)
Cassandra 커넥터
- 파티션 컬럼에서
smallint,tinyint,date타입의 조건 프러시다운을 지원해요. (#3763) WHERE절의 클러스터링 키에 부등식 조건이 포함된 쿼리의 잘못된 결과를 고쳤어요. (#401)
ClickHouse 커넥터
metadata.cache-maximum-size구성값으로 메타데이터 캐시 크기를 제한할 수 있게 했어요. (#8652)varchar·char타입 컬럼에 적용된 집계 함수의 잘못된 결과를 고쳤어요. (#7320)
Druid 커넥터
metadata.cache-maximum-size구성값으로 메타데이터 캐시 크기를 제한할 수 있게 했어요. (#8652)
Elasticsearch 커넥터
- 필드를
json값으로 읽는 것을 지원해요. (#7308)
Hive 커넥터
- Trino·Hive 뷰용
$properties시스템 테이블을 노출했어요. (#8805) - 공통 테이블 표현식(CTE)을 포함한 Hive 뷰 변환을 지원해요. (#5977)
- 외부 괄호를 포함한 Hive 뷰 변환을 지원해요. (#8789)
from_utc_timestamp함수를 쓰는 Hive 뷰 변환을 지원해요. (#8502)date함수를 쓰는 Hive 뷰 변환을 지원해요. (#8789)pmod함수를 쓰는 Hive 뷰 변환을 지원해요. (#8935)- 컬럼 이름에 쉼표나 앞뒤 공백이 포함된 테이블 생성하지 못하게 했어요. (#8954)
- 파티션 테이블의 Glue 테이블 통계 업데이트 성능을 개선했어요. (#8839)
- 기본 Glue 통계 읽기·쓰기 병렬성을 1에서 5로 바꿨어요. (#8839)
- 컬럼 인덱스를 포함한 파일의 Parquet 데이터 조회 성능을 개선했어요. (#7349)
- 명시적으로 버켓되지 않은 Hive ACID 테이블에 데이터를 삽입할 때 쿼리가 실패하던 문제를 고쳤어요. (#8899)
Iceberg 커넥터
- 이전에 파티션 필드가 있었다가 나중에 제거된 Iceberg 테이블을 읽거나 쓰는 문제를 고쳤어요. (#8730)
- Iceberg
write.object-storage.path테이블 속성을 지정하는 Iceberg 테이블 읽기를 허용해요. (#8573) - 테이블 생성 시 무작위 위치를 사용할 수 있게 했어요. 그래서 나중의 테이블 이름 변경·삭제가 같은 이름으로 만든 새 테이블과 간섭하지 않게 돼요.
iceberg.unique-table-location구성값으로 켤 수 있어요. (#6063) - 단일 Iceberg 테이블의 여러 스냅샷에 접근하는 쿼리에 올바른 쿼리 결과를 반환하도록 했어요. (#8868)
MemSQL 커넥터
metadata.cache-maximum-size구성값으로 메타데이터 캐시 크기를 제한할 수 있게 했어요. (#8652)
MongoDB 커넥터
timestamp_objectid()함수를 추가했어요. (#8824)mongodb.socket-keep-alive구성값을 기본으로 켰어요. (#8832)
MySQL 커넥터
metadata.cache-maximum-size구성값으로 메타데이터 캐시 크기를 제한할 수 있게 했어요. (#8652)varchar·char타입 컬럼에 적용된 집계 함수의 잘못된 결과를 고쳤어요. (#7320)
Oracle 커넥터
metadata.cache-maximum-size구성값으로 메타데이터 캐시 크기를 제한할 수 있게 했어요. (#8652)
Phoenix 커넥터
metadata.cache-maximum-size구성값으로 메타데이터 캐시 크기를 제한할 수 있게 했어요. (#8652)
Pinot 커넥터
count,avg,min,max,sum,count(DISTINCT),approx_distinct에 대한 집계 프러시다운을 구현했어요. 기본으로 켜져 있고pinot.aggregation-pushdown.enabled구성값이나aggregation_pushdown_enabled카탈로그 세션 속성으로 끌 수 있어요. (#4140)pinot.controller-urls에서httpsURL을 허용해요. (#8617)- 테이블 이름 필터로
information_schema.columns를 조회할 때 발생하던 실패를 고쳤어요. (#8307)
PostgreSQL 커넥터
metadata.cache-maximum-size구성값으로 메타데이터 캐시 크기를 제한할 수 있게 했어요. (#8652)varchar·char타입 컬럼에 적용된 집계 함수의 잘못된 결과를 고쳤어요. (#7320)
Redshift 커넥터
metadata.cache-maximum-size구성값으로 메타데이터 캐시 크기를 제한할 수 있게 했어요. (#8652)
SQL Server 커넥터
metadata.cache-maximum-size구성값으로 메타데이터 캐시 크기를 제한할 수 있게 했어요. (#8652)varchar·char타입 컬럼에 적용된 집계 함수의 잘못된 결과를 고쳤어요. (#7320)