Trino 0.78 릴리스 노트
Trino 0.78 릴리스 노트
Trino 0.78 릴리스 노트입니다. 이번 릴리스에서는 Hive 커넥터의 ARRAY/MAP 타입, 세션 속성, 여러 개선이 포함돼 있어요.
출처: 문서
본문
Hive 커넥터의 ARRAY와 MAP 타입
Hive 커넥터가 이제 기본 타입이 array 또는 map인 컬럼에 대해 json 인코딩 문자열 대신 배열과 맵을 반환해요. 이는 하위 호환되지 않는 변경이며, cast()로 json 타입으로 캐스팅하지 않으면 JSON 함수와 연산자가 더 이상 이 컬럼들에서 동작하지 않아요.
세션 속성 (Session properties)
Presto 세션에 이제 속성이 포함될 수 있으며, Presto 엔진이나 커넥터가 이를 사용해 쿼리 실행을 커스터마이즈할 수 있어요. Presto 엔진과 각 카탈로그에 별도의 네임스페이스가 있어요. 카탈로그의 속성은 카탈로그 이름 뒤에 .(점)을 붙여 단순히 접두사로 지정해요. 커넥터는 ConnectorSession.getProperties()로 카탈로그의 속성을 검색할 수 있어요.
세션 속성은 Presto CLI에 --session 명령줄 인자로 설정할 수 있어요. 예:
presto-cli --session color=red --session size=large
JDBC의 경우 Connection을 다음과 같이 언랩(unwrap)해 속성을 설정할 수 있어요:
connection.unwrap(PrestoConnection.class).setSessionProperty("name", "value");
참고: 이 기능은 진행 중이며 향후 릴리스에서 바뀔 예정이에요. 특히 사용자가 사용 가능한 세션 속성을 나열할 수 있고 엔진이 속성 값을 검증할 수 있도록 속성의 사전 등록(preregistration)을 요구할 계획이에요. 또한 쿼리로 속성을 설정할 수 있도록 Presto 문법을 확장할 계획이에요.
Hive
- 테이블 생성에 사용되는 형식을 재정의하는
storage_format세션 속성을 추가했어요. VARBINARY,DATE,TIMESTAMP에 대한 쓰기 지원을 추가했어요.TIMESTAMP타입의 파티션 키를 지원해요.- null 값이 있는 파티션 키(
__HIVE_DEFAULT_PARTITION__)를 지원해요. hive.storage-format옵션을 수정했어요(릴리스 0.76 참고).
일반 (General)
- 표현식 최적화기가 지수 시간 대신 선형 시간으로 실행되도록 수정했어요.
- 맵에 대한
cardinality()를 추가했어요. - 쿼리를 멈추게 할 수 있는 SqlTask 생성의 경쟁 조건을 수정했어요.
node-scheduler.multiple-tasks-per-node-enabled옵션을 수정했어요.- JOIN 아래에 UNION이 있는 쿼리를 계획할 때 예외를 수정했어요.
더 알아보기 (Learn more)
Trino 0.78의 변경 사항을 더 자세히 확인하고 싶다면 공식 릴리스 노트를 참고해 주세요.