任何人都没有有效的代码来连接NodeJS和Snowflake。
var snowflake = require('snowflake-sdk');
var connection = snowflake.createConnection({
account: 'account1',
username: 'user1',
password: 'pass1',
region: 'us-east-1'
});
connection.connect(function(err, conn) {
if (err) {
console.error('Unable to connect: ' + err.message);
} else {
console.log('Successfully connected as id: ' + connection.getId());
}
});
继续出错:
Network error. Could not reach Snowflake.
类似地-遵循instructions for Python可以正常工作(使用与NodeJS完全相同的用户/密码/帐户等):
import snowflake.connector
ctx = snowflake.connector.connect(
user='user1',
password='pass1',
account='account1'
)
print ("SELECT current_version():")
cs = ctx.cursor()
try:
cs.execute("SELECT current_version()")
one = cs.fetchone()
print(one[0]) # 2.50.2
finally:
cs.close()
答案 0 :(得分:1)
在python中使用的帐户具有“ account_id.region”之类的
g(long):
sal rdi, 24 //no memory access just a right shift right and left shift
sar rdi, 32
jmp f(int) //tail call a ret from f will jump directly
//to g caller!
对于node.js,您需要输入以下内容:
ctx = snowflake.connector.connect(
user='user1',
password='pass1',
account='abc.us-east-1'
)
答案 1 :(得分:0)
严格按照所提供的代码,这两个示例之间的功能差异在于Node.js一个指定了us-east-1
区域,而Python一个没有指定一个区域。默认区域是us-west-2,无需指定。链接的文档指出:“仅当您的帐户不在美国西部时使用”。因此,指定错误的区域可能会导致连接错误。
答案 2 :(得分:0)
从连接信息中删除区域并指定'account ='abc.us-east-1'。区域字段已弃用,不应在与Snowflake的连接中使用。
https://docs.snowflake.net/manuals/user-guide/nodejs-driver-use.html#establishing-a-connection
答案 3 :(得分:0)
我的配置对我有用:
var connection = snowflake.createConnection({
account: 'abc.us-east-1',
username: 'user1',
password:'pass1',
authenticator: 'SNOWFLAKE',
clientSessionKeepAlive: true,
});
connection.connect(
function(err, conn) {
if (err) {
console.error('Unable to connect: ' + err.message);
}
else {
console.log('Successfully connected to Snowflake.');
// Optional: store the connection ID.
connection_ID = conn.getId();
}
}
);