트리노 (SQL 쿼리 엔진)

위키백과, 우리 모두의 백과사전.

트리노
Trino
원저자Martin Traverso, Dain Sundstrom, David Phillips, Eric Hwang
저장소Trino Repository
프로그래밍 언어자바
운영 체제크로스 플랫폼
표준ANSI SQL, JDBC
종류데이터 웨어하우스
라이선스아파치 라이선스 2.0
웹사이트trino.io

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

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

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

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

구조[편집]

코디네이터 및 워커가 포함된 Trino 아키텍처 개요[12]

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

  • 코디네이터는 클라이언트가 제출한 쿼리를 파싱하고 분석하며 최적화, 계획 및 스케줄링을 담당한다. 코디네이터는 서비스 공급자 인터페이스 (SPI)와 상호 작용하여 작업을 수행하는 데 필요한 사용 가능한 테이블, 테이블 통계 및 기타 정보를 얻는다.[12]
  • 워커들은 스케줄러로부터 할당된 작업과 연산자를 실행하는 역할을 맡는다. 이러한 작업은 데이터 소스에서 행을 처리하며, 결과는 코디네이터에 반환되어 최종적으로 클라이언트에게 반환된다.[12]

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

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

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

더 보기[편집]

참조[편집]

  1. “Overview — Trino 393 Documentation”. 《trino.io》. 2022년 8월 25일에 확인함. 
  2. “Hive connector — Trino 393 Documentation”. 《trino.io》. 
  3. “Iceberg connector — Trino 393 Documentation”. 《trino.io》. 2022년 8월 25일에 확인함. 
  4. Fuller, Matt; Moser, Manfred; Traverso, Martin (2021). 〈Chapter 1. Introducing Trino〉. 《Trino: The Definitive Guide》. O'Reilly Media, Inc, USA. 3–17쪽. ISBN 9781098107710. 
  5. “Connectors — Trino 393 Documentation”. 《trino.io》. 2022년 8월 25일에 확인함. 
  6. “trinodb/trino LICENSE”. Trino. 2022년 8월 25일. 2022년 8월 25일에 확인함. 
  7. “Presto Software Foundation Launches to Advance Presto Open Source Community”. 《PRWeb》. 2019년 2월 1일에 확인함. 
  8. “Presto's New Foundation Signals Growth for the Big Data SQL Engine”. 《The New Stack》 (미국 영어). 2019년 1월 31일. 2019년 2월 1일에 확인함. 
  9. Traverso, Martin; Sundstrom, Dain; Phillips, David (2020년 12월 27일). “We're rebranding PrestoSQL as Trino”. 《trino.io》 (영어). 2021년 9월 7일에 확인함. 
  10. “Contributors to trinodb/trino”. 《GitHub》 (영어). 2021년 9월 20일에 확인함. 
  11. “Contributors to prestodb/presto”. 《GitHub》 (영어). 2021년 9월 20일에 확인함. 
  12. Fuller, Matt; Moser, Manfred; Traverso, Martin (2021). 〈Chapter 4. Trino Architecture〉. 《Trino: The Definitive Guide》. O'Reilly Media, Inc, USA. 43–72쪽. ISBN 9781098107710. 
  13. Fuller, Matt; Moser, Manfred; Traverso, Martin (2021). 〈Chapter 2. Installing and Configuring Trino〉. 《Trino: The Definitive Guide》. O'Reilly Media, Inc, USA. 19–24쪽. ISBN 9781098107710. 
  14. Fuller, Matt; Moser, Manfred; Traverso, Martin (2021). 〈Chapter 13. Real-World Examples〉. 《Trino: The Definitive Guide》. O'Reilly Media, Inc, USA. 267–272쪽. ISBN 9781098107710. 

외부 링크[편집]