Snowflake cloud data platform 在SnowflakeBasicDataSource中配置其他属性
我在Java中使用下面的类。但是这个类的属性实现有限Snowflake cloud data platform 在SnowflakeBasicDataSource中配置其他属性,snowflake-cloud-data-platform,Snowflake Cloud Data Platform,我在Java中使用下面的类。但是这个类的属性实现有限 SnowflakeBasicDataSource basicDataSource = new SnowflakeBasicDataSource(); basicDataSource.setSsl(true); basicDataSource.setUser(dbSnowFlakeUsername); basicDataSource.setPassword(dbSnowFlakePassword); basicD
SnowflakeBasicDataSource basicDataSource = new SnowflakeBasicDataSource();
basicDataSource.setSsl(true);
basicDataSource.setUser(dbSnowFlakeUsername);
basicDataSource.setPassword(dbSnowFlakePassword);
basicDataSource.setUrl(dbSnowFlakeUrl);
basicDataSource.setLoginTimeout(dbSnowFlakeLoginTimeoutSeconds);
例如,我想指出networkTimeout和queryTimeout。但这并没有实现
如何将其传递给Snowflakes
试图通过这样的url传递
jdbc:snowflake://ni31094.eu-central-1.snowflakecomputing.com/?db=TEST_DB&schema=PUBLIC&role=SYSADMIN&warehouse=TEST_WAREHOUSE&tracing=FINE&networkTimeout=10&queryTimeout=10
但我认为这不管用
请寻求帮助。网络和查询超时的两个参数是:
- 网络超时:
networkTimeout
- 查询超时:
queryTimeout=
- 确保属性设置正确
- 调整连接字符串和accountinformation值
您可以在此处找到有关疑难解答的更多详细信息:网络和查询超时的两个参数是:
- 网络超时:
networkTimeout
- 查询超时:
queryTimeout=
- 确保属性设置正确
- 调整连接字符串和accountinformation值
您可以在此处找到有关疑难解答的更多详细信息:在URL中为
雪花源设置属性确实有效。我用一个长时间运行的查询测试了queryTimeout
,查询在参数中指定的时间后被正确取消
测试networkTimeout
有点困难,因为很难知道它是如何实际使用的。它被net.snowflake.client.jdbc.RestRequest使用,我已经测试了正确的参数是否被传递,它确实被传递了。您获得60秒超时的原因是初始登录请求的HTTP请求默认设置为60秒。初始登录请求似乎忽略了网络超时
。包含要运行的查询的请求被正确设置为通过查询字符串传入的networkTimeout
参数。不幸的是,由于我的java技能不高,我无法测试networkTimeout
导致错误的情况
下面是一些scala代码,它向您展示了在会话中正确设置了两个参数:
import net.snowflake.client.jdbc.{SnowflakeBasicDataSource,SnowflakeConnectionV1}
导入java.sql.xml语句
导入java.io.FileReader
导入java.util.Properties
对象基本连接器扩展应用程序{
val prop=新属性
prop.load(新文件读取器(“~/snowflake\u conn.properties”))
val username=prop.getProperty(“用户名”)
val password=prop.getProperty(“密码”)
val url=prop.getProperty(“url”)+“?网络超时=54321&queryTimeout=1234”
val basicDataSource=新雪花basicDataSource()
basicDataSource.setSsl(真)
basicDataSource.setUser(用户名)
basicDataSource.setPassword(密码)
basicDataSource.setUrl(url)
basicDataSource.setWarehouse(“DEMO\u WH”)
val conn:SnowflakeConnectionV1=basicDataSource.getConnection().asInstanceOf[SnowflakeConnectionV1]
val语句:语句=conn.createStatement()
val queryTimeout=conn.getSfSession.getQueryTimeout
val networkTimeout=conn.getSfSession.getNetworkTimeoutInMilli
println(s“查询超时:$queryTimeout”)
println(s“网络超时:$networkTimeout”)
语句。结束()
康涅狄格州关闭
上面打印出:
query timeout: 1234
network timeout: 54321
如您所见,我必须将连接对象强制转换为SnowflakeConnectionV1
,并使用getSfSession
方法使用.asInstanceOf[SnowflakeConnectionV1]检查参数
。这是因为JDBC连接
类型没有此方法。虽然您不必这样做,但如果您不关心检查参数,它仍然会正确使用它们。在URL中为雪花基本CDATA源设置属性确实有效。我使用在参数中指定的时间后,长时间运行的查询和查询将正确取消
测试networkTimeout
有点困难,因为很难说它是如何实际使用的。它被net.snowflake.client.jdbc.RestRequest使用,我已经测试过正确的参数是否被传递,它确实被传递了。获得60秒超时的原因是HTTP请求初始的ogin request默认设置为该值。初始登录请求似乎忽略了networkTimeout
。包含要运行的查询的请求正确设置为通过查询字符串传入的networkTimeout
参数。由于我的java技能不高,我无法测试networkTimeout
的情况很遗憾,rkTimeout会导致错误
下面是一些scala代码,它向您展示了在会话中正确设置了两个参数:
import net.snowflake.client.jdbc.{SnowflakeBasicDataSource,SnowflakeConnectionV1}
导入java.sql.xml语句
导入java.io.FileReader
导入java.util.Properties
对象基本连接器扩展应用程序{
val prop=新属性
prop.load(新文件读取器(“~/snowflake\u conn.properties”))
val username=prop.getProperty(“用户名”)
val password=prop.getProperty(“密码”)
val url=prop.getProperty(“url”)+“?网络超时=54321&queryTimeout=1234”
val basicDataSource=新雪花basicDataSource()
basicDataSource.setSsl(真)
basicDataSource.setUser(用户名)
basicDataSource.setPassword(密码)
basicDataSource.setUrl(url)
basicDataSource.setWarehouse(“DEMO\u WH”)
val conn:雪花连接v1=