在会话级别 ABORT_DETACHED_QUERY=true 时雪花取消查询
Snowflake cancel query when ABORT_DETACHED_QUERY=true on session level
我正在使用 Snowflake JDBC 在 Snowflake 上执行多语句脚本。我的应用程序由 hadoop 集群上的 Oozie 作业启动(在迁移阶段)。这里的要求是,当 Oozie 作业被杀死并在那里杀死 运行 应用程序实例时,使用 JDBC 提交的查询应该被 Snowflake 取消。
我已将 ABORT_DETACHED_QUERY=true
添加到 JDBC 连接 url,看起来像 jdbc:snowflake://<account>.snowflakecomputing.com/?warehouse=<WH>&db=<DB>&schema=<SCHEMA>&ABORT_DETACHED_QUERY=true
。
即使在 25 分钟后,脚本执行也不会被 Snowflake 取消。我试图找出潜在的问题。我尝试使用会话 ID 在 SESSIONS
视图上查询会话,但它不存在。我也尝试查询活动连接,但找不到方法。
所以我有两个问题,
- 配置
ABORT_DETACHED_QUERY
参数的方法正确吗?
- 您如何检查 Snowflake 上的活动 JDBC 连接,因为
SHOW CONNECTIONS
没有 return 与我的应用程序的任何连接?
此外,
我使用 commons-dbcp BasicDataSource 作为数据源管理器,
commons-dbutils 使用 int QueryRunner.execute(String)
方法提交查询。
这是会话参数而不是连接字符串参数,因此设置它的正确方法是使用 ALTER 命令:
ALTER SESSION SET ABORT_DETACHED_QUERY=TRUE;
5 分钟后,如果由于会话突然终止而导致连接丢失,您的查询应该会中止。
我正在使用 Snowflake JDBC 在 Snowflake 上执行多语句脚本。我的应用程序由 hadoop 集群上的 Oozie 作业启动(在迁移阶段)。这里的要求是,当 Oozie 作业被杀死并在那里杀死 运行 应用程序实例时,使用 JDBC 提交的查询应该被 Snowflake 取消。
我已将 ABORT_DETACHED_QUERY=true
添加到 JDBC 连接 url,看起来像 jdbc:snowflake://<account>.snowflakecomputing.com/?warehouse=<WH>&db=<DB>&schema=<SCHEMA>&ABORT_DETACHED_QUERY=true
。
即使在 25 分钟后,脚本执行也不会被 Snowflake 取消。我试图找出潜在的问题。我尝试使用会话 ID 在 SESSIONS
视图上查询会话,但它不存在。我也尝试查询活动连接,但找不到方法。
所以我有两个问题,
- 配置
ABORT_DETACHED_QUERY
参数的方法正确吗? - 您如何检查 Snowflake 上的活动 JDBC 连接,因为
SHOW CONNECTIONS
没有 return 与我的应用程序的任何连接?
此外,
我使用 commons-dbcp BasicDataSource 作为数据源管理器,
commons-dbutils 使用 int QueryRunner.execute(String)
方法提交查询。
这是会话参数而不是连接字符串参数,因此设置它的正确方法是使用 ALTER 命令:
ALTER SESSION SET ABORT_DETACHED_QUERY=TRUE;
5 分钟后,如果由于会话突然终止而导致连接丢失,您的查询应该会中止。