Snowflake-如何使用NodeJS连接到Snowflake

时间:2018-09-20 16:34:24

标签: python node.js snowflake

任何人都没有有效的代码来连接NodeJS和Snowflake。

尝试过instructions for NodeJS

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()

4 个答案:

答案 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();
            }
        }
    );