릴리스 353
릴리스 353 (2021년 3월 5일)
이번 릴리스에서는 ClickHouse 커넥터가 처음 추가됐고, 상관 서브쿼리와 지리공간 함수 지원이 확장됐어요. 여러 커넥터의 프러시다운 성능과 버그도 다듬어졌어요.
출처: Trino 릴리스 353 문서
본문
일반 (General)
- ClickHouse 커넥터를 추가했어요. (#4500)
UNNEST를 포함한 상관 서브쿼리 지원을 확장했어요. (#6326, #6925, #6951)to_geojson_geometry()와from_geojson_geometry()함수를 추가했어요. (#6355)- 윈도우 프레임 경계 명세에서 모든 정수 타입(
tinyint,smallint,integer,bigint,decimal(p, 0)) 값을 지원해요. (#6897) - 요소가 많은
IN조건이 포함된 쿼리의 계획 시간을 개선했어요. (#7015) WITH절의 컬럼이 별칭으로 노출될 때 잘못된 결과가 나올 수 있던 문제를 고쳤어요. (#6839)(조건이 여러 개 포함된 쿼리에서 잘못된 결과가 나올 수 있던 문제를 고쳤어요. (#6896)
서버 RPM
/etc/trino/env.sh를 통해 프로세스 환경 변수를 구성할 수 있게 했어요. (#6635)
BigQuery 커넥터
CREATE TABLE과DROP TABLE문을 지원해요. (#3767)bigquery.case-insensitive-name-matching구성값으로 대소문자 무시 식별자 매칭을 허용해요. (#6748)
Hive 커넥터
- Hive 정의 뷰에서
current_user()지원을 추가했어요. (#6720) - Glue metastore에서 컬럼 통계 읽기·쓰기 지원을 추가했어요. (#6178)
- 버켓 테이블 삽입의 병렬성을 개선했어요. 버켓 테이블로의 삽입은 이제
task.writer-count기능 구성값으로 태스크 내에서 병렬화할 수 있어요. (#6924, #6866) - 이전
INSERT문이 만든 파티션에INSERT로 쓸 때 발생하던 실패를 고쳤어요. (#6853) - AWS S3 콘솔로 만든 폴더 처리 문제를 고쳤어요. (#6992)
- Hive 뷰 정의를 변환하는 데 실패가 있을 때
information_schema.views테이블의 쿼리 실패를 고쳤어요. (#6370)
Iceberg 커넥터
- AWS S3 콘솔로 만든 폴더 처리 문제를 고쳤어요. (#6992)
- 대문자를 포함할 수 있는 필드 이름을 가진 중첩 컬럼을 읽을 때 발생하던 쿼리 실패를 고쳤어요. (#7180)
Kafka 커넥터
- Schema Registry 테이블 조회 시 발생하던 실패를 고쳤어요. (#6902)
- 스키마에 References가 있는 Schema Registry 테이블 조회 문제를 고쳤어요. (#6907)
- 소문자에 모호한 주제(subject) 이름을 가진 스키마 레지스트리 테이블 나열 문제를 고쳤어요. (#7048)
MySQL 커넥터
- 소수 초 부분에 3자리 이상의 소수 자릿수를 가진
timestamp나datetime값을 읽을 때 발생하던 실패를 고쳤어요. (#6852) - Trino와 MySQL의 대소문자 구분 차이로
char·varchar컬럼에<>,>=같은 연산자를 쓸 때 조건 프러시다운이 잘못되던 문제를 고쳤어요. (#6746, #6671)
MemSQL 커넥터
- 소수 초 부분에 3자리 이상의 소수 자릿수를 가진
timestamp나datetime값을 읽을 때 발생하던 실패를 고쳤어요. (#6852) - Trino와 MemSQL의 대소문자 구분 차이로
char·varchar컬럼에<>,>=같은 연산자를 쓸 때 조건 프러시다운이 잘못되던 문제를 고쳤어요. (#6746, #6671)
Phoenix 커넥터
- Phoenix 5.1 지원을 추가했어요. 카탈로그 구성 속성에서
connector.name=phoenix5로 설정해 쓸 수 있어요. (#6865) LIMIT가 2147483647을 초과하는 쿼리에서 발생하던 실패를 고쳤어요. (#7169)
PostgreSQL 커넥터
- 계산을 하부 데이터베이스로 프러시다운할 수 있는
ORDER BY ... LIMIT절이 있는 쿼리의 성능을 개선했어요.topn-pushdown.enabled로 켤 수 있어요. 단, 이 기능을 켜면char나varchar컬럼으로 정렬할 때 현재 잘못된 쿼리 결과가 나올 수 있어요. (#6847) - Trino와 PostgreSQL의 대소문자 조합 차이로
char·varchar컬럼에<>,>=같은 연산자를 쓸 때 조건 프러시다운이 잘못되던 문제를 고쳤어요. (#3645)
Redshift 커넥터
- 소수 초 부분에 3자리 이상의 소수 자릿수를 가진
timestamp값을 읽을 때 발생하던 실패를 고쳤어요. (#6893)
SQL Server 커넥터
- Trino 쿼리가 끝나면 SQL Server 쪽에서 쿼리를 중단하도록 했어요. (#6637)
- Trino와 SQL Server의 대소문자 구분 차이로
char·varchar컬럼에<>,>=같은 연산자를 쓸 때 조건 프러시다운이 잘못되던 문제를 고쳤어요. (#6753)
기타 커넥터 (Other connectors)
- ClickHouse, Druid, MemSQL, MySQL, Oracle, Phoenix, Redshift, SQL Server 커넥터의 계획 중 열리는 JDBC 연결 수를 줄였어요. (#7069)
- PostgreSQL, MySQL, MemSQL, Oracle, SQL Server 커넥터에 조인 프러시다운 실험적 지원을 추가했어요.
experimental.join-pushdown.enabled=true카탈로그 구성값으로 켤 수 있어요. (#6874)
SPI
- 최상위 블록이 이미 로드된 뒤에 등록되는 리스너가 호출되도록 lazy 블록을 고쳤어요. 이전에는 중첩 블록이 나중에 로드될 때 그런 리스너가 호출되지 않았어요. (#6783)
- 최상위 블록이 이미 로드됐을 때
LazyBlock.getFullyLoadedBlock()이 중첩 블록을 로드하지 않던 문제를 고쳤어요. (#6783) node-scheduler.include-coordinator가 false일 때ConnectorAwareNodeManager.getWorkerNodes()결과에 코디네이터 노드를 포함하지 않도록 했어요. (#7007)ConnectorMetadata.applyAggregation()에 전달되는 함수 이름이 이제 정식 함수 이름이에요. 이전에는 쿼리가 함수 별칭을 쓰면 별칭 이름이 전달됐어요. (#6189)- 테이블 스캔을 함께 유니온된 여러 테이블로 리다이렉트하는 것을 지원해요. (#6679)
Range.intersect(Range)의 반환 타입을 바꿨어요. 범위가 겹치지 않으면 이제 예외를 던지지 않고Optional.empty()를 반환해요. (#6976)ConnectorMetadata.applyJoin()의 시그니처에JoinStatistics인수를 추가했어요. (#7000)io.trino.spi.predicate.Marker를 지원 중단(deprecated) 처리했어요.