Trino 0.206 릴리스 노트

Trino 0.206 릴리스 노트

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

출처: 문서

본문

일반 (General)

  • dictionary_aggregation이 활성화됐을 때 조인 다음에 집계가 오는 특정 쿼리의 실행 실패를 수정했어요.
  • 쿼리에 GROUP BY가 있지만 그룹핑 컬럼의 카디널리티가 1일 때 계획 실패를 수정했어요. 예: SELECT c1, sum(c2) FROM t WHERE c1 = 'foo' GROUP BY c1
  • 버킷화 실행을 사용하는 쿼리 실행 중 코디네이터의 높은 메모리 압력을 수정했어요.
  • ST_Union(), ST_Geometries(), ST_PointN(), ST_InteriorRings(), ST_InteriorRingN() 지리공간 함수를 추가했어요.
  • split_to_multimap() 함수를 추가했어요.
  • approx_distinct() 함수를 다음 타입을 지원하도록 확장했어요: INTEGER, SMALLINT, TINYINT, DECIMAL, REAL, DATE, TIMESTAMP, TIMESTAMP WITH TIME ZONE, TIME, TIME WITH TIME ZONE, IPADDRESS.
  • system.runtime.queries 테이블에 리소스 그룹 ID 컬럼을 추가했어요.
  • LIMIT 없이 ORDER BY를 분산 방식으로 실행하는 것을 지원해요. distributed-sort 구성 속성이나 distributed_sort 세션 속성으로 비활성화할 수 있어요.
  • VARCHAR(n)에서 CHAR(n)으로의 암시적 강제 변환을 추가하고 반대 방향의 암시적 강제 변환을 제거했어요. 결과적으로 CHARVARCHAR와 비교하면 이제 뒤쪽 공백에 민감하지 않은 CHAR 비교 의미 체계를 따르게 돼요.
  • 평균 행 크기를 계산할 때 null이 아닌 행만 포함해 쿼리 비용 추정을 개선했어요.
  • 데이터 크기 추정 시 오버헤드를 더 잘 반영하도록 쿼리 비용 추정을 개선했어요.
  • 시간 타입에 대한 SQL 표준을 따르는 새 의미 체계를 추가했어요. 이는 TIMESTAMP(일명 TIMESTAMP WITHOUT TIME ZONE), TIME(일명 TIME WITHOUT TIME ZONE), TIME WITH TIME ZONE 타입에 영향을 줘요. 레거시 동작이 기본값으로 유지돼요. 현재 시점에는 새 의미 체계를 활성화하는 것을 권장하지 않아요. 시간 타입을 지원하는 모든 커넥터는 새 의미 체계와 올바르게 동작하려면 코드 변경이 필요하지만, 아직 업데이트된 커넥터는 없어요. 또한 특히 TIME WITH TIME ZONE 타입 주변에서 더 많은 파괴적 변경이 계획되어 있어 새 의미 체계는 아직 안정적이지 않아요.

JDBC 드라이버

  • ApplicationName 속성과 결합되어 클라이언트 소스 이름을 구성하는 applicationNamePrefix 파라미터를 추가했어요.

Hive 커넥터

  • 불필요하게 큰 내부 버퍼를 줄여 ORC 리더 메모리 사용을 줄였어요.
  • Kerberos로 HDFS 인증을 사용할 때 skip.footer.line.countskip.header.line.count가 있는 테이블에서 읽는 것을 지원해요.
  • Parquet 리더의 대소문자 구분 없는 컬럼 조회를 지원해요.

더 알아보기 (Learn more)

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