BigData

오픈소스 분산 SQL 쿼리 엔진 Trino

kih5893 2023. 4. 5. 23:27

Trino란 무엇인가?

Trino는 이전에 Presto라는 이름으로 알려진 오픈소스 분산 SQL 쿼리 엔진입니다. Trino는 매우 높은 성능과 확장성을 제공하며, 여러 소스에서 데이터를 쉽게 조인하고 분석할 수 있도록 지원합니다. Trino는 다양한 데이터 소스를 지원하며, 빠른 속도로 대용량 데이터를 처리할 수 있습니다. 이러한 기능으로 Trino는 데이터 엔지니어링 및 분석 분야에서 인기 있는 도구 중 하나입니다.

Presto는 2012년 Facebook에서 개발된 분산 SQL 쿼리 엔진으로, 대용량 데이터 분석 및 처리를 위해 고안되었습니다. 그러나, Presto는 오랫동안 개발이 중지되어 사용자들은 Presto의 이전 버전을 계속 사용해야 했습니다.

이후, 2019년 Starburst Data라는 기업에서 Presto의 개발을 이어받아 새로운 프로젝트로 Trino를 출시했습니다. Trino는 Presto의 라이선스 및 코드 베이스를 기반으로 하지만, 사용자 경험과 개발 환경을 개선하기 위한 다양한 변경 사항이 포함되어 있습니다.

1. 개발 및 커뮤니티 활동의 증가: Trino의 개발 및 커뮤니티 활동은 Presto보다 더 활발하게 진행되고 있습니다. Trino는 Starburst Data를 비롯한 다양한 커뮤니티 기여자들에 의해 개발 및 유지보수가 지속적으로 이루어지고 있습니다.

2. 라이선스 변경: Presto는 Apache 2.0 라이선스를 사용하고 있지만, Trino는 Apache 2.0 라이선스를 기반으로 한 Trino Community License를 사용하고 있습니다. 이는 기업용 라이선스와 오픈소스 라이선스의 장점을 결합한 형태로, 사용자들이 더 많은 자유도를 가질 수 있도록 설계되었습니다.

3. 더 나은 사용자 경험: Trino는 Presto와 마찬가지로 높은 성능과 확장성을 제공하지만, 사용자 경험과 개발 환경을 개선하기 위한 다양한 변경 사항이 포함되어 있습니다. 예를 들어, Trino는 매우 빠른 쿼리 최적화 및 실행 기능을 제공하며, 사용자가 더 쉽게 데이터 소스와 연동할 수 있도록 다양한 커넥터를 제공합니다.

따라서, Trino는 Presto의 개선 및 확장 버전으로 생각할 수 있으며, Presto와 비교하여 더 많은 기능과 사용자 경험을 제공합니다.

 

Trino의 동작 방식은?

Trino는 분산 SQL 쿼리 엔진으로, 다수의 노드로 이루어진 클러스터에서 동작합니다. Trino 클러스터에는 쿼리 실행 엔진인 Coordinator 노드와 데이터를 처리하는 Worker 노드로 구성됩니다.

사용자는 SQL 쿼리를 Trino에 보내면, Coordinator 노드가 해당 쿼리를 처리합니다. 쿼리는 Coordinator 노드에서 실행 계획으로 변환되고, 각 Worker 노드에서 병렬로 처리됩니다. 쿼리 실행이 완료되면, 결과는 Coordinator 노드로 반환되어 사용자에게 제공됩니다.

또한, Trino는 다양한 데이터 소스와 연동이 가능합니다. Trino는 JDBC 및 ODBC 드라이버를 사용하여 다양한 데이터베이스와 연결할 수 있으며, Hadoop 분산 파일 시스템 (HDFS), Apache Cassandra, MongoDB, Amazon S3 등 다양한 데이터 소스를 지원합니다.


Trino의 주요 기능은?

Trino는 다양한 기능을 제공하여 대규모 데이터 처리 및 분석 작업을 수행할 수 있습니다.

1. 분산 쿼리: Trino는 분산 SQL 쿼리 엔진으로, 대용량 데이터 처리를 위해 분산 쿼리 처리를 제공합니다. Trino는 SQL 컴파일러를 사용하여 쿼리의 최적화를 수행하여 빠른 처리 속도를 제공합니다.

2. 다양한 데이터 소스 지원: Trino는 다양한 데이터 소스와 연동이 가능합니다. HDFS, Cassandra, MongoDB, Amazon S3, MySQL, PostgreSQL 등 다양한 데이터 소스를 지원합니다.

3. 스키마 추론 기능: Trino는 스키마 추론 기능을 제공하여, 데이터의 스키마를 자동으로 추론할 수 있습니다. 이를 통해 사용자는 데이터 소스의 스키마를 미리 정의할 필요 없이, 데이터를 쉽게 읽고 쿼리할 수 있습니다.

4. 다양한 데이터 형식 지원: Trino는 다양한 데이터 형식을 지원합니다. CSV, JSON, Parquet, ORC, Avro 등 다양한 파일 형식을 처리할 수 있으며, 비정형 데이터 처리를 위한 기능도 제공합니다.

5. 고급 함수 및 연산 지원: Trino는 다양한 고급 함수와 연산을 지원합니다. 예를 들어, 시계열 함수, 지리 정보 함수, 그리고 적극적인 머신 러닝 및 딥 러닝 기능과 같은 고급 함수 및 연산을 지원합니다.

6. 플러그인 아키텍처: Trino는 플러그인 아키텍처를 사용하여, 사용자 정의 데이터 소스와 커넥터를 쉽게 추가할 수 있습니다. 이를 통해 사용자는 다양한 데이터 소스와 연동하여 쿼리를 수행할 수 있습니다.

7. 시각화 및 대화형 데이터 분석 기능: Trino는 자체적으로 시각화 및 대화형 데이터 분석 기능을 제공하지는 않습니다. 하지만, Trino는 다양한 BI 도구 및 데이터 시각화 도구와 연동이 가능합니다. 따라서, 사용자는 Trino로부터 쿼리 결과를 가져와서 다양한 시각화 도구를 사용하여 데이터를 시각화할 수 있습니다.

 

결론

Trino는 오픈소스 분산 SQL 쿼리 엔진으로, 빠른 성능과 확장성을 제공하여 대규모 데이터 처리 작업을 수행할 수 있습니다. Trino는 다양한 데이터 소스를 지원하며, 스키마 추론 기능과 다양한 데이터 형식 지원 등의 기능을 제공합니다. 또한, Trino는 고급 함수와 연산, 플러그인 아키텍처 등의 기능을 제공하여 다양한 데이터 처리 작업을 수행할 수 있습니다. 따라서, Trino는 데이터 엔지니어링 및 분석 분야에서 인기 있는 도구 중 하나입니다.

반응형