릴리스 356

릴리스 356 (2021년 4월 30일)

이번 릴리스에서는 MATCH_RECOGNIZE 지원과 구체화된 뷰 접근 제어 강화가 핵심이에요. 여러 쿼리 성능 개선과 커넥터 버그 수정도 함께 담겼어요.

출처: Trino 릴리스 356 문서

본문

일반 (General)

  • MATCH_RECOGNIZE 지원을 추가했어요. (#6111)
  • soundex() 함수를 추가했어요. (#4022)
  • 사용 가능한 구체화된 뷰 속성을 나열하는 system.metadata.materialized_view_properties 테이블을 도입했어요. (#7615)
  • query.max-planning-time 구성값으로 최대 계획 시간을 제한하는 것을 지원해요. (#7213)
  • 클라이언트를 쿼리 정보를 가져올 대체 위치로 리다이렉트할 수 있게 했어요. query.info-url-template 구성값으로 설정할 수 있어요. (#7678)
  • 계획 단계에서 쿼리를 취소할 수 있게 했어요. (#7213)
  • LEFT JOIN에 대한 ORDER BY ... LIMIT 쿼리의 성능을 개선했어요. (#7028)
  • boolean 컬럼에 조건이 있는 쿼리의 성능을 개선했어요. (#7263)
  • IN 조건이 있는 쿼리의 계획 시간을 개선했어요. (#7556)
  • 길이가 다른 varchar 키에 조인하는 쿼리의 성능을 개선했어요. (#7644)
  • 지연 구체화(late materialization)가 켜진 상태에서 쿼리 성능을 개선했어요. (#7695)
  • 쿼리 스케줄링 시 코디네이터 네트워크 오버헤드를 줄였어요. (#7351)
  • 스필링이 켜진 상태에서 JOIN 쿼리의 교착 상태 가능성을 고쳤어요. (#7455)
  • 단일 행을 만든다고 알려진 입력과의 full outer join을 포함한 쿼리의 잘못된 결과를 고쳤어요. (#7629)
  • 계량화 비교 표현식(quantified comparison)에 스칼라 서브쿼리가 있을 때 발생하던 실패를 고쳤어요. (#7792)

보안 (Security)

  • 구체화된 뷰를 새로고침하려면 UPDATE 권한이 필요해요. (#7707)
  • 구체화된 뷰 생성·삭제 전용 접근 제어를 추가했어요. (#7645)
  • 구체화된 뷰 새로고침 전용 접근 제어를 추가했어요. 스토리지 테이블의 Insert 권한은 더 이상 필요하지 않아요. (#7707)
  • http-server.authentication.oauth2.scopes에 여러 스코프 값을 제공할 때 인증 실패가 나던 문제를 고쳤어요. (#7706)

JDBC 드라이버

  • 불필요한 인증 흐름을 피하기 위해 OAuth2 자격 증명을 메모리에 캐싱하는 것을 지원해요. (#7309)

BigQuery 커넥터

  • CREATE SCHEMADROP SCHEMA 문을 지원해요. (#7543)
  • 대소문자 무시 매칭이 켜져 있을 때 테이블 나열 성능을 개선했어요. (#7628)

Cassandra 커넥터

  • 빈 타임스탬프 값을 읽을 때 발생하던 NullPointerException을 고쳤어요. (#7433)

Hive 커넥터

  • 사전 인코딩된(dictionary-encoded) Parquet 파일을 읽을 때 성능을 개선했어요. (#7754)
  • ORC 파일에서 소문자가 아닌 이름을 가진 중첩 필드를 참조할 때 결과가 잘못 나오던 문제를 고쳤어요. (#7350)
  • ACID 테이블에서 파티션을 떨어뜨리는 대신 항상 행 단위 삭제를 쓰도록 했어요. (#7621)
  • _orc_acid_version 메타데이터 파일이 없을 때 ORC ACID 트랜잭션 테이블을 읽을 수 있게 했어요. (#7579)
  • 원래 비트랜잭션으로 만들어진 ACID 테이블에 대한 UPDATE 지원을 추가했어요. (#7622)
  • Azure ADLS 엔드포인트의 연결 프록시 지원을 추가했어요. (#7509)

Iceberg 커넥터

  • 다른 엔진이 만든 Iceberg 테이블을 SHOW TABLES 출력에 표시해요. (#1592)
  • 사전 인코딩된 Parquet 파일을 읽을 때 성능을 개선했어요. (#7754)
  • 테이블 메타데이터 캐싱으로 쿼리 계획을 개선했어요. (#7336)
  • 세션 카탈로그·스키마로 만든 구체화된 뷰를 조회할 때 발생하던 실패를 고쳤어요. (#7711)
  • SHOW TABLES 쿼리로 구체화된 뷰를 나열할 때 발생하던 문제를 고쳤어요. (#7790)

Kafka 커넥터

  • TLS 보안 프로토콜 지원을 추가했어요. (#6929)

MemSQL 커넥터

  • 메타데이터 캐싱 적중률을 개선했어요. (#7039)

MongoDB 커넥터

  • 소문자가 아닌 MongoDB 뷰 처리 문제를 고쳤어요. (#7491)

MySQL 커넥터

  • 메타데이터 캐싱 적중률을 개선했어요. (#7039)
  • 스키마 나열에서 내부 sys 스키마를 제외했어요. (#6337)

Oracle 커넥터

  • 메타데이터 캐싱 적중률을 개선했어요. (#7039)

Phoenix 커넥터

  • 메타데이터 캐싱 적중률을 개선했어요. (#7039)

PostgreSQL 커넥터

  • 메타데이터 캐싱 적중률을 개선했어요. (#7039)
  • Trino 쿼리가 취소되면 PostgreSQL 쿼리도 취소하도록 했어요. (#7306)
  • 지원이 종료된 PostgreSQL 9.5 지원을 중단했어요. (#7676)

Redshift 커넥터

  • 메타데이터 캐싱 적중률을 개선했어요. (#7039)

SQL Server 커넥터

  • 메타데이터 캐싱 적중률을 개선했어요. (#7039)
  • 대상 SQL Server 데이터베이스에서 스냅샷 격리가 비활성화됐지만 READ_COMMITTED_SNAPSHOT은 여전히 켜진 경우 쿼리가 실패하던 문제를 고쳤어요. (#7548)
  • 1583-10-14 이전의 date 값을 읽을 때 발생하던 문제를 고쳤어요. (#7634)

SPI

  • ConnectorMaterializedViewDefinition이 뷰 소유자를 제공하도록 요구해요. (#7489)
  • 구체화된 뷰 속성을 지정하는 Connector#getMaterializedViewPropertyManager를 추가했어요. (#7615)
  • 구체화된 뷰 생성·삭제 인가를 위한 ConnectorAccessControl.checkCanCreateMaterializedView()ConnectorAccessControl.checkCanDropMaterializedView()를 추가했어요. (#7645)
  • 구체화된 뷰가 다른 카탈로그·스키마의 스토리지 테이블을 반환하도록 허용해요. (#7638)
  • 구체화된 뷰 새로고침 인가를 위한 ConnectorAccessControl.checkCanRefreshMaterializedView()를 추가했어요. (#7707)

더 알아보기 (Learn more)