使用Presto CLI时如何设置查询超时?

时间:2019-05-07 19:29:27

标签: presto

我正在使用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脚本中处理该错误。

1 个答案:

答案 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