我无法使用Node JS连接器连接到雪花

时间:2020-04-09 06:51:28

标签: node.js snowflake-cloud-data-platform

我正在尝试使用snowflake-sdk连接器连接到雪花数据库。

首先,我使用命令行安装了snowflake-sdk

npm install snowflake-sdk

我按照报告的所有here指示进行操作之后。

我创建了文件index.js,其中包含:

    var snowflake = require('snowflake-sdk');
    var connection = snowflake.createConnection( {
        account : 'xxxx.east-us-2'
        username: 'MYUSERNAME'
        password: 'MYPASSWORD'
        }
        );
    connection.connect( 
        function(err, conn) {
            if (err) {
                console.error('Unable to connect: ' + err.message);
                } 
            else {
                console.log('Successfully connected to Snowflake.');            
                }
            }
        );

在我运行命令node index.js

之后

我遇到了连接错误:

无法连接:网络错误。无法到达雪花。

我再次尝试,更改了xxxx.east-us-2.azure.snowflakecomputing.com中的帐户值,但没有任何改变。

3 个答案:

答案 0 :(得分:0)

您的帐户名也应包括云提供商。 将帐户名称更改为:

var connection = snowflake.createConnection( {
    account : 'xxxx.east-us-2.azure'
    username: 'MYUSERNAME'
    password: 'MYPASSWORD'
    }

有关完整的帐户名,请参考docs

答案 1 :(得分:0)

问题出在您的帐户名上。请以您的帐户名xxxx.east-us-2.azure

答案 2 :(得分:0)

这是我在发给Snowflake支持人员的小问题复制中使用的代码。

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const snowflake = require("snowflake-sdk");
const Q = require("q");
const SNOWFLAKE_HOST_SUFFIX = 'snowflakecomputing.com';    
const SNOWFLAKE_ACCOUNT = 'companyname';
function getSFConnection(connParams) {
    var d = Q.defer();
    let connection = snowflake.createConnection({
        account: connParams.account || SNOWFLAKE_ACCOUNT,
        username: connParams.user,
        password: connParams.password || '',
        database: connParams.name,
        warehouse: connParams.warehouse
    });
    connection.connect(function (err, conn) {
        if (err) {
            console.error('Unable to connect: ' + err.message);
            d.reject(err);
        }
        else {
            console.info('Successfully connected as id: ' + connection.getId());
            connection.close = function () {
                return disconnectSF(connection);
            };
            d.resolve(connection);
        }
    });
    return d.promise;
}

我用它就像:

getSFConnection({ 
    user: 'username',
    account: 'companyname',
    password: 'password',
    name: '',
    warehouse: 'warehouse_name'
}).then...

根据反思,我想知道为什么设置了主机后缀,但是没有使用它。.但是有。