Release 319

Release 319 (2019년 9월 22일)

Presto 319 릴리스예요. 윈도우 함수 IGNORE NULLS, UNNEST 조인 지원, Azure Data Lake(adl) 파일 시스템, 스케줄러 정책 이름 변경 등이 담겼어요.

출처: Trino Release 319

본문

General

  • UNIONDISTINCT 집계가 포함된 쿼리의 계획 실패를 고쳤어요(#1510).
  • CASE가 포함된 표현식을 파싱할 때의 과도한 런타임을 고쳤어요(#1407).
  • EXPLAIN ANALYZE 출력의 조각(fragment) 출력 크기를 고쳤어요(#1345).
  • 윈도우 함수를 포함한 쿼리에 EXPLAIN ANALYZE를 실행할 때의 드문 실패를 고쳤어요(#1401).
  • 존재하지 않는 리소스 그룹에 대해 /v1/resourceGroupState 엔드포인트를 질의할 때 실패하던 문제를 고쳤어요(#1368).
  • table_schema에 대한 조건자 없이 table_name에 대한 등식 조건자로 information_schema.table_privileges를 읽을 때 잘못된 결과가 나오던 문제를 고쳤어요(#1534).
  • 상관 서브쿼리(correlated subquery)에 대한 강제 변환(coercion) 처리로 인한 계획 실패를 고쳤어요(#1453).
  • information_schema 테이블에 대한 쿼리 성능을 개선했어요(#1329).
  • 계획 중 메타데이터 질의를 줄였어요(#1308, #1455).
  • 조인 조건에 강제 변환과 복잡한 표현식이 포함된 특정 쿼리 성능을 개선했어요(#1390).
  • EXPLAIN (TYPE IO) 출력에 비용 추정치를 포함시켰어요(#806).
  • ORDER BYLIMIT이 포함된 상관 서브쿼리 지원을 개선했어요(#1415).
  • 자동 조인 순서(automatic join ordering)가 활성화됐을 때 특정 JOIN 쿼리 성능을 개선했어요(#1431).
  • sql.default-catalogsql.default-schema 설정 속성으로 기본 세션 카탈로그와 스키마를 설정할 수 있게 했어요(#1524).
  • 윈도우 함수에 대한 IGNORE NULLS 지원을 추가했어요(#1244).
  • UNNEST를 포함한 INNEROUTER 조인 지원을 추가했어요(#1522).
  • 레거시·플랫 스케줄러 정책을 각각 uniformtopology로 이름을 바꿨어요. 이들은 node-scheduler.policy 설정 속성으로 설정할 수 있어요(#10491).
  • node-scheduler.network-topology.type 설정 속성으로 설정할 수 있는 파일 네트워크 토폴로지 프로바이더를 추가했어요(#1500).
  • ST_Length()SphericalGeography 지원을 추가했어요(#1551).

Security

  • System 접근 제어에서 읽기 전용 접근(read-only access)을 설정할 수 있게 했어요(#1153).
  • 파일 기반 SystemAccessControl에 스키마 생성·이름 변경·삭제에 대한 누락된 검사를 추가했어요(#1153).
  • X-Forwarded-Proto 헤더를 포함한 전달(forwarded) 요청에 대해 HTTP로 인증을 허용하게 됐어요. 기본적으로 비활성화돼 있고, http-server.authentication.allow-forwarded-https 설정 속성으로 활성화할 수 있어요(#1442).

Web UI

  • 쿼리 완료 후 표시 정보가 불일치하게 되던 Query Timeline의 렌더링 버그를 고쳤어요(#1371).
  • Query Timeline에서 사용자 메모리 대신 총 메모리를 표시하도록 했어요(#1371).

CLI

  • 디버깅을 위해 서버 인증서 검증을 건너뛰는 --insecure 옵션을 추가했어요(#1484).

Hive 커넥터

  • information_schema 스키마를 포함하는 Hive 3.x 메타스토어에 연결할 때 information_schema 읽기와 SHOW SCHEMAS, SHOW TABLES, SHOW COLUMNS 문제를 고쳤어요(#1192).
  • GCS에서 데이터를 읽을 때 성능을 개선했어요(#1443).
  • 테이블 타입이 없는 Glue 메타스토어의 테이블에 접근할 수 있게 했어요(#1343).
  • Azure Data Lake(adl) 파일 시스템 지원을 추가했어요(#1499).
  • hive.s3-file-system-type 설정 속성에 HADOOP_DEFAULT를 지정해 기본 Hadoop 구성을 사용함으로써 커스텀 S3 파일 시스템을 사용할 수 있게 했어요(#1397).
  • hive.metastore.glue.use-instance-credentials 설정 속성을 통해 Glue 메타스토어에 대한 인스턴스 자격 증명 지원을 추가했어요(#1363).
  • hive.metastore.glue.aws-credentials-provider 설정 속성을 통해 Glue 메타스토어에 대한 커스텀 자격 증명 프로바이더 지원을 추가했어요(#1363).
  • 메타스토어 캐싱을 활성화할 때 hive.metastore-refresh-interval 설정 속성을 설정하지 않아도 되게 했어요(#1473).
  • TEXTFILE 형식 테이블에 대한 커스텀 필드 구분자를 지원하는 textfile_field_separatortextfile_field_separator_escape 테이블 속성을 추가했어요(#1439).
  • $file_size$file_modified_time 숨은 컬럼을 추가했어요(#1428).
  • hive.metastore-timeout 설정 속성이 이제 Thrift 메타스토어를 쓸 때만 받아들여져요. 이전에는 다른 메타스토어 타입에서도 받아들여졌지만 무시됐어요(#1346).
  • 트랜잭션 테이블(transactional tables)에서의 읽기를 금지했어요. 이전에는 읽기가 동작하는 것처럼 보였지만 데이터를 반환하지 않았어요(#1218).
  • 트랜잭션 테이블에 대한 쓰기를 금지했어요. 이전에는 쓰기가 동작하는 것처럼 보였지만 데이터가 잘못 기록됐어요(#1218).

더 알아보기 (Learn more)

윈도우 함수 IGNORE NULLS는 최신 Trino SQL 문서에서 자세히 확인할 수 있어요. 스케줄러 정책(uniform/topology)과 트랜잭션 테이블 제한은 운영상 중요한 주제니 함께 보면 좋아요.