Trino 0.198 릴리스 노트
Trino 0.198 릴리스 노트
Trino 0.198 릴리스 노트입니다. 이번 릴리스에서는 일반 개선 사항과 리소스 그룹, CLI, Hive, JMX, SPI 관련 변경 사항이 들어 있어요.
출처: 문서
본문
일반 (General)
- 쿼리를 큐에 넣기 전에 의미 분석(semantic analysis)을 수행하도록 했어요.
DISTINCT인자 한정자와 함께 선택적 집계(FILTER)를 지원해요.SHOW SCHEMAS와SHOW TABLES쿼리에서LIKE조건자에ESCAPE를 지원해요.- decimal 리터럴(예:
42.0)을 기본적으로DECIMAL로 파싱하도록 했어요. 이전에는DOUBLE로 파싱됐어요.parse-decimal-literals-as-double구성 옵션이나parse_decimal_literals_as_double세션 속성으로 이 동작을 끌 수 있어요. - 세션 시간대가
1970-01-01 00:00:00에 "갭(gap)"이 있을 때current_date실패를 수정했어요.America/Bahia_Banderas시간대가 그런 예 중 하나예요. - 암시적 1일 단위 증가로
DATE를 위한sequence()함수 변형을 추가했어요. zip()함수의 최대 인자 수를 4에서 5로 늘렸어요.ST_IsValid(),geometry_invalid_reason(),simplify_geometry(),great_circle_distance()함수를 추가했어요.- 입력 타입이 쿼리 분석 시점에 알려지지 않았을 때
min()과max()집계 함수를 지원해요. 특히NULL리터럴과 함께 사용할 수 있게 해 줘요. - 로컬 교환 버퍼 크기를 설정하는
task.max-local-exchange-buffer-size구성 속성을 추가했어요. - 스케줄러와 교환 HTTP 클라이언트에 추적 토큰(trace token) 지원을 추가했어요. 스케줄러와 교환 HTTP 클라이언트가 보내는 각 HTTP 요청은 헤더에 "추적 토큰"(고유 ID)을 가지며 HTTP 요청 로그에 기록돼요. 이 정보는 디버깅 시 요청과 응답을 연관 짓는 데 사용할 수 있어요.
- 동적 라이터 스케일링이 활성화됐을 때 쿼리 성능을 개선했어요.
ST_Intersects()의 성능을 개선했어요.- 쿼리 계획 중에 테이블이 비어 있음이 알려졌을 때 쿼리 지연 시간을 개선했어요.
- G1 GC에서 과도한 객체 오버헤드와 네이티브 메모리 사용을 피하도록
array_agg()를 최적화했어요. DISTINCT인자 한정자가 있는 고카디널리티(high-cardinality) 집계의 성능을 개선했어요.use_mark_distinct세션 속성이나optimizer.use-mark-distinct구성 옵션을 비활성화해 활성화할 수 있는 실험적 최적화예요.- 빈 그룹핑 세트가 있는 쿼리의 병렬성을 개선했어요.
ST_Distance()함수가 포함된 조인 쿼리의 성능을 개선했어요.
리소스 그룹 (Resource groups)
- Query Queues가 제거됐어요. 리소스 그룹은 항상 활성화돼요.
experimental.resource-groups-enabled구성 속성이 제거됐어요. - 활용도와 몫(share)이 동일한 그룹 중 가장 오래된 적격 하위 그룹을 선택하도록
WEIGHTED_FAIR스케줄링 정책을 변경했어요.
CLI
--enable-authentication옵션이 제거됐어요. Kerberos 인증은--krb5-remote-service-name이 지정되면 자동으로 활성화돼요.- Kerberos 인증은 이제 HTTPS를 요구해요.
Hive
- 메타스토어로 AWS Glue를 사용하는 것을 지원해요.
hive.metastore구성 속성을glue로 설정하면 켤 수 있어요. VARCHAR또는VARBINARY타입의 잘못된 데이터를 파일에 쓰는 ORC 라이터 버그를 수정했어요.
JMX
- 단일 쿼리로 여러 MBean을 조회할 수 있는 와일드카드 문자
*를 추가했어요.
SPI
QueryCompletedEvent의 쿼리 계획에 성능 통계를 추가했어요.Page.getBlocks()를 제거했어요. 이 호출은 거의 사용되지 않았고 비싼 복사를 수행했어요. 대신Page.getBlock(channel)이나 새 헬퍼Page.appendColumn()을 사용해요.ArrayBlock,MapBlock,RowBlock생성 시 검증을 개선했어요.
더 알아보기 (Learn more)
Trino 0.198의 변경 사항을 더 자세히 확인하고 싶다면 공식 릴리스 노트를 참고해 주세요.