Presto是一個開源的用戶交互式分析查詢的SQL查詢引擎,用于針對各種大小的數(shù)據(jù)源進行交互式分析查詢。其主要應(yīng)用于海量結(jié)構(gòu)化數(shù)據(jù)/半結(jié)構(gòu)化數(shù)據(jù)分析、海量多維數(shù)據(jù)聚合/報表、ETL、Ad-Hoc查詢等場景。
Presto允許查詢的數(shù)據(jù)源包括Hadoop分布式文件系統(tǒng)(HDFS),Hive,HBase,Cassandra,關(guān)系 數(shù)據(jù)庫 甚至專有數(shù)據(jù)存儲。一個Presto查詢可以組合不同數(shù)據(jù)源,執(zhí)行跨數(shù)據(jù)源的數(shù)據(jù)分析。
圖1 Presto架構(gòu)
Presto分布式地運行在一個集群中,包含一個Coordinator和多個Worker進程,查詢從客戶端(例如CLI)提交到Coordinator,Coordinator進行SQL的解析和生成執(zhí)行計劃,然后分發(fā)到多個Worker進程上執(zhí)行。