Presto
文章平均质量分 86
Presto、Trino、OpenLookeng相关笔记
书忆江南
https://github.com/hackeryang
展开
-
如何排查Trino常见报错问题
Trino权威指南》第12章及周边涉及知识,基于392版本的使用层面入门书,引擎创始人亲自编写:中文翻译版《》第12章及周边,基于330版本。(1)编译原理基础(SQL语法解析token、生成AST抽象语法树、将AST生成执行计划并优化覆盖的过程,如《ANTLR4权威指南》)、《数据库系统内幕》等计算机专业通用底层课程;(2)《Presto技术内幕》等深入底层原理的Trino源码级书籍或博客。(3)《》等大数据平台全貌入门书。原创 2023-07-03 21:01:15 · 2819 阅读 · 0 评论 -
使用Benchto框架对Trino进行SQL性能对比测试
有时需要对魔改源码前后的不同版本Trino引擎进行性能对比测试,提前发现改造前后是否有性能变差或变好的现象,避免影响数据业务的日常查询任务性能。而Trino社区正好提供了一个性能测试对比框架:因此使用它可以较大程度上减少一通魔改后,看起来代码量很大且功能很牛,但是实际上线性能拉垮,改了个寂寞的现象。原创 2023-02-15 22:05:21 · 2960 阅读 · 1 评论 -
Trino源码Gitlab CICD单测环境搭建
在中大型公司,由于对Trino源码的定制魔改量越来越大,会随着时间推移而增大出现冷门bug的概率,所以建立一套自动测试机制,在魔改源码合入主分支时可以自动触发test case,通过特定单测的执行失败,来更清晰的判断是否过去的魔改涉及到了不符合社区源码原本假设的部分,并对魔改后的情况不一致进行修正。Gitlab Runner正好可以提供这样的机制,提升更早发现源码改动问题的效率。原创 2022-11-21 17:19:49 · 3044 阅读 · 0 评论 -
Presto和Spark语法差异
Presto返回2,Spark返回2.5。Spark会返回结果12,Presto会返回空,除非写select substr('123', 1, 2);Spark会返回1,而Presto会报错。该查询中tag列中包含特殊空格制表符,如下图所示:在Presto中,末尾处的正则表达式应该用解决方法:使用element_at(map(K, V), key)获取值,不要用map[key]写法。参考:Presto与众不同的那些坑_while(True):的博客-CSDN博客_presto unnest。原创 2022-10-31 22:04:45 · 4581 阅读 · 0 评论 -
Lyft Presto Gateway源码机制分析
Presto Gateway支持多个后端Trino集群的激活与停用、增加与删除、负载均衡等,在客户端第一次http请求时可以根据负载均衡选择一个Trino Backend,后续的多个同一查询请求都能找到第一次时发往的那个Trino Backend。............原创 2022-08-30 16:33:47 · 2782 阅读 · 0 评论 -
Trino Worker端执行task与读ORC文件源码链路流程
下述Worker源码调用链路基于Trino(原PrestoSQL)330版本:// 生产流程TaskResource.createOrUpdateTask ->SqlTaskManager.updateTask ->SqlTask.updateTask ->SqlTaskExecution.addSource ->updateSources ->schedulePartitionedSource原创 2022-01-19 15:37:38 · 2404 阅读 · 0 评论