什么是presto
presto是一个开源的分布式的查询引擎,基于内存,它本身不接入数据,可以连接多种数据源,例如 Hive ,Mysql,Kafka,MongeDB等,一条Presto查询可以将多个数据源进行合并查询。
preto适合OLAP,而非OLTP,所以不要将preto当成数据库来使用。
presto优势
低延迟,高并发,纯内存计算引擎,查询效率是hive的数十倍
presto查询速度规模
数G到数P规模
presto数据模型
分为Catalog,Schema,Table三层
Catalog: 数据源,例如是Hive,还是Mysql等等
Schema: 库
Table: 表
presto架构
preso是一个Master-Slave架构,由一个Coordinator节点,一个Disovery Server节点及多个Worker节点组成
Coordinator:负责query解析和分发,work管理,meta管理
Disovery Server: 节点心跳,默认内嵌于Coordinator中,于Coordinator共享一台机器
Worker:计算节点,收到分发的task任务后,就会去对应的数据源取数
简单流程
Worker节点启动后向Discovery Server服务注册,Coordinator从Disovery Server获得正常工作的Worker节点,