适用于:
Databricks SQL
配置 STATEMENT_TIMEOUT 参数指定超时持续时间(以秒为单位)。 计数从 SQL 语句执行的开始处开始。 运行时间超过该值的任何 Databricks SQL 语句都将超时。
可以在三个范围设置此参数:
- 会话:适用于当前会话中的语句。 使用 SET 语句。
- 仓库 (Beta):适用于在特定 SQL 仓库上运行的所有语句。 使用 SQL 仓库 API。
- 工作区:适用于工作区中的所有 SQL 仓库。 使用工作区管理员设置或 SQL 仓库 API。
设置
设置一个介于 0 和 172800 秒(2 天)之间的超时值(以秒为单位)。 执行时间超过设置值的任何 Databricks SQL 语句都将停止。
系统默认
系统默认值为 172800 秒(2 天)。
Precedence
当超时设置为多个范围时,按以下顺序设置第一个非 null 值:
- 会期
- 仓库(Beta 版本)
- 工作区
如果未在任何范围内设置超时,则 系统默认 适用。
示例
以下示例设置会话级超时,然后重置它。
-- Set a session-level timeout
> SET STATEMENT_TIMEOUT = 86400;
> SELECT * FROM DIAMONDS;
-- Reset the timeout duration
> RESET STATEMENT_TIMEOUT;
> SELECT * FROM DIAMONDS;
要设置工作区级超时,请转到工作区管理员设置,单击“计算”,然后单击“SQL 仓库”旁边的“管理”。 在“SQL 配置参数”设置中,添加配置参数,其中超时值以秒为单位。
-- Set a workspace-level timeout
> STATEMENT_TIMEOUT 86400
仓库级超时
可以对单个 SQL 仓库设置语句超时,以便不同的仓库可以对其查询应用不同的超时。 例如,对 ETL 仓库设置更长的超时,对 BI 仓库设置更短的超时。
Important
仓库级语句超时为 Beta 版。 工作区管理员必须从“预览”页启用 Warehouse Statement Timeout 预览。 请参阅 Manage Azure Databricks 预览版。
使用“创建”或“更新仓库 API”中的字段设置仓库级超时statement_timeout。 该值以秒为单位。 若要删除仓库级超时,请将字段设置为 0。
使用更新仓库 API 进行更改 statement_timeout 时,仓库会自动重启,使新值生效。
若要检查当前对连接到的仓库生效的超时,请运行以下命令:
SET STATEMENT_TIMEOUT;
注释
关闭 Warehouse 语句超时 预览功能不会清除 statement_timeout 已对仓库设置的值。 在重启仓库之前,以前设置的仓库级别值将继续应用。