最近要用到presto,在网上看了一些blog, 来记录总结一下学习的网站和知识(主要是presto和hive,mysql的使用区别)
presto 官方文档
presto 基本介绍
presto介绍
Presto本身不存储数据,但是可以接入多种数据源,并且支持跨数据源的级联查询。
与MySQL对比:MySQL首先是一个单点关系型数据库,其具有存储和计算分析能力,而 Presto只有计算分析能力;在数据量方面,MySQL不能满足当前大数据量的分析需求,在这样的背景下,Facebook开发出Presto这样一个可以满足大数据量分析需求的工具(当然还有其他的工具)
Presto只有计算分析能力,那么数据是从哪里获取呢?--- 实际上,Presto可以连接多种数据源,包括Hive,Oracle,MySQL,Kafka,MongoDB,Redis等。可以通过show catalogs 命令看到Presto连接的所有数据源。
- presto优点1 : 可以将多个不同数据源进行联合分析
select * from tableA left join tableB where tableA.id=tableB.id 这里的tableA 和tableB 都可以来自于presto连接的数据库中的任意一个
presto和hive,mysql的不同汇总
- 时间差函数datediff()
- presto:
select date_diff('day',cast('2018-09-05' as date),cast('2018-09-07' as date));
- hive:
select datediff('2018-09-07','2018-09-05');
- mysql:
SELECT TIMESTAMPDIFF(MONTH,'2009-10-01','2009-09-01')
- 注意:presto不支持动态查询,不能像hive和mysql一样定义变量。
- presto求数组长度
cardinality(arr)
- presto调取表格
from a.b.c ---- 数据源.数据库.数据表