美文网首页大数据
presto提交查询

presto提交查询

作者: 翠花上酸奶 | 来源:发表于2018-09-05 15:02 被阅读5次

    提交查询的步骤

    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。

    相关文章

      网友评论

        本文标题:presto提交查询

        本文链接:https://www.haomeiwen.com/subject/zvagdftx.html