Presto~数据查询工具/近实时计算利器


Presto实现原理和美团的使用实践 -
http://tech.meituan.com/presto.html
Facebook的数据仓库存储在少量大型Hadoop/HDFS集群。Hive是Facebook在几年前专为Hadoop打造的一款数据仓库工具。在以前,Facebook的科学家和分析师一直依靠Hive来做数据分析。但Hive使用MapReduce作为底层计算框架,是专为批处理设计的。但随着数据越来越多,使用Hive进行一个简单的数据查询可能要花费几分到几小时,显然不能满足交互式查询的需求。Facebook也调研了其他比Hive更快的工具,但它们要么在功能有所限制要么就太简单,以至于无法操作Facebook庞大的数据仓库。

2012年开始试用的一些外部项目都不合适,他们决定自己开发,这就是Presto。2012年秋季开始开发,目前该项目已经在超过 1000名Facebook雇员中使用,运行超过30000个查询,每日数据在1PB级别。Facebook称Presto的性能比Hive要好上10倍多。2013年Facebook正式宣布开源Presto。

本文首先介绍Presto从用户提交SQL到执行的这一个过程,然后尝试对Presto实现实时查询的原理进行分析和总结,最后介绍Presto在美团的使用情况。


近实时运算的利器---presto在公司实践 - joomlaer的专栏 - 博客频道 - CSDN.NET
http://blog.csdn.net/joomlaer/article/details/45889759

1.起因
公司hadoop集群里的datanonde和tasktracker节点负载主要集中于晚上到凌晨,平日工作时间负载不是很高。但在工作时间内,公司业务人员有实时查询需求,现在主要
借助于hive提供业务人员日常查询。总所周知,hive是一个基于MR的类SQL查询工具,它会把输入的查询SQL解释为MapReduce,能极大的降低使用大数据查询的门槛,
让一般的业务人员也可以直接对大数据进行查询。但一个弊病也是很明显,它的查询速度由于基于MR,会是非常的让人着急。

在Spark,Storm横行的时代,spark由于耗用内存高而很难满足这种改良的需求,Storm由于和hive不是一个套路,本身实时流处理的思路也和我们的需求差距较大,所以,
寻求一个能提供类似SQL查询接口,并且速度比较接近于实时,能利用现有集群硬件的实时SQL查询引擎成为一个现有hive的替代查询引擎。如果有这个引擎,可以利用
datanode,tasktracker上空闲的内存构成一个分布式的“数据加载内存池”,将数据加载到内存后,再进行计算,这样无疑会提高大数据查询的速度。
幸好,创造了hive的facebook,不负众望,创造了这么一款神器---presto。下面我们来看presto能给我们带来什么。

插图:日常各个dn和tt的节点的内存使用情况,白天有比较多的空闲时段

//
综上所述,presto是一个部署容易,又能较好利用空闲内存的近实时查询引擎。


如何开发 Presto 自定义函数(UDF)
http://mp.weixin.qq.com/s?__biz=MzI0NjIzNDkwOA==&mid=2247483876&idx=1&sn=538237d1536a8e3ca240b4f81a0194dd&chksm=e9432b97de34a281f5f31431ba5f6b2c6c50fc1cb1f3a79385704c9bf62f980c746e4ef8def3&scene=21#wechat_redirect
Presto 是 Facebook 开源的分布式查询引擎,在英语流利说的交互式查询任务中担当着重要的职责。随着越来越多的人开始使用 SQL 在 Presto 上分析数据,我们发现需要将一些业务逻辑开发成类似 Hive 中的 UDF,提高 SQL 使用人员的效率,同时也保证 Hive 和 Presto 环境中的 UDF 统一。
那我们就来聊聊如何开发 Presto 中的自定义函数(简称:UDF)。

总结
在英语流利说,我们开发了一个又一个的 Presto 自定义函数来提高 SQL 开发效率,例如调用 IP 数据库函数获取 IP 信息,甚至还可以在 SQL 中调用 RPC 服务进行特殊的数据转换。Presto 开发相关的文档不多,希望本文对大家有帮助。


英语流利说基础数据平台 - OPEN 开发经验库
http://www.open-open.com/lib/view/open1470725448459.html
数据查询工具 - Presto

Hive 在批处理上表现不错,但在交互式查询上,可能一个很小的查询就需要几十秒甚至数分钟; 因此对于这类查询,我们引入了 Presto,并且其依赖的数据源仍然在 S3 上。我们对Presto 维护了自己的分支,并且开发了 Presto UI 供数据分析人员使用。流利说是一家以数据驱动产品的公司,数据分析师以及产品经理,甚至销售每天会有若干的查询需要立即得到结果。除了基于 Presto,它需要拥有比较友好的UI,以及考虑到人员变动,我们需要做更严格的权限控制。另外,对于大量编写 SQL 的数据分析师,我们在 Sublime 上做了 Presto 插件,这使得在编写脚本时,天然拥有了高亮显示,字符提示等优势,当你完成脚本编写后,可以通过 Command + E 来执行你在 Sublime 中所选择的查询语句。

你可能感兴趣的:(Presto~数据查询工具/近实时计算利器)