트리노 (SQL 쿼리 엔진)

트리노(Trino)는 분산 SQL 쿼리 엔진으로, 하나 이상의 혼성 데이터 소스에 분산된 대규모 데이터 세트를 쿼리하기 위해 설계된 오픈 소스 소프트웨어이다. Trino는 Hive 및 Iceberg 테이블 형식을 사용하여 HDFS, AWS S3, Google Cloud Storage 또는 Azure Blob Storage 같은 다양한 스토리지 시스템에 존재하는 ORC 또는 Parquet 와 같은 개방형 열 지향 데이터 파일 형식을 포함하는 데이터레이크를 쿼리할 수 있다. . 또한 Trino는 MySQL, PostgreSQL, Cassandra, Kafka, MongoDB, 그리고 Elasticsearch 와 같은 다양한 데이터 소스의 테이블을 쿼리하는 페더레이션 쿼리를 실행할 수 있다. Trino는 Apache 라이선스에 따라 배포된다.

2019년 1월, Presto 의 최초 제작자인 Martin Traverso, Dain Sundstrom 그리고 David Phillips는 Presto 프로젝트의 포크를 만들었다. 그들은 초기에는 Presto라는 이름을 유지하고 PrestoSQL 웹 핸들을 사용하여 원래의 PrestoDB 프로젝트와 구별했다. 동시에 Presto 소프트웨어 재단을 발표했다. 이 재단은 Presto 오픈 소스 분산 SQL 쿼리 엔진의 발전에 헌신하는 비영리 단체이다.

2020년 12월, PrestoSQL은 Trino로 리브랜딩되었다. Trino 소프트웨어 재단, 코드 기반 및 모든 기타 PrestoSQL 자산은 이 리브랜딩의 일환으로 이름이 변경되었다.

Presto와 Trino는 대용량  데이터 웨어하우스인  Apache Hadoop 에서 상호작용형 쿼리를 실행할 수 있도록 Facebook의 Martin, Dain, David, 그리고 Eric Hwang이 설계하고 개발한 프로그램이다. 이를 통해 데이터 분석가들은 보다 효율적으로 작업을 수행할 수 있다. Trino는 Presto 프로젝트와 처음 6년간의 개발을 공유한다. Trino의 초기 역사에 대해 자세히 알아보려면 Presto 역사 섹션을 참조하십시오.

구조 

Trino는 Java 로 작성되었다. 코디네이터 와 워커라는 두 가지 유형의 노드가 포함된 서버 클러스터에서 실행된다.

 코디네이터는 클라이언트가 제출한 쿼리를 파싱하고 분석하며 최적화, 계획 및 스케줄링을 담당한다. 코디네이터는 서비스 공급자 인터페이스 (SPI)와 상호 작용하여 작업을 수행하는 데 필요한 사용 가능한 테이블, 테이블 통계 및 기타 정보를 얻는다.

 워커들은 스케줄러로부터 할당된 작업과 연산자를 실행하는 역할을 맡는다. 이러한 작업은 데이터 소스에서 행을 처리하며, 결과는 코디네이터에 반환되어 최종적으로 클라이언트에게 반환된다.

Trino는 ANSI SQL 표준을 준수하며 다음과 같은 ANSI 사양의 다양한 부분을 포함한다: SQL-92, SQL:1999, SQL:2003, SQL:2008, SQL:2011, SQL:2016 .

Trino는 컴퓨팅과 스토리지의 분리를 지원하며 온프레미스 및 클라우드 모두에 배포할 수 있다.

Trino는 분산 컴퓨팅 MPP 아키텍처를 갖추고 있다. 이 프로그램은 작업을 여러 워커에게 배포하기 위해 먼저 임시 파티셔닝 작업을 실행하거나 기본 데이터 저장소의 데이터에 있는 기존 파티션에 의존한다. 워커에 도달한 데이터는 파이프라인 연산자를 통해 여러 스레드에서 처리된다. 이를 통해 Trino는 빠른 속도로 대규모 데이터를 처리할 수 있다.

더 보기 

 Presto(SQL 쿼리 엔진)
 빅 데이터
 데이터 집약적 컴퓨팅
 아파치 드릴
 컴퓨터 클러스터

참조

외부 링크 

 Trino 소프트웨어 재단(구 Presto 소프트웨어 재단)

SQL
자유 시스템 소프트웨어
하둡
클라우드 플랫폼
자바 플랫폼