릴리스 423

릴리스 423 (2023년 8월 10일)

Trino 423 버전이 2023년 8월 10일에 공개됐어요. 중첩 필드 이름 변경·타입 설정 같은 컬럼 관련 기능과 함께, 여러 커넥터에서 쓰기 성능과 파일 처리 동작을 다듬었어요.

출처: 문서

본문

일반 (General)

  • RENAME COLUMN으로 컬럼의 중첩 필드 이름을 바꾸는 것을 지원해요. (#16757)
  • SET DATA TYPE으로 컬럼의 중첩 필드 타입을 설정하는 것을 지원해요. (#16959)
  • 구체화된 뷰(materialized view) 컬럼에 주석을 다는 것을 지원해요. (#18016)
  • 문자열 리터럴에서 모든 Unicode 문자를 표시하는 것을 지원해요. (#5061)
  • INSERTCREATE TABLE AS ... SELECT 쿼리의 성능을 개선했어요. (#18212)
  • 여러 window 함수를 포함한 쿼리를 계획할 때 성능을 개선했어요. (#18491)
  • BETWEEN 절이 포함된 쿼리의 성능을 개선했어요. (#18501)
  • 뷰나 WITH 절에 중복된 ORDER BY 절이 있는 쿼리의 성능을 개선했어요. 이 변경은 구현별 동작에 잘못 의존하는 쿼리의 의미에 영향을 줄 수 있어요. 이전 동작은 skip_redundant_sort 세션 속성이나 optimizer.skip-redundant-sort 구성 속성으로 되돌릴 수 있어요. (#18159)
  • 데이터를 쓰는 쿼리의 메모리 요구량을 줄이기 위해 task.partitioned-writer-counttask.scale-writers.max-writer-count 구성 속성의 기본값을 낮췄어요. (#18488)
  • optimizer.mark-distinct-strategy로 대체된, 더 이상 사용하지 않는 optimizer.use-mark-distinct 구성 속성을 제거했어요. (#18540)
  • fault-tolerant 실행 모드에서 동적 필터로 인한 쿼리 계획 실패를 고쳤어요. (#18383)
  • WHERE ... IN (NULL)이 포함된 쿼리에서 EXPLAIN이 실패하던 걸 고쳤어요. (#18328)

JDBC 드라이버

  • Kerberos로 제한된 위임(constrained delegation)을 지원해요. (#17853)

CLI

  • 커맨드라인 인자를 넘기는 대신 파라미터가 포함된 단일 Trino JDBC URL을 받아들이는 것을 지원해요. (#12587)

ClickHouse 커넥터

  • DROP SCHEMA 문에서 CASCADE 옵션을 지원해요. (#18305)

Blackhole 커넥터

  • COMMENT ON VIEW 문을 지원해요. (#18516)

Delta Lake 커넥터

  • Delta Lake 테이블 속성을 조사할 수 있는 $properties 시스템 테이블을 추가했어요. (#17294)
  • timestamp_ntz 타입 읽기를 지원해요. (#17502)
  • 파티션 컬럼에 timestamp with time zone 타입 쓰기를 지원해요. (#16822)
  • 쿼리 처리 시 파티션 키에 대한 필터가 반드시 존재하도록 강제하는 옵션을 추가했어요. delta.query-partition-filter-required 구성 속성이나 query_partition_filter_required 세션 속성을 true로 설정하면 켤 수 있어요. (#18345)
  • $history 시스템 테이블의 성능을 개선했어요. (#18427)
  • Parquet writer의 메모리 회계를 개선했어요. (#18564)
  • identity 컬럼이 있는 Delta Lake 테이블의 메타데이터 변경을 허용해요. (#18200)
  • OPTIMIZE 과정에서 구성된 file_size_threshold보다 작은 파일을 잘못 만들던 걸 고쳤어요. (#18388)
  • 테이블에 위치가 공백으로 끝나는 파일이 있을 때 쿼리가 실패하던 걸 고쳤어요. (#18206)

Hive 커넥터

  • 컬럼 타입을 varchar에서 timestamp로 바꾸는 것을 지원해요. (#18014)
  • Parquet writer의 메모리 회계를 개선했어요. (#18564)
  • 레거시 Parquet writer와 함께 parquet.optimized-writer.enabled 구성 속성, parquet_optimized_writer_enabled 세션 속성을 제거했어요. parquet.optimized-writer.validation-percentage 구성 속성을 parquet.writer.validation-percentage로 대체했어요. (#18420)
  • 1900년 이전 날짜에 대해 Hive timestamp 타입을 varchar로 강제 변환하는 것을 허용하지 않아요. (#18004)
  • Hive timestamp 값을 강제 변환할 때 데이터 정밀도가 손실되던 걸 고쳤어요. (#18003)
  • OPTIMIZE 과정에서 구성된 file_size_threshold보다 작은 파일을 잘못 만들던 걸 고쳤어요. (#18388)
  • 테이블에 위치가 공백으로 끝나는 파일이 있을 때 쿼리가 실패하던 걸 고쳤어요. (#18206)
  • S3 Select를 쓰면서 쿼리 조건자에 인용 문자(")나 decimal 컬럼이 포함됐을 때 잘못된 결과가 나오던 걸 고쳤어요. (#17775)
  • TEXTFILE 테이블에 S3 Select pushdown을 켜는 hive.s3select-pushdown.experimental-textfile-pushdown-enabled 구성 속성을 추가했어요. (#17775)

Hudi 커넥터

  • 테이블에 위치가 공백으로 끝나는 파일이 있을 때 쿼리가 실패하던 걸 고쳤어요. (#18206)

Iceberg 커넥터

  • RENAME COLUMN으로 컬럼의 중첩 필드 이름을 바꾸는 것을 지원해요. (#16757)
  • SET DATA TYPE으로 컬럼의 중첩 필드 타입을 설정하는 것을 지원해요. (#16959)
  • 구체화된 뷰 컬럼에 주석을 다는 것을 지원해요. (#18016)
  • migrate 프로시저에서 tinyintsmallint 타입을 지원해요. (#17946)
  • 밀리초 정밀도로 저장된 시간이 있는 Parquet 파일 읽기를 지원해요. (#18535)
  • AWS Glue를 metastore로 쓸 때 Trino가 관리하는 테이블의 information_schema.columns 쿼리 성능을 개선했어요. (#18315)
  • AWS Glue를 metastore로 쓰는 Iceberg 테이블을 조회할 때 system.metadata.table_comments 성능을 개선했어요. (#18517)
  • Glue 카탈로그를 쓸 때 information_schema.columns 성능을 개선했어요. (#18586)
  • Parquet writer의 메모리 회계를 개선했어요. (#18564)
  • OPTIMIZE 과정에서 구성된 file_size_threshold보다 작은 파일을 잘못 만들던 걸 고쳤어요. (#18388)
  • 테이블에 위치가 공백으로 끝나는 파일이 있을 때 쿼리가 실패하던 걸 고쳤어요. (#18206)
  • 롤백된 테이블에 구체화된 뷰를 만들 때 실패하던 걸 고쳤어요. (#18205)
  • nullable time 컬럼이 있는 ORC 파일을 읽을 때 쿼리가 실패하던 걸 고쳤어요. (#15606)
  • WHERE 절의 일부로 $path를 참조할 때 쿼리 통계를 계산하지 못하던 걸 고쳤어요. (#18330)
  • UPDATE, DELETE, MERGE 연산의 쓰기 충돌 감지를 고쳤어요. 드물게 여러 연산이 동시에, 또는 optimize 프로시저와 동시에 실행될 때 중복 행이 발생할 수 있었어요. (#18533)

Kafka 커넥터

  • kafka.empty-field-strategy 구성 속성과 empty_field_strategy 세션 속성의 ADD_DUMMY 값을 MARK로 이름을 바꿨어요 (#18485).

Kudu 커넥터

  • 스플릿의 최적화된 로컬 스케줄링을 지원해요. (#18121)

MariaDB 커넥터

  • DROP SCHEMA 문에서 CASCADE 옵션을 지원해요. (#18305)

MongoDB 커넥터

  • chardecimal 타입에 대한 조건자 pushdown을 지원해요. (#18382)

MySQL 커넥터

  • 대소문자를 구분하는 varcharnvarchar 컬럼에서 =, <>, IN, NOT IN, LIKE 연산자의 조건자 pushdown을 지원해요. (#18140, #18441)
  • DROP SCHEMA 문에서 CASCADE 옵션을 지원해요. (#18305)

Oracle 커넥터

  • 밀리초가 아닌 정밀도의 Oracle timestamp 타입을 지원해요. (#17934)
  • DROP SCHEMA 문에서 CASCADE 옵션을 지원해요. (#18305)

SingleStore 커넥터

  • DROP SCHEMA 문에서 CASCADE 옵션을 지원해요. (#18305)

SPI

  • ConnectorMetadata.getTableHandle(ConnectorSession, SchemaTableName) 메서드 시그니처를 더 이상 사용하지 않게(deprecate) 했어요. 커넥터는 ConnectorMetadata.getTableHandle(ConnectorSession, SchemaTableName, Optional, Optional)을 구현해야 해요. (#18596)
  • ConnectorMetadata에서 더 이상 사용하지 않는 supportsReportingWrittenBytes 메서드를 제거했어요. (#18617)

더 알아보기 (Learn more)