Release 339

Release 339 (2020년 7월 21일)

Presto 339 릴리스예요. approx_most_frequent() 함수, 물리 바이트 스캔 한도 설정, Kudu grouped execution, Oracle 커넥터 자격 증명 설정 등이 담겼어요.

출처: Trino Release 339

본문

General

  • approx_most_frequent()을 추가했어요(#3425).
  • 쿼리의 물리 바이트 스캔 한도를 query.max-scan-physical-bytes 설정 속성과 query_max_scan_physical_bytes 세션 속성으로 설정할 수 있게 됐어요(#4075).
  • TIMEINTERVAL YEAR TO MONTH 타입 사이의 덧셈·뺄셈 지원을 제거했어요(#4308).
  • 조인 조건에 서브쿼리가 포함됐을 때 계획 실패를 고쳤어요(#4380).
  • 윈도우 함수 인자에 서브쿼리가 나타날 때 실패하던 문제를 고쳤어요(#4127).
  • WITH 절의 서브쿼리에 숨은 컬럼이 포함됐을 때 실패하던 문제를 고쳤어요(#4423).
  • GROUP BY 절에서 대소문자가 다른 타입 이름을 참조할 때 실패하던 문제를 고쳤어요(#2960).
  • ORDER BY 절의 표현식이 SELECT 절의 표현식과 대소문자가 다를 때 DISTINCT가 포함된 쿼리가 실패하던 문제를 고쳤어요(#4233).
  • 레거시 클라이언트에 대한 TIMESTAMPTIMESTAMP WITH TIME ZONE의 잘못된 타입 보고를 고쳤어요(#4408).
  • 레거시 클라이언트에 대한 중첩 TIMESTAMP·TIMESTAMP WITH TIME ZONE 질의 실패를 고쳤어요(#4475, #4425).
  • +NNNN 형태의 오프셋을 가진 time zone이 있는 타임스탬프를 파싱할 때 실패하던 문제를 고쳤어요(#4490).

JDBC 드라이버

  • 음수 연도나 9999보다 큰 연도를 가진 TIMESTAMPTIMESTAMP WITH TIME ZONE 값 읽기 문제를 고쳤어요(#4364).
  • TIMESTAMPTIMESTAMP WITH TIME ZONE 타입의 잘못된 컬럼 크기 메타데이터를 고쳤어요(#4411).
  • 세션 시간대가 JDBC가 실행되는 JVM의 기본 시간대와 다른 시간대로 설정됐을 때 ResultSet.getDate(), ResultSet.getTime(), ResultSet.getTimestamp() 메서드가 올바른 값을 반환하도록 고쳤어요. 이전 동작은 useSessionTimeZone JDBC 연결 파라미터로 일시적으로 복원할 수 있어요(#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-userconnection-password 설정 속성으로 자격 증명을 제공할 수 있게 했어요. 이 속성들은 이전에는 연결 풀링이 활성화되면 무시됐어요(#4430).

Phoenix 커넥터

  • 공백이 있는 행 키(row key) 정의 처리 문제를 고쳤어요(#3251).

SPI

  • 커넥터가 ConnectorSplitManager.getSplits()에 전달된 새 DynamicFilter 객체를 통해 split이 생성되기 전에 동적 필터를 기다릴 수 있게 했어요(#4224).

더 알아보기 (Learn more)

물리 바이트 스캔 한도는 리소스 제어에 유용해요. Kudu의 grouped execution과 Kafka의 insert 지원은 각 커넥터 문서에서 자세히 확인해 보세요.