릴리스 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 SCHEMA와DROP 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)