릴리스 354

릴리스 354 (2021년 3월 19일)

이번 릴리스에서는 조인·쓰기 파티셔닝 성능 개선과 여러 커넥터의 버그 수정이 담겨 있어요. OAuth 2.0 인증 지원도 추가됐어요.

출처: Trino 릴리스 354 문서

본문

일반 (General)

  • 조인의 한쪽이 단일 행을 만든다고 알려진 LEFT, RIGHT, FULL JOIN이 포함된 일부 쿼리의 성능을 개선했어요. (#7090)
  • 예상 쓰기 파티션 수가 preferred-write-partitioning-min-number-of-partitions 이상이 되면 선호 쓰기 파티셔닝(preferred write partitioning)이 자동으로 실행되도록 했어요. 이 추정은 쿼리 입력 테이블에 통계가 있어야 가능해요. 조건 없이 선호 파티셔닝을 쓰려면 preferred-write-partitioning-min-number-of-partitions1로 설정하면 되고, 끄려면 use-preferred-write-partitioningfalse로 설정하면 돼요. (#6920)
  • ALLDISTINCT 한정자만 다른 여러 유사 서브쿼리에 UNION 절이 들어 있을 때 결과가 잘못 나오던 문제를 고쳤어요. (#7345)
  • 필터를 흡수(subsumes)하는 커넥터에서 DELETEUPDATE를 고쳤어요. (#7302)
  • 서브쿼리에 EXCEPTINTERSECT가 있을 때 발생하던 실패를 고쳤어요. (#7342)
  • 지연 구체화(late materialization)가 켜진 상태에서 RIGHT JOIN이 포함된 쿼리가 실패하던 문제를 고쳤어요. (#6784)

보안 (Security)

  • OAuth 2.0 인증이 토큰 만료 시 재시도되지 않던 문제를 고쳤어요. (#7172)

CLI

  • OAuth 2.0 인증을 지원해요. (#7054)

ClickHouse 커넥터

  • CREATE SCHEMA에서 스키마 이름의 대소문자를 올바르게 사용하도록 했어요. (#7239)

Elasticsearch 커넥터

  • 배열 타입에 대해 단일 값 필드를 읽을 때 발생하던 실패를 고쳤어요. (#7012)

Hive 커넥터

  • ACID 테이블의 DELETEUPDATE에서 파티션 필터를 존중하도록 했어요. 이전에는 파티션 필터가 무시돼 너무 많은 행이 삭제·수정되곤 했어요. (#7302)
  • ACID 테이블의 문장 ID 할당을 고쳤어요. 같은 이름의 델타 파일이 여러 개 만들어져 쿼리 실패나 데이터 손실이 날 수 있었어요. (#7302)
  • Spark가 metastore에 만들고 등록한 버켓 구성이 잘못된 테이블을 읽을 때 쿼리 결과가 잘못 나오던 문제를 고쳤어요. (#6848)
  • Avro 파일 형식을 사용할 때 파일 시스템 연결이나 기타 리소스가 새지 않도록 했어요. (#7178)
  • Glue metastore에서 CSV 테이블의 컬럼이 varchar(string)가 아닌 타입으로 선언된 경우 쿼리가 실패하던 문제를 고쳤어요. 이제 컬럼은 varchar 값으로 해석돼요. (#7059)
  • 구성값 hive.parallel-partitioned-bucketed-insertshive.parallel-partitioned-bucketed-writes로 이름을 바꿨어요. (#7259)

Iceberg 커넥터

  • Spark가 만든, 스냅샷 ID가 없는 빈 테이블에 대한 쿼리를 고쳤어요. (#7233)
  • 1970년 이전 날짜·시간의 변환에 Iceberg 0.11.0 동작을 적용했어요. 구버전 Trino·Iceberg로 쓴 데이터는 정상적으로 읽히고, 새 데이터도 올바르게 쓰여요. 다만 구버전 Trino·Iceberg로는 새 데이터가 잘못 읽힐 수 있어요. (#7049)

MemSQL 커넥터

  • MemSQL 3.2 지원을 추가했어요. (#7179)
  • CREATE SCHEMA에서 스키마 이름의 대소문자를 올바르게 사용하도록 했어요. (#7239)
  • 계산을 하부 데이터베이스로 프러시다운할 수 있는 ORDER BY ... LIMIT 절이 있는 쿼리의 성능을 개선했어요. (#7326)

MySQL 커넥터

  • timestamp(3) 컬럼으로 테이블을 만들 때 MySQL에서 올바른 컬럼 타입(datetime(3))을 사용하도록 했어요. 이전에는 초 단위 이하 값이 잘려나갔어요. (#6909)
  • CREATE SCHEMA에서 스키마 이름의 대소문자를 올바르게 사용하도록 했어요. (#7239)
  • 계산을 하부 데이터베이스로 프러시다운할 수 있는 ORDER BY ... LIMIT 절이 있는 쿼리의 성능을 개선했어요. (#7326)

PostgreSQL 커넥터

  • charvarchar 컬럼으로 정렬하고 topn-pushdown.enabled 구성값이 켜진 상태에서 ORDER BY ... LIMIT 절의 쿼리 결과가 잘못 나오던 문제를 고쳤어요. 이 최적화는 이제 기본으로 켜져요. (#7170, #7314)
  • CREATE SCHEMA에서 스키마 이름의 대소문자를 올바르게 사용하도록 했어요. (#7239)

Redshift 커넥터

  • LIMIT가 2147483647을 초과하는 쿼리에서 발생하던 실패를 고쳤어요. (#7236)
  • CREATE SCHEMA에서 스키마 이름의 대소문자를 올바르게 사용하도록 했어요. (#7239)

SQL Server 커넥터

  • 매개변수화된 time 타입 지원을 추가했어요. (#7122)
  • CREATE SCHEMA에서 스키마 이름의 대소문자를 올바르게 사용하도록 했어요. (#7239)
  • 계산을 하부 데이터베이스로 프러시다운할 수 있는 ORDER BY ... LIMIT 절이 있는 쿼리의 성능을 개선했어요. (#7324)

더 알아보기 (Learn more)