Trino 0.76 릴리스 노트

Trino 0.76 릴리스 노트

Trino 0.76 릴리스 노트입니다. 이번 릴리스에서는 Kafka, MySQL, PostgreSQL 커넥터와 여러 개선이 추가됐어요.

출처: 문서

본문

Kafka 커넥터

이 릴리스는 Presto에서 Apache Kafka 토픽 데이터를 조회할 수 있게 하는 커넥터를 추가해요. 토픽은 실시간일 수 있으며 반복 쿼리가 새 데이터를 가져와요.

Apache Kafka 0.8+를 지원하지만 Apache Kafka 0.8.1+를 권장해요. 커넥터 구성에 대한 광범위한 문서와 시작하는 튜토리얼이 있어요.

MySQL과 PostgreSQL 커넥터

이 릴리스는 외부 관계형 데이터베이스에서 테이블을 조회하고 만드는 MySQL 커넥터PostgreSQL 커넥터를 추가해요. 이는 MySQL과 Hive 같은 서로 다른 시스템 간, 또는 두 개의 서로 다른 MySQL이나 PostgreSQL 인스턴스 간, 또는 어떤 조합으로든 데이터를 조인하거나 복사하는 데 사용할 수 있어요.

Cassandra

Cassandra 커넥터 구성 속성 cassandra.client.read-timeoutcassandra.client.connect-timeout이 이제 밀리초가 아닌 기간(duration)으로 지정돼요(이로써 Presto의 다른 모든 유사 속성과 일관성이 생겨요). 이전에 25 같은 값을 지정했다면 25ms로 변경하세요.

Cassandra 클라이언트의 재시도 정책이 이제 cassandra.retry-policy 속성으로 구성할 수 있어요. 특히 커스텀 BACKOFF 재시도 정책이 유용할 수 있어요.

Hive

Hive 커넥터 구성 속성 hive.s3.socket-timeout으로 Amazon S3를 읽거나 쓰는 쿼리의 소켓 시간 초과를 변경할 수 있어요. 또한 이전에 추가된 hive.s3.max-connections 속성은 존중되지 않고 항상 기본값 500을 사용했어요.

Hive는 테이블의 파티션이 테이블과 다른 스키마를 가질 수 있게 해 줘요. 특히 기존 파티션의 컬럼 타입을 바꾸지 않고 컬럼의 타입을 변경하는 것을 허용해요. Hive 커넥터는 이를 지원하지 않으며, 컬럼 타입이 STRING 같은 비숫자 타입에서 BIGINT 같은 숫자 타입으로 변환됐고 기존 파티션의 실제 데이터가 숫자가 아니라면 RCFile Text 형식으로 저장된 파티션에 대해 이전에 쓰레기 데이터를 반환할 수 있었어요. Hive 커넥터는 이제 이 시나리오를 감지하고 파티션 메타데이터를 읽은 뒤 쿼리를 실패시켜요.

hive.storage-format 속성은 깨져 있어 비활성화됐어요. 이 속성은 메타데이터에 저장 형식을 설정하지만 테이블을 항상 RCBINARY로 써요. 이는 향후 릴리스에서 구현될 예정이에요.

일반 (General)

  • Verifier에서 예외 발생 시 멈춤(hang)을 수정했어요.
  • chr() 함수가 ASCII 코드 포인트 대신 Unicode 코드 포인트로 동작하도록 수정했어요.
  • JDBC 드라이버가 종료 시 더 이상 JVM을 멈추지 않아요(모든 스레드가 데몬 스레드예요).
  • 함수 인자 파싱 오류를 수정했어요.
  • 바이트코드 컴파일러가 이제 조인과 group by 쿼리에 대해 생성된 코드를 캐시해, 이런 유형의 쿼리 성능과 CPU 효율을 개선해야 해요.
  • 파티션이 많은 테이블에 대한 특정 간단한 쿼리의 계획 성능을 개선했어요.
  • 큰 출력 페이지 생성을 피하도록 했어요. 이는 "Remote page is too large" 오류의 일부 경우를 완화해야 해요.
  • 코디네이터/워커 통신 레이어가 이제 완전히 비동기예요. 구체적으로 긴 폴링(long-poll) 요청이 더 이상 워커의 스레드를 점유하지 않아요. 이는 부하가 높은 클러스터를 더 효율적으로 만듭니다.

더 알아보기 (Learn more)

Trino 0.76의 변경 사항을 더 자세히 확인하고 싶다면 공식 릴리스 노트를 참고해 주세요.