我正在使用bash脚本中的presto cli将一些简单数据提取到csv中。我正在尝试使用--client-request-timeout参数并将其设置为5s(它说默认值为2m)。我的查询大约需要1分钟,但是我没有收到超时错误(我正在尝试查看错误的含义,因此我可以在bash脚本中处理该错误以通知查询失败)。
我尝试将--client-request-timeout切换为1-10秒,但无法使查询超时,并且最多需要一分钟才能返回。
sudo /folder/to/presto-cli --server server:8080 --catalog catalog --user user --schema some_customer --client-request-timeout 5s --execute "select val1, val2, sum(count) from table where processed=false group by val1, val2;"
我希望presto-cli会给我一个错误,然后可以在我的bash脚本中处理该错误。
答案 0 :(得分:2)
您可以使用query_max_execution_time
会话属性设置查询时间限制。
SET SESSION query_max_execution_time = '30s';
您可以通过SHOW SESSION
查询(或looking at the source code)获得受支持的会话属性列表。
对于presto-cli
,使用--session
arg传递此参数:
presto-cli --session query_max_execution_time=30s ...
示例
$ presto-cli --session query_max_execution_time=15s \
--execute "select count(distinct regexp_extract(comment, '([a-zA-Z ]+)+$')) from tpch.tiny.lineitem"
Query failed: Query exceeded the maximum execution time limit of 15.00s