雪花节点查询未显示结果

时间:2020-10-21 16:16:36

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

我一直在尝试使用Node运行一个简单的Snowflake查询。 一切都连接起来,看起来还可以,但是我似乎无法钩住查询结果。 以下代码基于官方文档here 这样可以正确记录行数,但不能记录实际结果。 除非我缺少任何内容,否则文档不会显示任何对象信息。

有什么想法的人吗?

var snowflake = require('snowflake-sdk');
            
            var connection = snowflake.createConnection( {
            account: 'xxx',
            username: 'xxx',
            password: 'xxx',
            database: 'xxx',
            warehouse: 'xxx',
            role: 'xxx'
            } );
            connection.connect( 
            function(err, conn) {
            if (err) {
            console.error('Unable to connect: ' + err.message);
            } 
            else {
            console.log('Successfully connected to Snowflake.');
            connection_ID = conn.getId();           
            var statement = connection.execute({
            sqlText: 'SELECT * FROM MY_SCHEMA.MY_TABLE LIMIT 1;',
            
            complete: function(err, stmt, rows) {
            if (err) {
            console.error('Failed to execute statement due to the following error: ' + err.message);
            } else {
            console.log('Successfully executed statement: ' + stmt.getSqlText() + ' > ' + rows.length);
            }
            }
            });

2 个答案:

答案 0 :(得分:1)

您要在终端中显示数据吗?

例如,代替SQL语句:

hadoop-hdfs-namenode-<hostname>.log

您正在寻找:

console.log('Successfully executed statement: ' + stmt.getSqlText() + ' > ' + rows.length)

这是非常基本的,并且有很多不同的方法可以实现您想要的,但是我希望它会有所帮助。 Snowflake文档旨在帮助与Node建立联系并发送一些基本信息,但是我确信您的Node / JavaScript开发团队将是编写客户端解决方案以补充您的工作流程的主要人员。

答案 1 :(得分:0)

你的代码看起来没问题,你在 else 部分获取 stmt 后遗漏了一些步骤,下面的代码将帮助你得到结果。

      var snowflake = require('snowflake-sdk');
        
        var connection = snowflake.createConnection( {
        account: 'xxx',
        username: 'xxx',
        password: 'xxx',
        database: 'xxx',
        warehouse: 'xxx',
        role: 'xxx'
        } );
        connection.connect( 
        function(err, conn) {
        if (err) {
        console.error('Unable to connect: ' + err.message);
        } 
        else {
        console.log('Successfully connected to Snowflake.');
        connection_ID = conn.getId();
        query="select * from yourTable";
        dbConnection.execute({
                sqlText: query,
                streamResult: true,
                complete: function (error, stmt, rows) {
                    if (error) {
                        console.log(error);
                    }
                    stmt.streamRows({
                        start: 0,
                        end: stmt.getNumRows() - 1,
                    })
                        .on('error', function (error) {
                            if (error) {
                                next({ statusCode: 400, message: error });
                            }
                            next({ statusCode: 400, message: 'Unable to consume requested rows' });
                        })
                        .on('data', function (row) {
                            output.push({ name: row.name })
                        })
                        .on('end', function () {
                        });
                }
            });
            }