Trino 개발자 가이드 — 커넥터와 기능 확장하기

Trino 개발자 가이드 — 커넥터와 기능 확장하기

Trino를 그대로 쓰는 것을 넘어, 직접 기능을 확장하고 싶다면 개발자 가이드가 출발점이에요. 이 가이드는 Trino 기여자(contributor)와 플러그인 개발자를 위한 문서로, SPI(서비스 제공자 인터페이스)를 어떻게 구현하는지 설명해요. 커넥터를 새로 만들거나, 타입·함수·인증·이벤트 리스너를 추가하는 방법이 모두 여기 담겨 있어요.

출처: Trino 공식 문서 — Developer guide

본문

Trino는 플러그인 아키텍처로 동작해요. 표준화된 SPI를 구현하는 플러그인을 만들어 Trino에 탑재하면, 커널 코드를 건드리지 않고도 기능을 확장할 수 있어요. 프로세스·코드 스타일·리뷰 등 개발 절차는 Trino 웹사이트의 개발 섹션과 GitHub 소스의 DEVELOPMENT.md에 정리돼 있어요.

SPI 개요

개발자 가이드의 첫머리에는 SPI(Service Provider Interface) 개요가 있어요. 커넥터가 구현해야 할 핵심 인터페이스인 Connector를 중심으로, Trino 코어와 커넥터가 어떻게 상호작용하는지 이해하는 것이 확장 개발의 기본이에요.

커넥터 개발

새 데이터소스를 Trino에 연결하려면 커넥터를 구현해요.

  • HTTP 커넥터 예제: HTTP API를 호출하는 간단한 커넥터를 처음부터 구현
  • JDBC 커넥터 예제: JDBC 기반 데이터소스에 연결하는 커넥터 구현
  • INSERT / CREATE TABLE AS 지원: 데이터 쓰기 작업을 지원하도록 확장
  • MERGE 지원: 업서트(upsert) 형태의 변경 작업을 지원하도록 확장

트러블슈팅과 실수를 줄이려면 테스트 작성 가이드라인을 함께 읽는 걸 권장해요. Trino 프로젝트는 플러그인별 테스트 정책이 엄격해서, 예제 커넥터의 테스트 패턴을 그대로 따라가는 게 안전해요.

타입·함수·기타 확장 포인트

  • 타입(Types): 새로운 SQL 타입을 추가하는 방법
  • 함수(Functions): 스칼라 함수·집계 함수 등 새 함수 정의
  • 테이블 함수(Table functions): 테이블 반환 함수 지원
  • 시스템 접근 제어(System access control): 권한·접근 정책 커스터마이징
  • 패스워드·인증서·헤더 인증자(Authenticator): 인증 방식 확장
  • 그룹 공급자(Group provider): 그룹 멤버십 해석 확장
  • 이벤트 리스너(Event listener): 쿼리 이벤트를 외부 시스템에 전달
  • Trino 클라이언트 REST API: 클라이언트가 쓰는 REST 프로토콜

직접 커넥터를 만드는 일은 드물지만, 어떤 SPI가 커넥터·타입·함수를 제공하는지 파악해 두면 Trino 내부 동작을 이해하는 데 큰 도움이 돼요. 특히 쿼리 실행 모델에서 커넥터가 split과 페이지를 어떻게 제공하는지가 연결돼 있답니다.

더 알아보기