릴리스 360
릴리스 360 (2021년 7월 30일)
이번 릴리스에서는 상관 서브쿼리 개선과 동적 필터 전송, 그리고 여러 커넥터의 쓰기 구성 확장이 핵심이에요.
출처: Trino 릴리스 360 문서
본문
일반 (General)
GROUP BY나LIMIT, 복잡한 상관 필터 조건이 있는 상관 서브쿼리 지원을 개선했어요. (#8554)- 누적 쿼리 시스템 메모리 사용량을 보고해요. (#8615)
- 스키마가 비어 있지 않을 때는
DROP SCHEMA와DROP SCHEMA RESTRICT가 스키마를 떨어뜨리지 않도록 고쳤어요. (#8660) - 어떤 컬럼
col에 상수 조건(예:col=1)이 있고 그 뒤에ORDER BY col과LIMIT가 있을 때 쿼리가 실패하던 문제를 고쳤어요. (#8535) SHOW CREATE SCHEMA실패를 고쳤어요. (#8598)SHOW CREATE SCHEMA information_schema를 실행할 때 쿼리가 실패하던 문제를 고쳤어요. (#8600)WHERE절 평가 성능을 개선했어요. (#8624)- 코디네이터 네트워크 부하를 줄였어요. (#8460)
- 수집된 동적 필터를 코디네이터에서 워커로 보내 쿼리 성능을 개선했어요. (#5183)
- 조인 조건 양쪽 타입이 다른 부등식 조인의 성능을 개선했어요. (#8500)
IN ()표현식의 성능을 개선했어요. (#8639)
보안 (Security)
- 보안 내부 통신을 위한 TLS 자동 구성을 지원해요. 이로써 워커별 TLS 인증서를 프로비저닝할 필요가 없어졌어요. (#7954)
CLI
- 탭 버튼을 눌렀을 때 자동 완성 문제를 고쳤어요. (#8529)
ClickHouse 커넥터
- 쓰기 중 사용하는 JDBC 배치 크기를 제어하는
write.batch-size커넥터 구성값을 추가했어요.write_batch_size세션 속성으로도 제어할 수 있어요. (#8434) - INSERT 쿼리가 대상 테이블에 직접 쓰도록 허용하는
insert.non-transactional-insert.enabled구성값을 추가했어요. 트랜잭션 동작을 희생해 일부 경우 성능을 개선할 수 있어요.non_transactional_insert세션 속성으로도 제어할 수 있어요. (#8496)
Elasticsearch 커넥터
- IAM 역할 맡기(assume) 지원을 추가했어요. (#8714)
Hive 커넥터
- ORC ACID 트랜잭션 테이블에서
UPDATE나INSERT를 수행할 때 발생하던 데이터 손상을 고쳤어요. (#8268, #8452)
Iceberg 커넥터
- Trino 뷰 지원을 추가했어요. (#8540)
- Iceberg 테이블에 행 수준 삭제가 있을 때 쿼리를 실패시켜 잘못된 쿼리 결과를 방지했어요. (#8450)
- 버켓 Iceberg 테이블과 조인할 때 발생하던 쿼리 실패를 고쳤어요. (#7502)
- 버켓 Iceberg 테이블의 통계를 표시할 때 발생하던 쿼리 실패를 고쳤어요. (#8616)
- 구조적 컬럼(
array,map,row)이 있는 파티션 테이블과 조인할 때 발생하던 쿼리 실패를 고쳤어요. (#8647) - Parquet 형식으로 테이블을 쓰는 쿼리의 실패를 고쳤어요. (#5201)
- metastore 호출을 줄여 쿼리 계획 시간을 개선했어요. (#8676, #8689)
MemSQL 커넥터
- 쓰기 중 사용하는 JDBC 배치 크기를 제어하는
write.batch-size커넥터 구성값을 추가했어요.write_batch_size세션 속성으로도 제어할 수 있어요. (#8434) - INSERT 쿼리가 대상 테이블에 직접 쓰도록 허용하는
insert.non-transactional-insert.enabled구성값을 추가했어요. 트랜잭션 동작을 희생해 일부 경우 성능을 개선할 수 있어요.non_transactional_insert세션 속성으로도 제어할 수 있어요. (#8496) - 조건을 원격 데이터 소스로 완전히 프러시다운할 수 있는
DELETE문을 부분 지원해요. (#6287) - 쓰기 성능 회귀를 고쳤어요. (#8559)
MongoDB 커넥터
json타입 지원을 추가했어요. (#8352)- MongoDB
DBRef타입 읽기를 지원해요. (#3134)
MySQL 커넥터
- 쓰기 중 사용하는 JDBC 배치 크기를 제어하는
write.batch-size커넥터 구성값을 추가했어요.write_batch_size세션 속성으로도 제어할 수 있어요. (#8434) - INSERT 쿼리가 대상 테이블에 직접 쓰도록 허용하는
insert.non-transactional-insert.enabled구성값을 추가했어요. 트랜잭션 동작을 희생해 일부 경우 성능을 개선할 수 있어요.non_transactional_insert세션 속성으로도 제어할 수 있어요. (#8496) - 조건을 원격 데이터 소스로 완전히 프러시다운할 수 있는
DELETE문을 부분 지원해요. (#6287) - 쓰기 성능 회귀를 고쳤어요. (#8559)
Oracle 커넥터
- 쓰기 중 사용하는 JDBC 배치 크기를 제어하는
write.batch-size커넥터 구성값을 추가했어요.write_batch_size세션 속성으로도 제어할 수 있어요. (#8434) - INSERT 쿼리가 대상 테이블에 직접 쓰도록 허용하는
insert.non-transactional-insert.enabled구성값을 추가했어요. 트랜잭션 동작을 희생해 일부 경우 성능을 개선할 수 있어요.non_transactional_insert세션 속성으로도 제어할 수 있어요. (#8496) - 조건을 원격 데이터 소스로 완전히 프러시다운할 수 있는
DELETE문을 부분 지원해요. (#6287)
Phoenix 커넥터
- 쓰기 중 사용하는 JDBC 배치 크기를 제어하는
write.batch-size커넥터 구성값을 추가했어요.write_batch_size세션 속성으로도 제어할 수 있어요. (#8434) - INSERT 쿼리가 대상 테이블에 직접 쓰도록 허용하는
insert.non-transactional-insert.enabled구성값을 추가했어요. 트랜잭션 동작을 희생해 일부 경우 성능을 개선할 수 있어요.non_transactional_insert세션 속성으로도 제어할 수 있어요. (#8496) - Phoenix 5에서 정렬된 데이터의
ORDER BY ... LIMIT쿼리 성능을 개선했어요. (#8171) - 조건을 원격 데이터 소스로 완전히 프러시다운할 수 있는
DELETE문을 부분 지원해요. (#6287) - 쓰기 성능 회귀를 고쳤어요. (#8559)
PostgreSQL 커넥터
- 쓰기 중 사용하는 JDBC 배치 크기를 제어하는
write.batch-size커넥터 구성값을 추가했어요.write_batch_size세션 속성으로도 제어할 수 있어요. (#8434) - INSERT 쿼리가 대상 테이블에 직접 쓰도록 허용하는
insert.non-transactional-insert.enabled구성값을 추가했어요. 트랜잭션 동작을 희생해 일부 경우 성능을 개선할 수 있어요.non_transactional_insert세션 속성으로도 제어할 수 있어요. (#8496) - 조건을 원격 데이터 소스로 완전히 프러시다운할 수 있는
DELETE문을 부분 지원해요. (#6287)
Redshift 커넥터
- 쓰기 중 사용하는 JDBC 배치 크기를 제어하는
write.batch-size커넥터 구성값을 추가했어요.write_batch_size세션 속성으로도 제어할 수 있어요. (#8434) - INSERT 쿼리가 대상 테이블에 직접 쓰도록 허용하는
insert.non-transactional-insert.enabled구성값을 추가했어요. 트랜잭션 동작을 희생해 일부 경우 성능을 개선할 수 있어요.non_transactional_insert세션 속성으로도 제어할 수 있어요. (#8496) - 조건을 원격 데이터 소스로 완전히 프러시다운할 수 있는
DELETE문을 부분 지원해요. (#6287)
SQL Server 커넥터
- 쓰기 중 사용하는 JDBC 배치 크기를 제어하는
write.batch-size커넥터 구성값을 추가했어요.write_batch_size세션 속성으로도 제어할 수 있어요. (#8434) - INSERT 쿼리가 대상 테이블에 직접 쓰도록 허용하는
insert.non-transactional-insert.enabled구성값을 추가했어요. 트랜잭션 동작을 희생해 일부 경우 성능을 개선할 수 있어요.non_transactional_insert세션 속성으로도 제어할 수 있어요. (#8496) - 조건을 원격 데이터 소스로 완전히 프러시다운할 수 있는
DELETE문을 부분 지원해요. (#6287) - 쓰기 성능 회귀를 고쳤어요. (#8559)
SPI
- 구체화된 뷰 스토리지 테이블 컬럼을 캐스팅해 뷰 컬럼 타입과 일치시키도록 했어요. (#8408)
- 지원 중단된
ConnectorSplitManager#getSplits메서드 오버라이드를 제거했어요. (#8569) - 물리적으로 읽은 위치 추적을 위한
ConnectorPageSource#getCompletedPositions를 도입했어요. (#8524) - 지원 중단된
TupleDomain.transform을 제거했어요. (#8056)