릴리스 364
릴리스 364 (2021년 11월 1일)
이번 릴리스에서는 ALTER MATERIALIZED VIEW ... RENAME TO ... 지원과 다양한 성능·메모리 개선이 담겼어요. 테이블 프로시저용 SPI도 추가됐어요.
출처: Trino 릴리스 364 문서
본문
일반 (General)
ALTER MATERIALIZED VIEW ... RENAME TO ...지원을 추가했어요. (#9492)- 단일 그룹화 컬럼이 있는
GROUP BY성능을 개선했어요. (#9514) - 소수 집계 성능을 개선했어요. (#9640)
WHERE·SELECT절 평가 성능을 개선했어요. (#9610)- 정밀도가 19보다 큰
decimal값의 곱을 계산할 때 성능을 개선했어요. (#9744) - 코디네이터 CPU 활용률을 개선했어요. (#8650)
unwrap_casts세션 속성과optimizer.unwrap-casts구성 옵션 지원을 제거했어요. (#9550)- 중첩 조인과
IS NOT DISTINCT FROM조인 절이 있는 쿼리의 잘못된 결과를 고쳤어요. (#9805) EXPLAIN ANALYZE에서 문자 타입 동적 필터 값 표시 문제를 고쳤어요. (#9673)- UPDATE 작업에 상관 서브쿼리가 있으면 쿼리가 실패하던 문제를 고쳤어요. (#8286)
- 결과가
-1과0사이일 때 소수 나눗셈을 고쳤어요. (#9696) - boolean 컬럼을 프로젝션하는 쿼리의
SHOW STATS실패를 고쳤어요. (#9710)
웹 UI (Web UI)
- 쿼리 히스토리에 긴 쿼리 텍스트가 있는 쿼리가 있을 때 웹 UI 반응성을 개선했어요. (#8892)
JDBC 드라이버
- 기존 Kerberos 컨텍스트의 토큰을 사용할 수 있게 했어요. 이로써 Keytab이나 자격 증명 캐시를 드라이버에 넘기지 않고도 클라이언트가 Kerberos 인증을 수행할 수 있어요. (#4826)
Cassandra 커넥터
- Cassandra
uuid타입을 Trinouuid로 매핑했어요. (#5231)
Elasticsearch 커넥터
- 문서에 지원되지 않는 타입의 필드가 있을 때 발생하던 실패를 고쳤어요. (#9552)
Hive 커넥터
- 커넥터 속성 파일에서
hive.fs.new-directory-permissions=skip으로 새 디렉터리 권한 설정을 건너뛰도록 허용했어요. (#9539) timestamp컬럼을decimal로 캐스팅하는 Hive 뷰 변환을 허용해요. (#9530)- 비트랜잭션 Hive 테이블의 작은 파일을 병합하는
optimize테이블 프로시저를 추가했어요.ALTER TABLE EXECUTE optimize(file_size_threshold => ...)구문으로 실행할 수 있어요. (#9665) - 삽입 시 파티션 덮어쓰기를 자동 커밋 컨텍스트로만 제한했어요. (#9559)
- 지원되지 않는 컬럼 타입의 컬럼에 버케팅을 요청할 때
CREATE TABLE실행을 거부하도록 했어요. 이전에는CREATE는 허용됐지만 그런 테이블에는 데이터를 넣을 수 없었어요. (#9793) - 컬럼 인덱스가 포함된 파일의 Parquet 데이터 조회 성능을 개선했어요. (#9633)
- 실험적 Parquet 라이터가 만든
char·varchar데이터를 포함한 Parquet 파일의 Hive 1·Hive 3 비호환 문제를 고쳤어요. Hive 2 이상은 이제 그런 파일을 올바르게 읽고, Hive 1.x는 여전히 읽지 못하는 것으로 알려져 있어요. (#9515, #6377) hive.target-max-file-size가 설정된 파티션 테이블에 삽입할 때 발생하던ArrayIndexOutOfBoundsException을 고쳤어요. (#9557)- 비사양(non-spec-compliant) 기본값을 가진 Avro 1.8.2로 쓴 Avro 스키마 읽기 문제를 고쳤어요. (#9243)
- 컬럼 인덱스가 켜진 상태에서 중첩 Parquet 데이터를 조회할 때 발생하던 실패를 고쳤어요. (#9587)
- Parquet 데이터 조회 시 잘못된 결과가 나오던 문제를 고쳤어요. (#9587)
- 대상 최대 파일 크기가 설정된 파티션 테이블에 쓸 때 쿼리가 실패하던 문제를 고쳤어요. (#9557)
Iceberg 커넥터
- 구체화된 뷰 이름 변경 지원을 추가했어요. (#9492)
- 더 효율적으로 읽을 수 있는 Parquet 파일을 만들도록 했어요. (#9569)
- 동적 필터링을 활용할 수 있을 때 쿼리 성능을 개선했어요. (#4115)
timestamp with time zone으로 파티셔닝된 테이블에 UTC 존 값을 반환하도록 했어요. (#9704)- 테이블에 동시 삽입하는 경우의 데이터 손실을 고쳤어요. (#9583)
timestamp with time zone이나uuid로 파티셔닝된 테이블의$partitions테이블을 읽을 때 쿼리가 실패하던 문제를 고쳤어요. (#9703, #9757)- Iceberg 테이블 통계를 읽을 때 쿼리가 실패하던 문제를 고쳤어요. (#9714)
MemSQL 커넥터
- MemSQL
datetime(6)·timestamp(6)타입을 Trinotimestamp(6)으로 읽고 쓰는 것을 지원해요. (#9725)
SQL Server 커넥터
count(*)집계를 SQL Server 데이터베이스로 프러시다운하고 테이블에 2147483647개보다 많은 행이 있을 때 쿼리가 실패하던 문제를 고쳤어요. (#9549)
SPI
- 동적 필터가 덮는 컬럼을 노출했어요. (#9644)
- 분산 방식으로 테이블 데이터를 처리할 수 있는 테이블 프로시저용 SPI를 추가했어요. 테이블 프로시저는
ALTER TABLE ... EXECUTE ...구문으로 실행할 수 있어요. (#9665)