标签 Presto 下的文章

Presto的作用

Presto不是什么
虽然Presto一直被一些个人或者团体称为 数据库 ,但是Presto并不是数据库。
千万不要以为Presto可以解析SQL,那么Presto就是一个标准的数据库。Presto并不是传统意义上的数据库。Presto并不是MySQL、PostgreSQL或者Oracle的代替品。Presto并不能用来处理在线事务。其实很多其他的数据库产品也是被用来设计为数据仓库或者数据分析工具,但是也不能处理在线事务。
Presto是什么
Presto通过使用分布式查询,可以快速高效的完成海量数据的查询。如果你需要处理TB或者PB级别的数据,那么你可能更希望借助于Hadoop和HDFS来完成这些数据的处理。作为Hive和Pig(Hive和Pig都是通过MapReduce的管道流来完成HDFS数据的查询)的替代者,Presto不仅可以访问HDFS,也可以操作不同的数据源,包括:RDBMS和其他的数据源(例如:Cassandra)。
Presto被设计为数据仓库和数据分析产品:数据分析、大规模数据聚集和生成报表。这些工作经常通常被认为是线上分析处理操作。
谁使用Presto?
Presto是FaceBook开源的一个开源项目。Presto在FaceBook诞生,并且由FaceBook内部工程师和开源社区的工程师公共维护和改进。
既然Presto是一个交互式的查询引擎,我们最关心的就是Presto实现低延时查询的原理,我认为主要是下面几个关键点,当然还有一些传统的SQL优化原理,这里不介绍了。
完全基于内存的并行计算
流水线
本地化计算
动态编译执行计划
小心使用内存和数据结构
类BlinkDB的近似查询
GC控制

比Hive高效7倍 Facebook推新一代查询引擎Presto

在Facebook总部的一次开发者会议上,这个社交网络巨头的工程师透露,他们正在使用新的自主研发的查询引擎Presto,在已有的250PB的庞大数据仓库上进行交互式分析。
据Martin Traverso工程师透露,有超过850名Facebook工程师每天用它来扫描超过320TB的数据。在以前,我们的科学家和分析师一直依靠Hive来做数据分析。但Hive是专为批处理设计的。但随着数据越来越多,Hive已不能满足我们的需求。虽然我们还有其他比Hive更快的工具,但它们要么在功能有所限制要么就太简单,以至于无法操作我们庞大的数据仓库。而在过去的几个月中,我们一直使用Presto来填补这方面的空白。
Hive是Facebook在几年前专为Hadoop打造的一款数据仓库工具。因为它主要依赖MapReduce进行运行,所以随着年龄的上升,其在速度上已不能满足日益增长的数据要求。浏览一个完整的数据集可能要花费几分到几小时,这完全是不切实际的。
Traverso还表示,使用Presto进行简单的查询只需要几百毫秒,即使是非常复杂的查询,也只需数分钟即可完成,它在内存中运行,并且不会向磁盘写入。
虽然看起来Presto如同Facebook版的Cloudera Impala SQL查询引擎,或与Hortonworks在Stinger项目中所做的事情相似,但这是按照Facebook规模为实现更快操作而定制的版本。Presto并不会与其他商业产品进行竞争,但它会很快让大数据行业产生不小的震动。并且Facebook打算在今年秋天以开源的形式发布Presto。
Facebook的工程经理Ravi Murthy表示,随着用户量地不断增长,数据仓库也在快速增长,它比四年前要大4000倍。Murthy 也表示,在接下来几年,数据将会达到艾字节。因此,为了适应这种数据规模,我们不得不重新考虑许多东西。
Presto则是其中之一,除了提高查询速度,在CPU使用效率上,这个引擎比Hive高效7倍。另外一个正在进行的项目是缩减Facebook数据中心的分析数据空间。