如何使用REST API管理Presto查询会话变量?

时间:2016-05-06 21:58:34

标签: rest session presto

我使用Presto REST api查询数据库,但我的所有会话似乎都是短暂的。例如,如果我做了类似

的事情

query_presto('set session columnar_processing = true') query_presto('show session')

尽管在第一个查询中设置了column_processing变量,但第二个查询将显示column_processing仍然是默认值false。

我读到的地方

  

Presto为每个经过身份验证的用户维护会话。本次会议   如果在超时期限内没有收到新请求,则到期   为Presto配置。

但是,我无法在代码或文档中的任何位置找到此配置。

我的问题是如何使用RESTful API维护数据库会话?

1 个答案:

答案 0 :(得分:4)

经过太多时间挖掘后,我发现有一个标题X-Presto-Session可以设置逗号分隔变量,即

curl --data "show session" http://127.0.0.1:8889/v1/statement/ --header "X-Presto-User: myuser" --header "X-Presto-Schema: myschema" --header "X-Presto-Time-Zone: UTC" --header "X-Presto-Catalog: mycatalog" --header "User-Agent: myagent" --header "X-Presto-Session: session_variable_1=900,session_variable_2=true"

尽管文档说的是,但我认为Presto没有办法记住先前执行中设置的会话变量。我必须在我的程序中本地缓存它们并在每次执行时都将它们传递。