1. presto 简介¶
Presto是一个开源的分布式SQL查询引擎,用于针对各种大小(从千兆字节到千兆字节)的数据源运行交互式分析查询。
Presto是从头开始设计和编写的,用于交互式分析,接近商业数据仓库的速度,同时扩展到Facebook等组织的规模。
presto是一款基于内存、基于sql的大数据实时查询(Ad-hoc)开源计算框架,由facebook开发。presto使用connector连接不同的数据源,将不同数据源的数据
存储在内存中进行计算,可以跨数据源进行计算。
大数据计算框架主要分为脚本程序和类sql两种方式。脚本程序主要由mapreduce、pig、crunch、sparkRDD、cascading、tez等执行框架。类sql的实时计算框
架包含hive、sparkSQL、impala。其中sparkSQL也是基于内存的计算框架。
脚本分析组件:
Concept | Apache Hadoop MapReduce | Apache Crunch | Apache Pig | Apache Spark | Cascading | Apache Tez | ||
---|---|---|---|---|---|---|---|---|
Input Data | InputFormat | Source | LoadFunc | InputFormat | Tap (Source) | Tez Input | |||
Output Data | OutputFormat | Target | StoreFunc | OutputFormat | Tap (Sink) | Tez Output | |||
Data Container Abstraction | N/A | PCollection | Relation | RDD | Pipe | Vertex | ||
Data Format Serialization | Writables | POJOs and PTypes | Pig Tuples and Schemas | POJOs and Java/Kryo Serialization | Cascading Tuples and Schemes | Events | ||
Data Transformation | Mapper, Reducer, and Combiner | DoFn | PigLatin and UDFs | Functions (Java API) | Operations | Processor |
SQL分析组件:
Concept | Apache hive | presto | sparkSQL | impala |
---|---|---|---|---|
多数据源 | 是 | 是 | 是 | 是 |
基于内存 | 否 | 是 | 是 | 否 |
查询速度 | 慢 | 极快 | 快 | 快 |
支持数据量 | 一般 | 大 | 大 | 大 |