릴리스 370
릴리스 370 (2022년 2월 3일)
이번 릴리스에서는 map·row 타입과 표현식 평가 성능이 개선됐고, 여러 커넥터의 allow-drop-table 구성 제거가 이뤄졌어요. OAuth 2.0 인증 지연 시간도 줄었어요.
출처: Trino 릴리스 370 문서
본문
일반 (General)
ALTER TABLE...SET PROPERTIES...에서DEFAULT키워드를 지원해요. (#10331)- map과 row 타입의 성능을 개선했어요. (#10469)
WHERE와SELECT절에서 표현식을 평가할 때 성능을 개선했어요. (#10322)- 다중 조인 쿼리에서 동적 필터와 함께
phased실행 정책을 쓸 때 쿼리가 교착 상태(deadlock)에 빠지지 않도록 했어요. (#10868) - Trino 360에서 도입돼 코디네이터가 워커에 스플릿을 할당할 때 느려지던 쿼리 스케줄링 회귀(regression)를 고쳤어요. (#10839)
IS NOT NULL조건을 쓸 때information_schema쿼리가 실패하던 문제를 고쳤어요. (#10861)- 중첩된 서브쿼리에
TABLESAMPLE절이 있을 때 발생하던 실패를 고쳤어요. (#10764)
보안 (Security)
- 성공한 OAuth 2.0 인증의 지연 시간을 줄였어요. (#10929)
- JWT와 OAuth 2.0 인증을 함께 사용할 때(
http-server.authentication.type=jwt,oauth2) 서버 시작이 실패하던 문제를 고쳤어요. (#10811)
CLI
- ARM64 프로세서를 지원해요. (#10177)
--external-authentication-redirect-handler매개변수로 외부 인증을 처리하는 방식을 선택할 수 있게 했어요. (#10248)
RPM 패키지
- 운영체제의 열린 파일 개수(open file count)가 너무 낮게 설정됐을 때 실패하던 문제를 고쳤어요. (#8819)
Docker 이미지
- CentOS 8이 지원 종료됨에 따라 기본 이미지를
registry.access.redhat.com/ubi8/ubi로 바꿨어요. (#10866)
Cassandra 커넥터
uuid파티션 컬럼에 조건을 프러시다운할 때 쿼리가 실패하던 문제를 고쳤어요. (#10799)
ClickHouse 커넥터
- Trino
timestamp(0)타입 컬럼으로 테이블을 만드는 것을 지원해요. - 지원 중단된 드라이버를 피하기 위해 20.7 미만 버전의 ClickHouse 서버 지원을 중단했어요. 구버전 서버에 연결할 땐
clickhouse.legacy-driver플래그로 지원 중단된 드라이버를 계속 쓸 수 있어요. (#10541) - 기존
allow-drop-table구성값을 제거했어요. 기본값이false라 테이블 삭제는 막았지만 다른 변경은 허용됐었어요. 필요하면 대신 System 접근 제어를 쓰세요. (#588)
Druid 커넥터
- 기존
allow-drop-table구성값을 제거했어요. 기본값이false라 테이블 삭제는 막았지만 다른 변경은 허용됐었어요. 필요하면 대신 System 접근 제어를 쓰세요. (#588)
Hive 커넥터
- ORC 데이터를 읽을 때 쿼리 성능을 개선했어요. (#10575)
- 쓰기에 자동 커밋을 요구하는
hive.single-statement-writes구성값을 추가했어요. 다중 문장 쓰기 트랜잭션을 금지하는 데 쓸 수 있어요. (#10820) - AWS Glue 카탈로그를 metastore로 쓰는 넓은 테이블 작업 시 드물게
Partition no longer exists쿼리 실패가 나던 문제를 고쳤어요. (#10696) hive.hide-delta-lake-tables가 켜져 있고 Glue metastore가 속성이 없는 테이블을 참조할 때SHOW TABLES가 실패하던 문제를 고쳤어요. (#10864)
Iceberg 커넥터
- 파티셔닝 진화(partitioning evolution)를 겪은 테이블을 읽을 때 쿼리가 실패하던 문제를 고쳤어요. (#10770)
- Parquet 파일을 쓸 때 발생하던 데이터 손상을 고쳤어요. (#9749)
MySQL 커넥터
- 기존
allow-drop-table구성값을 제거했어요. 기본값이false라 테이블 삭제는 막았지만 다른 변경은 허용됐었어요. 필요하면 대신 System 접근 제어를 쓰세요. (#588)
Oracle 커넥터
- 기존
allow-drop-table구성값을 제거했어요. 기본값이false라 테이블 삭제는 막았지만 다른 변경은 허용됐었어요. 필요하면 대신 System 접근 제어를 쓰세요. (#588)
Phoenix 커넥터
date값이1899-12-31보다 이전이거나 같을 때 결과가 잘못 나오던 문제를 고쳤어요. (#10749)
PostgreSQL 커넥터
- 기존
allow-drop-table구성값을 제거했어요. 기본값이false라 테이블 삭제는 막았지만 다른 변경은 허용됐었어요. 필요하면 대신 System 접근 제어를 쓰세요. (#588)
Redshift 커넥터
- 기존
allow-drop-table구성값을 제거했어요. 기본값이false라 테이블 삭제는 막았지만 다른 변경은 허용됐었어요. 필요하면 대신 System 접근 제어를 쓰세요. (#588)
SingleStore (MemSQL) 커넥터
- 기존
allow-drop-table구성값을 제거했어요. 기본값이false라 테이블 삭제는 막았지만 다른 변경은 허용됐었어요. 필요하면 대신 System 접근 제어를 쓰세요. (#588)
SQL Server 커넥터
- 기존
allow-drop-table구성값을 제거했어요. 기본값이false라 테이블 삭제는 막았지만 다른 변경은 허용됐었어요. 필요하면 대신 System 접근 제어를 쓰세요. (#588)
SPI
ConnetorMetadata#setTableProperties에서 null 속성 이름을 허용해요. (#10331)ConnectorNewTableLayout을ConnectorTableLayout로 이름을 바꿨어요. (#10587)- 커넥터가 더 이상 핸들 클래스를 명시적으로 선언할 필요가 없어요.
ConnectorFactory.getHandleResolver와Connector.getHandleResolver메서드를 제거했어요. (#10858, #10872) - 불필요한
Block.writePositionTo와BlockBuilder.appendStructure메서드를 제거했어요. 이 메서드들은 기존Type.appendTo나writeObject메서드로 대체할 수 있어요. (#10602)