为了账号安全,请及时绑定邮箱和手机立即绑定

presto提交查询

标签:
大数据

提交查询的步骤

1、获取SQL

2、发送restful请求给coordinator,并返回结果

3、cli循环分批读取查询结果并显示

源码解析

CLI客户端启动类就Presto  main 方法  彩蛋  如果启动presto CLI 的时候有 --version or --help 将提示帮助信息

否则调用Console.run()  会生成一个查询执行包装类QueryRunner,后续的启动和执行都是通过该类

启动presto CLI时,如果指定了 --execute or --file 读取SQL 否则在CLI端输入SQL

SQL语句的提交和执行通过QueryRunner的 executeCommand方法, 其中 QueryRunner.startQuery初始执行,通过Query.renderOutput循环发送restful请求分批获取查询结果。

startQuery 中new statementClient对象,构建Request(通过session中的server值 即为coordinator的URI,进而将SQL以restful请求发送给coordinator 通过statementResource类) 并接收response

renderOutput  会根据interactive标识决定是否实时更新数据,如果距离上次更新超过0.5s 则更新。不管是否实时更新都会调用client.advance(),改方法通过coordinator返回的nextResultUri向coordinator继续发请求,来分批获得查询结果

提交查询的流程

client发请求给coordinator ,coordinator返回结果和nextResultUri,如果没有结果了结束,如果nextResultUri不为空继续发请求给coordinator。



作者:翠花上酸奶
链接:https://www.jianshu.com/p/466190c75cad


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

举报

0/150
提交
取消