Presto 入门教程

presto学习笔记

初体验

  1. 目前遇到的错误做多的是隐式类型转换,虽然公司的平台说系解决了隐式类型转换的问题。
  2. 其次就是node xx crash,或者内存超过了xx。
  3. 使用presto最麻烦了是日常工作中的数据分析需要许多窗口函数,有些在presto中并没有

    从hive迁移

    需要注意除法和表连接与hive的不同,尤其是连接。其他的注意事项见
    迁移注意事项

随笔

解决了什么问题

快读的交互式查询

多列去重

之前遇到需求对dt,陪访人,陪访对象三列进行去重统计。多列去重统计可以用子查询或者拼接字符串来实现,很明显这里不适合子查询。于是使用拼接。
presto 拼接字符串 concat只能是两个参数,可以使用||来拼接字符串非常方便。

presto 和hive到底什么关系

http://www.mutouxiaogui.cn/blog/?p=395
和hive在一个层级,都是基于hdfs的。但是presto可以借助hive的元信息找到hdfs上的节点。
presto现在已经可以连接 MySQL postgre hive等了

presto为什么那么快

http://tech.meituan.com/presto.html
计算时数据不落地

presto注意事项

http://chuansong.me/n/2311397
http://prestodb-china.com/docs/current/migration/from-hive.html

hive并不h是严格遵循sql92标准,hiveql和presto有很多区别,尤其是表连接上的区别,导致两者之间的sql不通用

presto 不足

  1. presto的分析函数不足,这里再次感叹hive函数的丰富,甚至包含了xpath这种对半结构化语言脚本进行解析的函数。
  2. 还有一个hive中的表格生成函数
    .数组拆分成多行:explode
    Map拆分成多行:explode
    还有其对于一个单元格用都好隔开分成多行这种情况官网上说用cross join
    但是其类型是array 但是现实就是我们的数据经常是 xx,yy,zz类型。
    这一点一直不知道怎么解决

学习资源

presto中文网

参考资料

  1. 美团
  2. csdn
  3. 中文文档,非常详细