릴리스 0.148
릴리스 0.148 (Release 0.148)
이 릴리스에서는 여러 정확성·안정성 수정과 함께 interval 고침, 함수·구문 추가, 커넥터별 개선이 포함돼 있어요.
출처: 문서
본문
일반 (General)
- 성공적으로 완료된 쿼리에 대해 auto-commit 트랜잭션이 롤백될 수 있는 문제를 고쳤어요.
- colocated 조인 감지 문제를 고쳤어요.
- 상수와 관련된 파티셔닝 계획 수립 버그를 고쳤어요.
- 윈도우 함수가 같은 방향의 unbounded와 bounded 사이에서 빈 프레임을 올바르게 처리하도록 고쳤어요. 예를 들어
ROWS BETWEEN UNBOUNDED PRECEDING AND 2 PRECEDING같은 프레임은 첫 두 행에서 빈 프레임 대신 첫 행을 프레임으로 잘못 사용했어요. - 집계 함수의 인자이기도 한 컬럼으로 그룹핑할 때 발생하던 정확성 문제를 고쳤어요.
AT TIME ZONE을 연결(chaining)할 때 실패하던 문제를 고쳤어요. 예:SELECT TIMESTAMP '2016-01-02 12:34:56' AT TIME ZONE 'America/Los_Angeles' AT TIME ZONE 'UTC'.- 코디네이터와 워커 간
task.writer-count설정이 일치하지 않을 때 데이터가 중복되던 문제를 고쳤어요. node-scheduler.max-pending-splits-per-node-per-task설정이 노드 스케줄러가 항상 지키지 않던 버그를 고쳤어요. 이 버그는 클러스터의 진행을 멈출 수 있었어요.- 파티션된 소스가 있는 grouping sets의 잘못된 결과를 고쳤어요.
- 노드 파티션 데이터를 노출하는 커넥터에 대해 colocated 조인이 기본 활성화되도록
colocated-joins-enabled를 추가했어요. - colocated union을 지원하게 됐어요.
array_agg()함수의 초기 메모리 사용량을 줄였어요.- co-partitioned
JOIN과UNION의 계획 수립을 개선했어요. - 파티션된 데이터에 대한 집계 계획 수립을 개선했어요.
array_sort()함수의 성능을 개선했어요.- outer 조인 프레디킷 push down을 개선했어요.
query.initial-hash-partitions의 기본값을 100으로 올렸어요.query.max-memory-per-node의 기본값을 Java 힙의 10%로 변경했어요.task.max-worker-threads의 기본값을 코어 수의 2배로 변경했어요.- 포트 443을 사용할 때 JDBC 드라이버에서 HTTPS를 사용하게 했어요.
- Presto 서버가 G1 가비지 컬렉터를 사용하지 않으면 경고하도록 했어요.
- interval 타입을 SPI 밖으로 옮겼어요.
Interval 수정 (Interval fixes)
이 릴리스는 크고 음수인 interval과 관련된 여러 문제를 고쳐요.
- 음수 interval 리터럴의 파싱을 고쳤어요. 이전에는 각 필드의 부호가 전체 interval 값에 적용되지 않고 개별적으로 처리됐어요. 예를 들어
INTERVAL '-2-3' YEAR TO MONTH는 27개월(음수 24개월에 양수 3개월을 더한 값)이 아니라 음수 21개월로 해석됐어요. - REST API에서
INTERVAL DAY TO SECOND타입 처리를 고쳤어요. 이전에는 2,147,483,647밀리초(약 24일)보다 큰 interval이 잘못된 값으로 반환됐어요. INTERVAL YEAR TO MONTH타입 처리를 고쳤어요. 이전에는 2,147,483,647개월보다 큰 interval이 REST API에서 잘못된 값으로 반환되고 리터럴로 지정될 때도 잘못 파싱됐어요.- REST API에서 음수 interval의 포맷팅을 고쳤어요. 이전에는 각 구성 요소 앞에 음수 부호가 붙어 파싱할 수 없었어요.
- JDBC
PrestoInterval클래스에서 음수 interval의 포맷팅을 고쳤어요.
참고: JDBC 드라이버의 이전 버전은 새 서버의 대부분 음수 interval을 잘못 해석해요. JDBC 드라이버를 서버와 함께 업데이트해야 해요.
함수와 언어 기능 (Functions and language features)
- map 타입에
element_at()함수를 추가했어요. split_to_map()함수를 추가했어요.zip()함수를 추가했어요.map_union()집계 함수를 추가했어요.- 행 타입을 구성하는
ROW구문을 추가했어요. REVOKE권한 구문을 지원하게 됐어요.SMALLINT와TINYINT타입을 지원하게 됐어요.- 비동등 outer 조인을 지원하게 됐어요.
Verifier
- 주어진 정규식과 일치하는 쿼리의 CPU 시간 비교를 건너뛰는
skip-cpu-check-regex설정 프로퍼티를 추가했어요. - CPU 시간 비교를 비활성화하는
check-cpu설정 프로퍼티를 추가했어요.
Hive
- HDFS 클라이언트에서
KMSClientProvider에 대한NoClassDefFoundError를 고쳤어요. - 빈 데이터베이스에서 S3에 테이블을 만들 때 발생하던 문제를 고쳤어요.
REVOKE권한 구문을 구현했어요.SMALLINT와TINYINT를 지원하게 됐어요.- 파티션되지 않은 테이블에서
DELETE를 지원하게 됐어요. - Hive/HDFS와 통신할 때 Kerberos 인증을 지원하게 됐어요.
DECIMAL타입 컬럼에 대한 필터를 push down하게 됐어요.- ORC 파일을 읽을 때 CPU 효율을 개선했어요.
Cassandra
- 로드 밸런싱 정책과 호스트 없음(hose host) 재시도를 구성할 수 있게 했어요.
varchar(n)을 지원하게 됐어요.
Kafka
- Kafka 클라이언트를 0.8.2.2로 업데이트했어요. 이를 통해 LZ4 데이터를 지원해요.
JMX
- JMX MBean 값의 인메모리 주기 샘플을 가진
jmx.history스키마를 추가했어요.
MySQL 및 PostgreSQL
VARCHAR,DATE,TIME,TIMESTAMP타입에 대한 프레디킷을 push down하게 됐어요.
기타 커넥터 (Other connectors)
- Redis, TPC-H, MongoDB, Local File, Example HTTP 커넥터에
varchar(n)지원을 추가했어요.
더 알아보기 (Learn more)
이어서 릴리스 0.149에서 새 웹 인터페이스와 FLOAT 타입 지원을 확인해 보세요.