릴리스 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 TABLEDROP 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자리 이상의 소수 자릿수를 가진 timestampdatetime 값을 읽을 때 발생하던 실패를 고쳤어요. (#6852)
  • Trino와 MySQL의 대소문자 구분 차이로 char·varchar 컬럼에 <>, >= 같은 연산자를 쓸 때 조건 프러시다운이 잘못되던 문제를 고쳤어요. (#6746, #6671)

MemSQL 커넥터

  • 소수 초 부분에 3자리 이상의 소수 자릿수를 가진 timestampdatetime 값을 읽을 때 발생하던 실패를 고쳤어요. (#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로 켤 수 있어요. 단, 이 기능을 켜면 charvarchar 컬럼으로 정렬할 때 현재 잘못된 쿼리 결과가 나올 수 있어요. (#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) 처리했어요.

더 알아보기 (Learn more)