맨위로가기

트리노 (SQL 쿼리 엔진)

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

트리노(Trino)는 대규모 데이터 웨어하우스에서 대화형 쿼리를 실행하기 위해 개발된 오픈 소스 분산 SQL 쿼리 엔진이다. 페이스북에서 시작된 Presto 프로젝트를 포크하여 2020년 12월 PrestoSQL에서 Trino로 이름이 변경되었다. 자바 언어로 작성되었으며, 코디네이터와 워커로 구성된 서버 클러스터에서 실행된다. ANSI SQL 표준을 준수하며, 컴퓨팅과 스토리지 분리를 지원하여 온프레미스 및 클라우드 환경 모두에 배포할 수 있다. 트리노는 분산 컴퓨팅 MPP 아키텍처를 활용하여 대규모 데이터 처리에 적합하다.

더 읽어볼만한 페이지

  • 하둡 - 아파치 하둡
    아파치 하둡은 대용량 데이터를 분산 처리하기 위한 자바 기반의 오픈 소스 프레임워크로, HDFS, 맵리듀스, YARN 등의 모듈로 구성되어 클라우드 환경에서도 사용된다.
  • 하둡 - 맵리듀스
    맵리듀스는 대용량 데이터 처리를 위해 구글에서 개발한 프로그래밍 모델이자 프레임워크로, Map과 Reduce 함수를 사용하여 데이터를 병렬 처리하며 하둡 등의 오픈 소스 구현을 통해 널리 쓰인다.
  • 자유 시스템 소프트웨어 - 리눅스 커널
    리눅스 커널은 1991년 리누스 토르발스가 개발을 시작한 UNIX에서 영감을 받은 운영 체제 커널로, GPLv2 라이선스를 채택하여 자유로운 사용과 배포를 허용하며 다양한 하드웨어 아키텍처를 지원하고 모듈형 구조를 통해 장치 드라이버 추가가 가능하다.
  • 자유 시스템 소프트웨어 - ZeroMQ
    ZeroMQ는 다양한 메시징 패턴을 지원하고 높은 성능을 제공하는 메시지 라이브러리이다.
  • 클라우드 플랫폼 - 마이크로소프트 애저
    마이크로소프트 애저는 전 세계 데이터 센터를 통해 600개 이상의 서비스를 제공하는 마이크로소프트의 클라우드 컴퓨팅 플랫폼으로, 다양한 컴퓨팅, 데이터베이스, 스토리지, AI, IoT 기능과 개발자 지원 서비스를 제공하지만 복잡한 가격 모델과 서비스 장애 및 보안 문제가 우려된다.
  • 클라우드 플랫폼 - 헤로쿠
    헤로쿠는 James Lindenbaum, Adam Wiggins, Orion Henry에 의해 개발되어 세일즈포스닷컴에 인수된 클라우드 플랫폼 서비스이며, 다양한 프로그래밍 언어와 데이터베이스를 지원하고 여러 서비스를 제공하며, 보안 침해와 무료 플랜 중단, 플랫폼 재구축을 겪었다.
트리노 (SQL 쿼리 엔진) - [IT 관련 정보]에 관한 문서
기본 정보
트리노 로고
트리노 로고
개발자Martin Traverso, Dain Sundstrom, David Phillips, Eric Hwang
리포지토리Trino Repository
프로그래밍 언어자바
운영체제크로스 플랫폼
표준ANSI SQL, JDBC
장르데이터 웨어하우스
라이선스아파치 라이선스 2.0
웹사이트트리노 공식 웹사이트
개요
설명오픈 소스 분산 SQL 쿼리 엔진

2. 역사

Presto 및 Trino는 페이스북(Facebook)의 Martin, Dain, David, Eric Hwang이 아파치 하둡(Apache Hadoop)의 대규모 데이터 웨어하우스에서 데이터 분석가가 대화형 쿼리를 실행할 수 있도록 설계 및 개발했다. Trino는 초기 6년간 Presto 프로젝트로 개발되었다.[9][10] Trino의 초기 역사에 대한 자세한 내용은 Presto 역사 섹션을 참조하면 된다.

