Snowflake cloud data platform 如何使用雪花节点连接器重新使用令牌?
我被要求在这里报告使用节点连接器连接雪花的问题 问题: 问题是我找不到任何关于如何重用现有令牌以避免连接到Snowflake时花费很长时间的文档 非常感谢您的帮助 编辑 以下是我使用的代码:Snowflake cloud data platform 如何使用雪花节点连接器重新使用令牌?,snowflake-cloud-data-platform,Snowflake Cloud Data Platform,我被要求在这里报告使用节点连接器连接雪花的问题 问题: 问题是我找不到任何关于如何重用现有令牌以避免连接到Snowflake时花费很长时间的文档 非常感谢您的帮助 编辑 以下是我使用的代码: // Tokens are retrieved from a DB if (tokens) { connection.masterToken = tokens.masterToken; connection.masterTokenExpirationTime = tokens.masterToken
// Tokens are retrieved from a DB
if (tokens) {
connection.masterToken = tokens.masterToken;
connection.masterTokenExpirationTime = tokens.masterTokenExpirationTime;
connection.sessionToken = tokens.sessionToken;
connection.sessionTokenExpirationTime = tokens.sessionTokenExpirationTime;
}
connection.connect(async function (err, conn) {
if (err) {
reject(err);
} else {
resolve();
}
});
这可能不是一个完整的答案,但希望它能帮助你或其他人。我也有过类似的问题。对我们来说,这个过程是通过web服务获取JWT令牌。我还没有对此进行测试,但怀疑这可能会被重复使用。JSON响应包含一个“lease\u duration”属性。我猜这是在几秒钟内,但不知道,虽然我试图检查。给你一个想法,我得到的一个值是2764800。您可以通过以下方式计算出所需的时间:
Long leaseDurationInMs = Long.parseLong(result.get("lease_duration"));
Date estimatedLeaseExpiration = new Date(leaseStartTime+leaseDurationInMs);
System.out.println("Estimated lease expiration timestamp (human readable): "+estimatedLeaseExpiration);
Long estimatedLeaseExpirationInMs = estimatedLeaseExpiration.getTime();
然后,如果您每次都要获取此令牌,请检查此值,以查看是否需要获取另一个令牌。很抱歉回答了我自己的问题,但为了避免频繁连接,我最终将数据缓存在了我这边。我也遇到过类似的问题。对我们来说,这个过程是通过web服务获取JWT令牌。我还没有测试过这个,但怀疑它可能会被重复使用。问题是它似乎忽略了我传递的任何令牌,每次都试图重新登录,即使是几秒钟之后。我已经在我的原始帖子中添加了用于登录(缩短)的代码。