Trino는 빅데이터 분석을 위한 빠른 분산 SQL 쿼리 엔진입니다.
배포 지침 및 최종 사용자 설명서는 사용자 설명서를 참조하세요.
모든 Trino 조직 프로젝트의 개발에 대해 알아보세요.
웹사이트의 개발 섹션에 있는 추가 정보에는 기여자, 검토자, 유지관리자, 관련 프로세스 및 기타 측면과 같은 다양한 역할이 포함됩니다.
SPI, 커넥터 및 기타 플러그인 플러그인 구현, 클라이언트 프로토콜, 테스트 작성 및 기타 하위 수준 세부 정보에 대한 정보는 Trino 개발자 가이드를 참조하세요.
코드 스타일, 개발 프로세스 및 지침에 대한 자세한 내용은 개발을 참조하세요.
기여 요건은 CONTRIBUTING을 참조하세요.
취약점 보고에 대한 자세한 내용은 프로젝트 보안 정책을 참조하세요.
Trino는 버전 449부터 재현 가능한 빌드를 지원합니다.
Trino는 표준 Maven 프로젝트입니다. 프로젝트 루트 디렉터리에서 다음 명령을 실행하기만 하면 됩니다.
./mvnw clean install -DskipTests
첫 번째 빌드에서 Maven은 인터넷에서 모든 종속성을 다운로드하고 이를 로컬 저장소( ~/.m2/repository
)에 캐시합니다. 연결 속도에 따라 다소 시간이 걸릴 수 있습니다. 후속 빌드가 더 빨라졌습니다.
Trino에는 실행하는 데 상당한 시간이 걸리므로 위 명령으로 비활성화되는 포괄적인 테스트 세트가 있습니다. 이러한 테스트는 끌어오기 요청을 제출할 때 CI 시스템에 의해 실행됩니다. 변경하는 코드 영역에 대해서만 로컬에서 테스트를 실행하는 것이 좋습니다.
처음으로 Trino를 빌드한 후 프로젝트를 IDE에 로드하고 서버를 실행할 수 있습니다. IntelliJ IDEA를 사용하는 것이 좋습니다. Trino는 표준 Maven 프로젝트이므로 IDE로 쉽게 가져올 수 있습니다. IntelliJ의 빠른 시작 상자에서 프로젝트 열기를 선택하거나 파일 메뉴에서 열기를 선택하고 루트 pom.xml
파일을 선택합니다.
IntelliJ에서 프로젝트를 연 후 Java SDK가 프로젝트에 대해 올바르게 구성되었는지 다시 확인하세요.
개발을 위해 Trino를 실행하는 가장 간단한 방법은 TpchQueryRunner
클래스를 실행하는 것입니다. TPCH 커넥터로 구성된 서버의 개발 버전이 시작됩니다. 그런 다음 CLI를 사용하여 이 서버에 대해 쿼리를 실행할 수 있습니다. 다른 많은 커넥터에는 특정 커넥터에서 작업할 때 사용할 수 있는 자체 *QueryRunner
클래스가 있습니다.
Trino에는 개발 시 즉시 사용할 수 있는 샘플 구성이 함께 제공됩니다. 실행 구성을 생성하려면 다음 옵션을 사용하십시오.
io.trino.server.DevelopmentServer
-ea -Dconfig=etc/config.properties -Dlog.levels-file=etc/log.properties -Djdk.attach.allowAttachSelf=true
$MODULE_DIR$
trino-server-dev
작업 디렉터리는 trino-server-dev
하위 디렉터리여야 합니다. IntelliJ에서는 $MODULE_DIR$
사용하면 이 작업이 자동으로 수행됩니다.
대화 상자에 VM options
없으면 Modify options
선택하고 Add VM options
활성화해야 합니다.
개발 서버에 사용할 수 있는 플러그인을 조정하려면 config.properties
에서 plugin.bundles
값을 조정하세요. 이 목록의 각 항목은 다음 옵션 중 하나로 지정된 플러그인을 나타내야 합니다.
pom.xml
또는 *.pom
파일의 경로입니다.<groupId>:<artifactId>[:<extension>[:<classifier>]]:<version>
형식의 Maven 좌표입니다. 플러그인은 Maven을 통해 로드되므로 로컬 저장소나 원격 저장소에서 사용할 수 있어야 합니다. 카탈로그에서 플러그인을 사용하려면 해당 <catalog_name>.properties
파일을 testing/trino-server-dev/etc/catalog
에 추가해야 합니다.
CLI를 시작하여 서버에 연결하고 SQL 쿼리를 실행합니다.
client/trino-cli/target/trino-cli-*-executable.jar
쿼리를 실행하여 클러스터의 노드를 확인합니다.
SELECT * FROM system.runtime.nodes;
TPCH 커넥터에 대해 쿼리를 실행합니다.
SELECT * FROM tpch.tiny.region;