首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何增加最大查询时间?

如何增加最大查询时间?
EN

Stack Overflow用户
提问于 2017-10-13 03:16:36
回答 3查看 3.9K关注 0票数 1

我运行了一个查询,该查询最终将返回大约1700万行,分块为50万行。一切似乎都进行得很顺利,但我遇到了以下错误:

代码语言:javascript
复制
Traceback (most recent call last):
File "sql_csv.py", line 22, in <module>
    for chunk in  pd.read_sql_query(hours_query, db.conn, chunksize = 500000):
File "/Users/michael.chirico/anaconda2/lib/python2.7/site-packages/pandas/io/sql.py", line 1424, in _query_iterator
    data = cursor.fetchmany(chunksize)
File "/Users/michael.chirico/anaconda2/lib/python2.7/site-packages/jaydebeapi/\__init__.py", line 546, in fetchmany
    row = self.fetchone()
File "/Users/michael.chirico/anaconda2/lib/python2.7/site-packages/jaydebeapi/\__init__.py", line 526, in fetchone
    if not self._rs.next(): jpype._jexception.SQLExceptionPyRaisable: java.sql.SQLException: Query failed (#20171013_015410_01255_8pff8):
**Query exceeded maximum time limit of 60.00m**

显然,这样的查询可能需要一些时间;我对此没有意见(分块意味着我不会打破任何RAM限制--事实上,我运行的文件输出显示了17M行中的16M在崩溃前完成的查询!)

但是我看不出read_sql_query有什么直接的选择。params似乎是一个不错的候选人,但我在jaydebeapi文档中看不到给execute提供正确参数的任何提示。

如何克服这一问题并运行完整的查询?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-04-26 17:15:02

在执行查询时,Presto通过CPU、内存、执行时间和其他约束来限制每个查询。你达到了执行时间限制。请确保您的查询是健全的,否则,您可以崩溃的集群。

若要增加查询执行时间,请在会话变量中定义一个新值。

代码语言:javascript
复制
SET SESSION query_max_execution_time=60m;
票数 2
EN

Stack Overflow用户

发布于 2019-02-26 15:57:47

若要覆盖最大查询执行时间,请在CLI中添加此参数:

代码语言:javascript
复制
SET SESSION query_max_execution_time='60m';

这将更改为60分钟,请注意单引号

票数 1
EN

Stack Overflow用户

发布于 2022-06-27 11:20:17

需要在查询-设置会话查询_max_execution_time=‘60m’之前将其作为注释添加

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46721982

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档