릴리스 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)
  • WHERESELECT 절에서 표현식을 평가할 때 성능을 개선했어요. (#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)
  • ConnectorNewTableLayoutConnectorTableLayout로 이름을 바꿨어요. (#10587)
  • 커넥터가 더 이상 핸들 클래스를 명시적으로 선언할 필요가 없어요. ConnectorFactory.getHandleResolverConnector.getHandleResolver 메서드를 제거했어요. (#10858, #10872)
  • 불필요한 Block.writePositionToBlockBuilder.appendStructure 메서드를 제거했어요. 이 메서드들은 기존 Type.appendTowriteObject 메서드로 대체할 수 있어요. (#10602)

더 알아보기 (Learn more)