Trino 0.190 릴리스 노트

Trino 0.190 릴리스 노트

Trino 0.190 릴리스 노트입니다. 이번 릴리스에서는 일반 개선 사항과 리소스 그룹, CLI, JDBC 드라이버, Accumulo, Hive, Thrift 커넥터, SPI 관련 변경 사항이 들어 있어요.

출처: 문서

본문

일반 (General)

  • 배열에 NaN이 포함될 때 array_min()array_max()의 정확성 문제를 수정했어요.
  • 집계 함수를 포함한 표현식에 암시적 강제 변환이 필요한 GROUPING 관련 쿼리의 계획 실패를 수정했어요.
  • 토폴로지 인식(topology-aware) 스케줄링 사용 시 잠재적 작업 부하 불균형을 수정했어요.
  • 같은 컬럼에 대해 DISTINCT 집계가 포함된 쿼리의 성능 회귀를 수정했어요.
  • 워커에서 발생하던 메모리 누수를 수정했어요.
  • HAVING 절에 윈도우 함수가 포함될 때 오류 처리를 개선했어요.
  • 쓰기 대상 테이블이 쓰여지는 데이터와 같은 파티션 속성을 가질 때 불필요한 데이터 재분배를 피하도록 했어요.
  • SHOW FUNCTIONS 출력 정렬 시 대소문자를 무시하도록 했어요.
  • BingTile 타입 렌더링을 개선했어요.
  • approx_distinct() 함수가 [0.0040625, 0.26000] 범위의 표준 오차를 지원하게 됐어요.
  • 집계 함수에서 ORDER BY를 지원해요.
  • 조인에 대한 사전 처리(dictionary processing)를 추가해 조인 성능을 최대 50%까지 개선할 수 있어요. 이 최적화는 dictionary-processing-joins-enabled 구성 속성이나 dictionary_processing_join 세션 속성으로 비활성화할 수 있어요.
  • INTERVAL 타입으로의 캐스팅을 지원해요.
  • ST_Buffer() 지리공간 함수를 추가했어요.
  • decimal 리터럴을 DOUBLE이 아닌 DECIMAL 타입의 값으로 취급할 수 있게 했어요. parse-decimal-literals-as-double 구성 속성이나 parse_decimal_literals_as_double 세션 속성을 false로 설정하면 켤 수 있어요.
  • 제출된 쿼리 수를 추적하는 JMX 카운터를 추가했어요.

리소스 그룹 (Resource groups)

  • DB 리소스 그룹 셀렉터에 우선순위(priority) 컬럼을 추가했어요.
  • DB 리소스 그룹 셀렉터에 정확 일치(exact match) 소스 셀렉터를 추가했어요.

CLI

  • 클라이언트 태그 설정을 지원해요.

JDBC 드라이버

  • QueryStatsgetPeakMemoryBytes()를 추가했어요.

Accumulo

  • 테이블 스캔 병렬성을 개선했어요.

Hive

  • 파티션 컬럼 값에 콜론이 포함될 때 파일 기반 메타스토어 구현에서 쿼리가 실패하던 문제를 수정했어요.
  • 쓰여지는 데이터가 이미 적절히 분할된 경우(예: 버킷화 조인의 출력) 버킷화 테이블에 쓰는 성능을 개선했어요.
  • 단일 테이블 스캔에 대한 스플릿 버퍼링에 사용되는 최대 메모리 양을 위한 hive.max-outstanding-splits-size 구성 속성을 추가했어요. 또한 기본값은 이전 하드코딩 한도보다 상당히 높아 특정 쿼리가 실패하는 것을 막을 수 있어요.

Thrift 커넥터

  • Thrift 재시도를 구성할 수 있게 했어요.
  • Thrift 요청에 대한 JMX 카운터를 추가했어요.

SPI

  • 올바르게 사용하기 어렵고 PageSink 인터페이스에 비해 장점이 없던 RecordSink 인터페이스를 제거했어요.

참고: 이는 이전 커넥터 SPI와 호환되지 않는 변경이에요. RecordSink 인터페이스를 사용하는 커넥터를 작성했다면 이 릴리스를 배포하기 전에 코드를 업데이트해야 해요.

더 알아보기 (Learn more)

Trino 0.190의 변경 사항을 더 자세히 확인하고 싶다면 공식 릴리스 노트를 참고해 주세요.