博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Introducing Presto
阅读量:5944 次
发布时间:2019-06-19

本文共 1055 字,大约阅读时间需要 3 分钟。

hot3.png

 

1 Presto简介

Presto是一个开源的分布式SQL查询引擎,支持从GB到PB数据量上的交互式分析查询。

Presto的设计和编写完全是为了解决像Facebook这样规模的商业数据仓库的交互式分析和处理速度的问题。

Presto支持在线数据查询,包括Hive, Cassandra, 关系数据库以及专有数据存储。 一条Presto查询可以将多个数据源的数据进行合并,可以跨越整个组织进行分析。

Presto以分析师的需求作为目标,他们期望响应时间小于1秒到几分钟。 Presto终结了数据分析的两难选择,要么使用速度快的昂贵的商业方案,要么使用消耗大量硬件的慢速的“免费”方案。

Facebook使用Presto进行交互式查询,用于多个内部数据存储,包括300PB的数据仓库。 每天有1000多名Facebook员工使用Presto,执行查询次数超过30000次,扫描数据总量超过1PB。

Presto被设计用来主要处理数据仓储与分析:数据缝隙,聚合大量的数据并且生产报告。

这样的工作通常被归类为Online Analytical Processing(OLAP)。

 

2 Presto架构

Presto查询引擎是一个Master-Slave的架构,由一个Coordinator节点(Discovery Server),多个Worker节点组成,Discovery Server通常内嵌于Coordinator节点中。

Coordinator负责解析SQL语句,生成执行计划,分发执行任务给Worker节点执行。Worker节点负责实际执行查询任务。

Worker节点启动后向Discovery Server服务注册,Coordinator从Discovery Server获得可以正常工作的Worker节点。

如果配置了Hive Connector,需要配置一个Hive MetaStore服务为Presto提供Hive元信息,Worker节点与HDFS交互读取数据。

 

3 Presto数据模型

Presto中访问多个数据源时,增加了一层catalog来映射不同数据源,通过配置不同的connector来连接多种类型的数据源,或者同种类型的多个数据源。

Presto并不存储任何实际数据与元数据,只是提供了计算引擎。模型定义以及实际数据仍存储在各数据源中,Presto只是提供了一个通用的数据源连接。

转载于:https://my.oschina.net/yulongblog/blog/1509497

你可能感兴趣的文章
kafka连接异常
查看>>
11g废弃的Hint - BYPASS_UJVC
查看>>
为什么工业控制系统需要安全防护?
查看>>
Mongodb部署记录[3]-主从搭建
查看>>
hive sql操作
查看>>
tomcat 深度优化
查看>>
127 - "Accordian" Patience
查看>>
阿里云CentOS7安装Oracle11GR2
查看>>
nginc+memcache
查看>>
php正则匹配utf-8编码的中文汉字
查看>>
MemCache在Windows环境下的搭建及启动
查看>>
linux下crontab实现定时服务详解
查看>>
Numpy中的random模块中的seed方法的作用
查看>>
用java数组模拟登录和注册功能
查看>>
javaScript实现归并排序
查看>>
关于jsb中js与c++的相互调用
查看>>
UVA 122 Trees on the level 二叉树 广搜
查看>>
POJ-2251 Dungeon Master
查看>>
tortoisesvn的安装
查看>>
我是怎么使用最短路径算法解决动态联动问题的
查看>>