Release 339
Release 339 (2020년 7월 21일)
Presto 339 릴리스예요. approx_most_frequent() 함수, 물리 바이트 스캔 한도 설정, Kudu grouped execution, Oracle 커넥터 자격 증명 설정 등이 담겼어요.
본문
General
approx_most_frequent()을 추가했어요(#3425).- 쿼리의 물리 바이트 스캔 한도를
query.max-scan-physical-bytes설정 속성과query_max_scan_physical_bytes세션 속성으로 설정할 수 있게 됐어요(#4075). TIME과INTERVAL YEAR TO MONTH타입 사이의 덧셈·뺄셈 지원을 제거했어요(#4308).- 조인 조건에 서브쿼리가 포함됐을 때 계획 실패를 고쳤어요(#4380).
- 윈도우 함수 인자에 서브쿼리가 나타날 때 실패하던 문제를 고쳤어요(#4127).
WITH절의 서브쿼리에 숨은 컬럼이 포함됐을 때 실패하던 문제를 고쳤어요(#4423).GROUP BY절에서 대소문자가 다른 타입 이름을 참조할 때 실패하던 문제를 고쳤어요(#2960).ORDER BY절의 표현식이SELECT절의 표현식과 대소문자가 다를 때DISTINCT가 포함된 쿼리가 실패하던 문제를 고쳤어요(#4233).- 레거시 클라이언트에 대한
TIMESTAMP와TIMESTAMP WITH TIME ZONE의 잘못된 타입 보고를 고쳤어요(#4408). - 레거시 클라이언트에 대한 중첩
TIMESTAMP·TIMESTAMP WITH TIME ZONE질의 실패를 고쳤어요(#4475, #4425). +NNNN형태의 오프셋을 가진 time zone이 있는 타임스탬프를 파싱할 때 실패하던 문제를 고쳤어요(#4490).
JDBC 드라이버
- 음수 연도나 9999보다 큰 연도를 가진
TIMESTAMP와TIMESTAMP WITH TIME ZONE값 읽기 문제를 고쳤어요(#4364). TIMESTAMP와TIMESTAMP WITH TIME ZONE타입의 잘못된 컬럼 크기 메타데이터를 고쳤어요(#4411).- 세션 시간대가 JDBC가 실행되는 JVM의 기본 시간대와 다른 시간대로 설정됐을 때
ResultSet.getDate(),ResultSet.getTime(),ResultSet.getTimestamp()메서드가 올바른 값을 반환하도록 고쳤어요. 이전 동작은useSessionTimeZoneJDBC 연결 파라미터로 일시적으로 복원할 수 있어요(#4017).
Druid 커넥터
- 비-ASCII 문자를 포함한 테이블·컬럼 이름 처리 문제를 고쳤어요(#4312).
Hive 커넥터
system.register_partition프로시저의location파라미터를 선택적으로 만들었어요(#4443).- 블록 경계 끝에 아주 작은 split이 생기는 것을 피하도록 했어요(#4485).
- Presto가 CSV 테이블에 접근하도록 Hive 3.x 메타스토어에서
metastore.storage.schema.reader.impl을 설정해야 하던 요구 사항을 제거했어요(#4457). - 버킷 범위 밖에 버킷 파일이 있으면 쿼리를 실패시키도록 했어요. 이전에는 이런 추가 파일들이 건너뛰어졌어요(#4378).
- 비표준(비준수) 라이터가 쓴, real·double
NaN값을 포함한 Parquet 파일에서 읽을 때 쿼리가 실패하던 문제를 고쳤어요(#4267).
Kafka 커넥터
- Avro에 대한 insert 지원을 추가했어요(#4418).
- CSV에 대한 insert 지원을 추가했어요(#4287).
Kudu 커넥터
- grouped execution 지원을 추가했어요.
kudu.grouped-execution.enabled설정 속성이나grouped_execution세션 속성으로 활성화할 수 있어요(#3715).
MongoDB 커넥터
- Azure Cosmos DB를 질의할 수 있게 했어요(#4415).
Oracle 커넥터
connection-user와connection-password설정 속성으로 자격 증명을 제공할 수 있게 했어요. 이 속성들은 이전에는 연결 풀링이 활성화되면 무시됐어요(#4430).
Phoenix 커넥터
- 공백이 있는 행 키(row key) 정의 처리 문제를 고쳤어요(#3251).
SPI
- 커넥터가
ConnectorSplitManager.getSplits()에 전달된 새DynamicFilter객체를 통해 split이 생성되기 전에 동적 필터를 기다릴 수 있게 했어요(#4224).
더 알아보기 (Learn more)
물리 바이트 스캔 한도는 리소스 제어에 유용해요. Kudu의 grouped execution과 Kafka의 insert 지원은 각 커넥터 문서에서 자세히 확인해 보세요.