Как установить время ожидания запроса при использовании Presto CLI? - PullRequest
0 голосов
/ 07 мая 2019

Я использую presto cli из bash-скрипта для извлечения некоторых простых данных в csv.Я пытаюсь использовать параметр --client-request-timeout и установить его на 5 с (он говорит, что по умолчанию 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 Ответ

2 голосов
/ 14 мая 2019

Вы можете установить ограничение времени запроса, используя query_max_execution_time свойство сеанса.

SET SESSION query_max_execution_time = '30s';

Вы можете получить список поддерживаемых свойств сеанса с помощью SHOW SESSION запроса (или , просматривая исходный код ).

С 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
...