Trino 0.199 릴리스 노트
Trino 0.199 릴리스 노트
Trino 0.199 릴리스 노트입니다. 이번 릴리스에서는 일반 개선 사항과 Server RPM, 보안, JDBC 드라이버, Hive, Thrift 커넥터, SPI 관련 변경 사항이 들어 있어요.
출처: 문서
본문
일반 (General)
- 사용자가 기본 테이블이나 뷰에 대한 접근 권한을 남에게 부여할 권한이 없어도 자신이 쓸 뷰를 만들 수 있게 했어요. 이를 위해 생성 권한은 이제 생성 시점이 아니라 쿼리 시점에만 확인되며, 사용자가 뷰의 소유자라면 쿼리 시점 확인도 건너뜁니다.
- 공간 왼쪽 조인(spatial left join)을 지원해요.
hmac_md5(),hmac_sha1(),hmac_sha256(),hmac_sha512()함수를 추가했어요.- 람다를 비교자로 받는
array_sort()함수를 추가했어요. line_locate_point()지리공간 함수를 추가했어요.- 그룹핑 세트를 사용하는 쿼리의 집계에서
ORDER BY절을 지원해요. - 집계의 언스필링(unspilling) 시 양보(yielding)를 지원해요.
- 그룹화된 실행 지원을
GROUP BY와UNION ALL로 확장해 더 낮은 피크 메모리 사용량으로 집계를 실행할 수 있게 했어요. round(x, d)와truncate(x, d)함수의 시그니처를d가INTEGER타입이 되도록 변경했어요. 이전에는d가BIGINT타입일 수 있었어요.deprecated.legacy-round-n-bigint구성 옵션이나legacy_round_n_bigint세션 속성으로 이 동작을 복원할 수 있어요.- 익명 행 필드에
.field0,.field1등으로 접근하는 것을 더 이상 허용하지 않아요.deprecated.legacy-row-field-ordinal-access구성 옵션이나legacy_row_field_ordinal_access세션 속성으로 이 동작을 복원할 수 있어요. - 좌표축에 정렬된 사각형(예:
ST_Envelope()과bing_tile_polygon()함수가 만든 폴리곤)에 대한ST_Intersection()함수를 최적화했어요. - 한쪽에 행이 없으면 가능할 때 조인을 일찍 끝내도록 했어요. 이는 내부 조인의 양쪽, 왼쪽 조인의 왼쪽, 오른쪽 조인의 오른쪽에 해당해요.
- 계획 중 조건자 푸시다운의 조건자 평가 성능을 개선했어요.
information_schema테이블의 컬럼에LIKE조건자를 사용하는 쿼리의 성능을 개선했어요.- 맵-맵 캐스팅의 성능을 개선했어요.
ST_Touches(),ST_Within(),ST_Overlaps(),ST_Disjoint(),ST_Crosses()함수의 성능을 개선했어요.- 지오메트리 값의 직렬화 성능을 개선했어요.
- 맵을 반환하는 함수의 성능을 개선했어요.
- 맵 컬럼을 포함한 조인과 집계의 성능을 개선했어요.
Server RPM
- OpenJDK가 있는 머신에 설치하는 것을 지원해요.
보안 (Security)
- JWT 접근 토큰으로 인증하는 것을 지원해요.
JDBC 드라이버
- 드라이버를 Java 9+와 호환되게 만들었어요. 이전에는
IncompatibleClassChangeError로 실패했어요.
Hive
ROW,MAP,ARRAY타입 컬럼에NULL값을 쓸 때 ORC 라이터가 실패하던 문제를 수정했어요.- 모든 타입에 대해 ORC 라이터가 null이 아닌 값을
NULL로 잘못 쓰던 문제를 수정했어요. - 비율이 2의 거듭제곱(
1:2^n또는2^n:1)인 한 테이블과 다른 버킷 수를 가진 Hive 파티션 읽기를 지원해요. skip.header.line.count테이블 속성을 지원해요.skip.footer.line.count테이블 속성이 있는 테이블에서 읽는 것을 막았어요.- 분할된 테이블에 파티션 값을 담은 숨겨진 시스템 테이블이 생겼어요.
example이라는 테이블에는example$partitions라는 파티션 테이블이 있어요. 이는SHOW PARTITIONS와 같은 기능과 데이터를 제공해요. $partitions테이블과SHOW PARTITIONS를 통한 파티션 이름 나열은 더 이상hive.max-partitions-per-scan구성 옵션이 정의한 한도의 적용을 받지 않아요.presto_offline파티션 속성으로 파티션을 오프라인으로 표시할 수 있게 했어요.
Thrift 커넥터
- 기본 Thrift 클라이언트 구현을 교체하면서 대부분의 구성 속성 이름이 달라졌어요. 새 속성에 대한 자세한 내용은 Thrift 커넥터를 참고해 주세요.
SPI
- 커넥터가 시스템 테이블을 동적으로 제공할 수 있게 했어요.
SessionConfigurationContext에resourceGroupId와queryType필드를 추가했어요.RowBlock의 생성자를 단순화했어요.Block.writePositionTo()가 이제 현재 항목을 닫아요.BlockBuilder의writeObject()메서드를appendStructure()로 대체했어요.
더 알아보기 (Learn more)
Trino 0.199의 변경 사항을 더 자세히 확인하고 싶다면 공식 릴리스 노트를 참고해 주세요.