릴리스 361

릴리스 361 (2021년 8월 27일)

이번 릴리스에서는 MATCH_RECOGNIZE·WINDOW 절의 서브쿼리 지원과 테이블 리다이렉션, OAuth2/OIDC 인증 개선이 핵심이에요.

출처: Trino 릴리스 361 문서

본문

일반 (General)

  • MATCH_RECOGNIZEWINDOW 절에서 서브쿼리를 지원해요. (#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-audiencesclient-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에서 https URL을 허용해요. (#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)

더 알아보기 (Learn more)