<bdo id="ks4iu"><del id="ks4iu"></del></bdo>
  • 
    <pre id="ks4iu"></pre>
  • <bdo id="ks4iu"><del id="ks4iu"></del></bdo>
    <input id="ks4iu"><em id="ks4iu"></em></input>
    
    
  • <center id="ks4iu"><cite id="ks4iu"></cite></center>
  • 首頁 > 空調(diào) >

    面向類型繁多的數(shù)據(jù)源,Trino分析引擎如何在數(shù)據(jù)湖上進行極速分析?

    編者按

    隨著企業(yè)內(nèi)外部數(shù)據(jù)源的增加,呈現(xiàn)出數(shù)量龐大、種類繁多、質(zhì)量參差不齊等特點。如何讓這些結(jié)構(gòu)復雜、類型各異的數(shù)據(jù)發(fā)揮價值,對于大多數(shù)企業(yè)來說,最有效的途徑是建立起一套能夠統(tǒng)一數(shù)據(jù)源的技術(shù)體系和管理體系。

    滴普科技經(jīng)過技術(shù)沉淀與實踐,探索出基于Trino分析引擎連接多類數(shù)據(jù)源,實現(xiàn)快速查詢與分析的技術(shù)解決方案,并將此回饋給技術(shù)開發(fā)者社區(qū)。

    撰文 | 曉云

    編輯 | 昕然

    本文共計1300字,閱讀需要3分鐘

    在之前的FastData連載文章中,介紹“統(tǒng)一SQL引擎”時提到了Trino,本文對Trino+ Iceberg技術(shù)做相關(guān)解讀。

    Trino是針對OLAP設計的用于高效的分布式查詢大量數(shù)據(jù)的分析引擎。主要具備下列優(yōu)點:屏蔽底層數(shù)據(jù)源,提供統(tǒng)一查詢接口;基于內(nèi)存計算,可以跨不同數(shù)據(jù)源完成聯(lián)邦查詢;通過Trino進行異構(gòu)數(shù)據(jù)的提取、整合與分析,打破數(shù)據(jù)孤島、提高數(shù)據(jù)治理能力。

    1

    Trino 架構(gòu)

    Trino的架構(gòu)如圖一所示。由一個coordinator和多個worker節(jié)點組成的Trino集群。Trino用戶通過一個客戶端連接到coordinator。coordinator與訪問數(shù)據(jù)源的worker進行協(xié)作。一旦它接收到一條SQL語句,協(xié)調(diào)器就負責跨Trino工作節(jié)點解析、分析、計劃和調(diào)度查詢執(zhí)行。該語句被轉(zhuǎn)換為運行在一組worker上的一系列連接的任務。當worker處理數(shù)據(jù)時,coordinator將檢索結(jié)果并在輸出緩沖區(qū)上向客戶機公開。

    在Trino中,存儲和計算分離的核心是基于connector的體系結(jié)構(gòu)。connector為Trino提供了訪問任意數(shù)據(jù)源的接口。

    如圖二所示,每個connector都提供了對底層數(shù)據(jù)源的基于表的抽象。只要可以使用Trino可用的數(shù)據(jù)類型以表、列和行來表示數(shù)據(jù),就可以創(chuàng)建connector,查詢引擎就可以使用數(shù)據(jù)進行查詢處理。目前支持的connector包括:Hive, Iceberg, MySQL, PostgreSQL, Oracle, SQL Server, ClickHouse, MongoDB等。

    Trino connector體系結(jié)構(gòu)

    2

    Trino Iceberg connector

    Iceberg 是一種用于跟蹤超大規(guī)模表的,構(gòu)建于存儲格式之上的數(shù)據(jù)組織方式,通常將其作為數(shù)據(jù)湖底層存儲。它具備下列能力:

    1. 模式演化:支持添加,刪除,更新或重命名,并且沒有副作用。

    2. 支持隱藏分區(qū)和分區(qū)演化,方便業(yè)務進行數(shù)據(jù)分區(qū)策略更新。

    3. 快照控制:可實現(xiàn)使用完全相同的表快照的可重復查詢,或者使用戶輕松檢查更改。

    4. 版本回滾:使用戶可以通過將表重置為良好狀態(tài)來快速糾正問題。

    5. 快速掃描數(shù)據(jù):無需使用分布式SQL引擎即可讀取表或查找文件。

    6. 數(shù)據(jù)修剪優(yōu)化:使用表元數(shù)據(jù)使用分區(qū)和列級統(tǒng)計信息修剪數(shù)據(jù)文件。

    7. 兼容性好:可以存儲在任意的云存儲系統(tǒng)和HDFS中。

    8. 支持事務:上游數(shù)據(jù)寫入即可見,不影響當前數(shù)據(jù)處理任務,這大大簡化了 ETL。

    9. 高并發(fā):高并發(fā)寫入器使用樂觀并發(fā),即使寫入沖突,也會重試以確保兼容更新成功。

    圖三 Iceberg表格式

    此外,Iceberg支持通過流式方式讀取增量數(shù)據(jù);支持多種引擎,并且提供了java native API,不用特定引擎也可以訪問Iceberg表。

    Trino 引入Iceberg connector的設計改進了Hive已知的可伸縮性限制。Hive將表元數(shù)據(jù)存儲在一個metastore中,該metastore由關(guān)系數(shù)據(jù)庫(如MySQL)支持。它跟蹤分區(qū)在metastore的位置,但無法定位到單獨的數(shù)據(jù)文件。使用Hive connector的Trino查詢必須首先調(diào)用metastore來獲取分區(qū)位置,然后調(diào)用底層文件系統(tǒng)來列出每個分區(qū)內(nèi)的所有數(shù)據(jù)文件,然后從每個數(shù)據(jù)文件中讀取元數(shù)據(jù)。在文件量大的情況下,這是一個非常耗時的操作。

    Iceberg提供了表級別的抽象接口,自己在文件中維護表的元數(shù)據(jù)信息(而非通過Hive Metastore維護)。基于此,Iceberg對于表的元數(shù)據(jù)管理以及表數(shù)據(jù)本身如何組織存儲進行了封裝(如圖三所示),查詢可以定位到文件級別,大幅提高了查詢效率。

    此外,Trino Iceberg connector 在查詢優(yōu)化方面支持分區(qū)下推,Projection 下推,動態(tài)過濾等提高查詢效率。

    3

    總 結(jié)

    為了獲取更高的查詢性能,Trino可以將查詢或部分查詢的處理下推到連接的數(shù)據(jù)源中。這意味著特定的謂詞、聚合函數(shù)或其他操作被傳遞到底層數(shù)據(jù)庫或存儲系統(tǒng)進行處理;另一方面可以通過添加索引的方式,加快查詢。

    責任編輯:Rex_08

    關(guān)鍵詞: Iceberg Trino
    推薦閱讀
    欧美国产在线一区,免费看成年视频网页,国产亚洲福利精品一区,亚洲一区二区约美女探花
    <bdo id="ks4iu"><del id="ks4iu"></del></bdo>
  • 
    <pre id="ks4iu"></pre>
  • <bdo id="ks4iu"><del id="ks4iu"></del></bdo>
    <input id="ks4iu"><em id="ks4iu"></em></input>
    
    
  • <center id="ks4iu"><cite id="ks4iu"></cite></center>
  • 主站蜘蛛池模板: 国产成人啪精品| 91欧美精品综合在线观看| 韩国成人在线视频| 毛片视频网站在线观看| 成人欧美一区二区三区黑人 | 国产传媒在线观看| 亚洲欧美日韩视频一区| 一级一看免费完整版毛片| 青青草99热这里都是精品| 欧美另类xxxxx另类| 在线观看污网站| 免费观看欧美一级牲片一| 久久久久亚洲AV无码去区首| 免费能直接在线观看黄的视频| 欧美极品少妇×XXXBBB| 坐公交车弄了2个小时小视频| 又爽又黄有又色的视频| 久久久久国产午夜| 国产精品入口麻豆免费观看| 欧美日韩国产高清| 大又大又粗又硬又爽少妇毛片| 国产六月婷婷爱在线观看| 亚洲AV人无码综合在线观看| **肉体一级毛片| 欧美特黄三级在线观看| 在线观看黄日本高清视频| 免费在线h视频| 一本色道久久88—综合亚洲精品| 老子的大ji巴cao死你| 日韩小视频在线| 国产成人精品一区二区三区无码| 亚洲一级视频在线观看| 在线观看精品视频看看播放| 欧美福利电影在线| 国产精品蜜芽tv在线观看| 亚洲欧美卡通另类| 84pao国产成视频免费播放| 欧美黑人两根巨大挤入| 在线a亚洲视频播放在线观看| 亚洲视频免费一区| 97夜夜澡人人爽人人|