我有一个托管在 DC/OS 实例中的应用程序,该应用程序查询雪花数据库并获取结果。我正在使用 snowflake sdk为了查询雪花数据库,我们还流式传输我们从雪花获得的结果。
var statement = connection.execute({
sqlText: sql,
complete: function (err, stmt, rows) {
var stream = stmt.streamRows();
callback(err, stream, response);
}}
但是如果查询很大并且在雪花中查询处理需要时间,我会在我的客户端收到 504 网关超时错误。虽然 Node 服务仍在运行,但假设我从浏览器/ postman 访问 DC/OS 我会得到 504 超时此处出错,但雪花将结果返回到我的 Node 服务。避免它的正确策略是什么?
尽管我的 Node 服务仍然保持与雪花的连接并从雪花获取结果,但这是我从服务器获取到我的客户端的错误。
最佳答案
你能检查一下你的语句超时设置是什么吗?
你可以试试以下方法:
https://docs.snowflake.com/en/sql-reference/sql/alter-user.html
# set timeout to 15 minutes
alter user USERNAME set STATEMENT_TIMEOUT_IN_SECONDS = 900;
https://docs.snowflake.com/en/sql-reference/sql/alter-session.htmlSTATEMENT_TIMEOUT_IN_SECONDS =
例子
将 session 中执行的语句的锁定超时设置为 1 小时(3600 秒):
alter session set STATEMENT_TIMEOUT_IN_SECONDS = 3600;
将 session 中执行的语句的锁定超时设置回默认值:alter session unset STATEMENT_TIMEOUT_IN_SECONDS;
你联系过雪花支持吗?
关于node.js - 504网关超时错误NodeJs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47219470/