全部產品
Search
文件中心

E-MapReduce:Trino概述

更新時間:Jul 01, 2024

Trino(即原PrestoSQL)是一個開源的分布式SQL查詢引擎,適用於互動式分析查詢。EMR-3.44.0和EMR-5.10.0版本開始改用社區正式名稱Trino,之前各版本控制台顯示為Presto,核心其實是Trino,使用時請注意區分。

基本特性

Trino使用Java語言進行開發,具備易用、高效能和強擴充能力等特點,具體如下:

  • 完全支援ANSI SQL。

  • 支援豐富的資料來源:

    • Hive

    • Cassandra

    • Kafka

    • MongoDB

    • MySQL

    • PostgreSQL

    • SQL Server

    • Redis

    • Redshift

    • 本地檔案

  • 支援進階資料結構,具體如下:

    • 數組和Map資料

    • JSON資料

    • GIS資料

    • 顏色資料

  • 功能擴充能力強,提供了多種擴充機制:

    • 擴充資料連線器

    • 自訂資料類型

    • 自訂SQL函數

  • 流水線:基於Pipeline處理模型資料在處理過程中即時返回給使用者。

  • 監控介面完善:

    • 提供友好的Web UI,可視化的呈現查詢任務執行過程。

    • 支援JMX協議。

系統組成

Trino的系統組成如下圖所示。Presto系統組成

Trino是典型的M/S架構的系統,由一個Coordinator節點和多個Worker節點群組成。 Coordinator負責如下工作:

  • 接收使用者查詢請求,解析並產生執行計畫,下發Worker節點執行。

  • 監控Worker節點運行狀態,各個Worker節點與Coordinator節點保持心跳串連,彙報節點狀態。

  • 維護MetaStore資料。

Worker節點負責執行下發到任務,通過連接器讀取外部儲存系統到資料,進行處理,並將處理結果發送給Coordinator節點。

應用情境

Trino是定位在資料倉儲和資料分析業務的分布式SQL引擎,適合以下應用情境:

  • ETL

  • Ad-Hoc查詢

  • 海量結構化資料或半結構化資料分析

  • 海量多維資料彙總或報表分析

重要

Trino是一個數倉類產品,因為其對事務支援有限,所以不適合線上業務情境。

產品優勢

E-MapReduce(簡稱EMR)中的Trino與開源Trino比較,還具備如下優勢:

  • 即買即用,快速完成上百節點的Trino叢集搭建。

  • 彈性擴容簡單操作。

  • 與EMR軟體棧完美結合,支援處理儲存在OSS的資料。

  • 無需營運,EMR提供一站式服務。

基本概念

資料模型

資料模型即資料的組織形式。Trino使用Catalog、Schema和Table三層結構來管理資料。

  • Catalog

    一個Catalog可以包含多個Schema,物理上指向一個外部資料源,可以通過Connector訪問該資料來源。一次查詢可以訪問一個或多個Catalog。

  • Schema

    相當於一個資料庫執行個體,一個Schema包含多張資料表。

  • Table

    資料表,與一般意義上的資料庫表相同。

Connector

Trino通過各種Connector來接入多種外部資料源。Trino提供了一套標準的SPI介面,使用者可以使用這套介面開發自己的Connector,以便訪問自訂的資料來源。

一個Catalog通常會綁定一種類型的Connector,在Catalog的Properties檔案中設定。Trino內建了多種Connector。

更多參考

請根據Trino組件的版本號碼,修改http://trino.io/docs/3XX/中的版本號碼,在瀏覽器訪問該連結,查看開源Trino文檔。

例如,當Trino版本是331時,訪問https://trino.io/docs/331/,詳情請參見Trino 331 Documentation