我使用Presto REST api查询数据库,但我的所有会话似乎都是短暂的。例如,如果我做了类似
的事情
query_presto('set session columnar_processing = true')
query_presto('show session')
尽管在第一个查询中设置了column_processing变量,但第二个查询将显示column_processing仍然是默认值false。
我读到的地方
Presto为每个经过身份验证的用户维护会话。本次会议 如果在超时期限内没有收到新请求,则到期 为Presto配置。
但是,我无法在代码或文档中的任何位置找到此配置。
我的问题是如何使用RESTful API维护数据库会话?
答案 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没有办法记住先前执行中设置的会话变量。我必须在我的程序中本地缓存它们并在每次执行时都将它们传递。