Trino는 클라우드 제공 업체 및 기타 공급 업체의 여러 데이터 플랫폼 및 제품에서 사용된다. 이러한 제품의 사용자 지정은 순수한 Trino 사용부터 특정 데이터 사용을 위한 특수 데이터 플랫폼, 데이터 플랫폼 또는 통합을 실행하기 위한 고도로 사용자 정의된 시스템에 이르기까지 다양하다. [https://trino.io/users Amazon Athena, Starburst Galaxy, Dune 등이 그 예이다.]

2. 1. Presto 프로젝트 포크 및 Trino 탄생

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

2020년 12월, PrestoSQL은 Trino로 브랜드명을 변경했다. Trino 소프트웨어 재단, 코드 베이스 및 기타 모든 PrestoSQL 자산들도 함께 변경되었다.[8]

2. 2. 페이스북에서의 개발 및 발전

페이스북(Facebook)의 Martin, Dain, David, Eric Hwang은 데이터 분석가가 아파치 하둡(Apache Hadoop)의 대규모 데이터 웨어하우스에서 대화형 쿼리를 실행할 수 있도록 Trino(Presto)를 설계 및 개발하였다.[9][10] Trino는 초기 6년간 Presto 프로젝트로 개발되었다.[9][10]

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

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

3. 구조



Trino는 자바로 작성되었으며, 코디네이터와 워커라는 두 가지 유형의 노드로 구성된 클러스터 아키텍처를 갖는다.[39] 클라이언트의 쿼리 요청을 처리하고, 여러 워커 노드에 작업을 분산시켜 대규모 데이터를 빠르게 처리한다. 주요 구성 요소는 다음과 같다.

  • '''코디네이터''': 클라이언트 쿼리를 처리하고, 쿼리 실행 계획을 수립하여 워커에 작업을 분배한다.
  • '''워커''': 코디네이터의 지시에 따라 실제로 데이터를 처리하고, 결과를 다시 코디네이터에게 반환한다.


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

3. 1. 코디네이터 (Coordinator)



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

3. 2. 워커 (Worker)

워커는 스케줄러로부터 할당받은 작업 및 연산자를 실행한다. 이러한 작업은 데이터 소스에서 행을 처리하며, 결과는 코디네이터에 반환되어 최종적으로 클라이언트에게 반환된다.[40] 워커에 도달한 데이터는 파이프라인 연산자를 통해 여러 스레드에서 처리되므로, Trino는 빠른 속도로 대규모 데이터를 처리할 수 있다.[40]

3. 3. ANSI SQL 표준 준수

Trino는 ANSI SQL 표준을 준수하며[41], SQL-92, SQL:1999, SQL:2003, SQL:2008, SQL:2011, SQL:2016, SQL:2023 등 다양한 ANSI SQL 사양을 지원한다.[13][27]

3. 4. 분산 처리 아키텍처

Trino는 분산 컴퓨팅 및 MPP 아키텍처를 사용하여 대규모 데이터 세트를 효율적으로 처리한다.[40][11][25] 쿼리 처리를 여러 워커 노드에 분산시켜 병렬로 처리하고, 파이프라인 처리를 통해 빠른 속도로 데이터를 처리한다.[40][11][25]

Trino는 자바로 작성되었으며,[39][12][26] '''코디네이터'''와 '''워커'''라는 두 가지 유형의 노드를 포함하는 서버 클러스터에서 실행된다.[40][11][25]

  • 코디네이터: 클라이언트가 제출한 쿼리를 구문 분석, 분석, 최적화, 계획 및 스케줄링하는 역할을 한다. 코디네이터는 서비스 제공자 인터페이스 (SPI)와 상호 작용하여 사용 가능한 테이블, 테이블 통계 및 작업을 수행하는 데 필요한 기타 정보를 얻는다.[40][11][25]
  • 워커: 스케줄러에서 제공하는 작업 및 연산자를 실행하는 역할을 한다. 이러한 작업은 코디네이터로 반환되고 궁극적으로 클라이언트로 반환되는 결과를 생성하는 데이터 소스의 행을 처리한다.[40][11][25]


Trino는 임의 분할 작업을 실행하거나 기본 데이터 저장소의 데이터에 있는 기존 파티션에 의존하여 여러 워커에 작업을 분산한다. 이 데이터가 워커에 도달하면 여러 스레드에서 수행되는 파이프라인 연산자를 통해 데이터가 처리된다.[11][25]

3. 5. 컴퓨팅과 스토리지 분리

Trino는 컴퓨팅과 스토리지를 분리하여[41] 온프레미스 및 클라우드 환경 모두에서 유연하게 배포하고 확장할 수 있다.[42] 이러한 특징은 다양한 환경에서 데이터 분석 요구를 충족시키는 데 기여한다.

참조

[1] 웹사이트 Overview — Trino 393 Documentation https://trino.io/doc[...] 2022-08-25
[2] 웹사이트 Hive connector — Trino 393 Documentation https://trino.io/doc[...]
[3] 웹사이트 Iceberg connector — Trino 393 Documentation https://trino.io/doc[...] 2022-08-25
[4] 웹사이트 Connectors — Trino 393 Documentation https://trino.io/doc[...] 2022-08-25
[5] 웹사이트 trinodb/trino LICENSE https://github.com/t[...] Trino 2022-08-25
[6] 웹사이트 Presto Software Foundation Launches to Advance Presto Open Source Community https://www.prweb.co[...] 2019-02-01
[7] 웹사이트 Presto's New Foundation Signals Growth for the Big Data SQL Engine https://thenewstack.[...] 2019-02-01
[8] 웹사이트 We're rebranding PrestoSQL as Trino https://trino.io/blo[...] 2020-12-27
[9] 웹사이트 Contributors to trinodb/trino https://github.com/t[...] 2021-09-20
[10] 웹사이트 Contributors to prestodb/presto https://github.com/p[...] 2021-09-20
[11] 서적 Trino: The Definitive Guide O'Reilly Media, Inc, USA 2021-01-01
[12] 서적 Trino: The Definitive Guide O'Reilly Media, Inc, USA 2021-01-01
[13] 서적 Trino: The Definitive Guide O'Reilly Media, Inc, USA 2021-01-01
[14] 서적 Trino: The Definitive Guide O'Reilly Media, Inc, USA 2021-01-01
[15] 웹사이트 Overview — Trino current Documentation https://trino.io/doc[...] 2023-02-24
[16] 웹사이트 Hive connector — Trino current Documentation https://trino.io/doc[...] 2023-02-24
[17] 웹사이트 Iceberg connector — Trino current Documentation https://trino.io/doc[...] 2023-02-24
[18] 웹사이트 Connectors — Trino current Documentation https://trino.io/doc[...] 2023-02-24
[19] 웹사이트 trinodb/trino LICENSE https://github.com/t[...] Trino 2022-08-25
[20] 웹사이트 Presto Software Foundation Launches to Advance Presto Open Source Community https://www.prweb.co[...] 2019-02-01
[21] 웹사이트 Presto's New Foundation Signals Growth for the Big Data SQL Engine https://thenewstack.[...] 2019-02-01
[22] 웹사이트 We’re rebranding PrestoSQL as Trino https://trino.io/blo[...] 2020-12-27
[23] 웹사이트 Contributors to trinodb/trino https://github.com/t[...] 2021-09-20
[24] 웹사이트 Contributors to prestodb/presto https://github.com/p[...] 2021-09-20
[25] 서적 Trino: The Definitive Guide O'Reilly Media, Inc, USA 2021-01-01
[26] 서적 Trino: The Definitive Guide O'Reilly Media, Inc, USA 2021-01-01
[27] 서적 Trino: The Definitive Guide O'Reilly Media, Inc, USA 2021-01-01
[28] 서적 Trino: The Definitive Guide O'Reilly Media, Inc, USA 2021-01-01
[29] 웹인용 Overview — Trino 393 Documentation https://trino.io/doc[...] 2022-08-25
[30] 웹인용 Iceberg connector — Trino 393 Documentation https://trino.io/doc[...] 2022-08-25
[31] 웹인용 Hive connector — Trino 393 Documentation https://trino.io/doc[...]
[32] 웹인용 Connectors — Trino 393 Documentation https://trino.io/doc[...] 2022-08-25
[33] 웹인용 trinodb/trino LICENSE https://github.com/t[...] Trino 2022-08-25
[34] 웹인용 Presto Software Foundation Launches to Advance Presto Open Source Community https://www.prweb.co[...] 2019-02-01
[35] 웹인용 Presto's New Foundation Signals Growth for the Big Data SQL Engine https://thenewstack.[...] 2019-02-01
[36] 웹인용 "We're rebranding PrestoSQL as Trino" https://trino.io/blo[...] 2021-09-07
[37] 웹인용 Contributors to trinodb/trino https://github.com/t[...] 2021-09-20
[38] 웹인용 Contributors to prestodb/presto https://github.com/p[...] 2021-09-20
[39] 서적 Trino: The Definitive Guide O'Reilly Media, Inc, USA 2021
[40] 서적 Trino: The Definitive Guide O'Reilly Media, Inc, USA 2021
[41] 서적 Trino: The Definitive Guide O'Reilly Media, Inc, USA 2021
[42] 서적 Trino: The Definitive Guide O'Reilly Media, Inc, USA 2021



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com