릴리스 423
릴리스 423 (2023년 8월 10일)
Trino 423 버전이 2023년 8월 10일에 공개됐어요. 중첩 필드 이름 변경·타입 설정 같은 컬럼 관련 기능과 함께, 여러 커넥터에서 쓰기 성능과 파일 처리 동작을 다듬었어요.
출처: 문서
본문
일반 (General)
RENAME COLUMN으로 컬럼의 중첩 필드 이름을 바꾸는 것을 지원해요. (#16757)SET DATA TYPE으로 컬럼의 중첩 필드 타입을 설정하는 것을 지원해요. (#16959)- 구체화된 뷰(materialized view) 컬럼에 주석을 다는 것을 지원해요. (#18016)
- 문자열 리터럴에서 모든 Unicode 문자를 표시하는 것을 지원해요. (#5061)
INSERT와CREATE TABLE AS ... SELECT쿼리의 성능을 개선했어요. (#18212)- 여러 window 함수를 포함한 쿼리를 계획할 때 성능을 개선했어요. (#18491)
BETWEEN절이 포함된 쿼리의 성능을 개선했어요. (#18501)- 뷰나
WITH절에 중복된ORDER BY절이 있는 쿼리의 성능을 개선했어요. 이 변경은 구현별 동작에 잘못 의존하는 쿼리의 의미에 영향을 줄 수 있어요. 이전 동작은skip_redundant_sort세션 속성이나optimizer.skip-redundant-sort구성 속성으로 되돌릴 수 있어요. (#18159) - 데이터를 쓰는 쿼리의 메모리 요구량을 줄이기 위해
task.partitioned-writer-count와task.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프로시저에서tinyint와smallint타입을 지원해요. (#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 커넥터
char와decimal타입에 대한 조건자 pushdown을 지원해요. (#18382)
MySQL 커넥터
- 대소문자를 구분하는
varchar와nvarchar컬럼에서=,<>,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)
- 이 문서의 원문: 릴리스 423
- Trino 공식 문서: https://trino.io/docs/current/