繁体   English   中英

AWS Lambda Athena getQueryResults 没有结果

[英]AWS Lambda Athena getQueryResults With no results

我正在尝试获取 getQueryResults 的输出
使用以下代码:

var AWS = require('aws-sdk');
var athena = new AWS.Athena();

const DEBUG = process.env.DEBUG;
const GLOCA_ENVID = process.env.GLOCA_ENVID;
const GLOCA_AWS_ACCOUNTID = process.env.GLOCA_AWS_ACCOUNTID;
const GLOCA_AWS_REGION = process.env.GLOCA_AWS_REGION;

exports.handler = function(event, context, callback) {

    athena.getQueryResults({
        QueryExecutionId: "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
        },function(err,data){
        if (err) console.log(err);
        else {
            console.log("Body: ", data);
        }
    });
}

下面是输出:

{
  UpdateCount: 0,
  ResultSet: { Rows: [ [Object] ], ResultSetMetadata: { ColumnInfo: [Array] } }
}

输出应如下所示:

{
    "ResultSet": {
        "Rows": [
            {
                "Data": [
                    {
                        "VarCharValue": "date"
                    },
                    {
                        "VarCharValue": "location"
                    },
                    {
                        "VarCharValue": "browser"
                    },
                    {
                        "VarCharValue": "uri"
                    },
                    {
                        "VarCharValue": "status"
                    }
                ]
            },
            {
                "Data": [
                    {
                        "VarCharValue": "2014-07-05"
                    },
                    {
                        "VarCharValue": "SFO4"
                    },
                    {
                        "VarCharValue": "Safari"
                    },
                    {
                        "VarCharValue": "/test-image-2.jpeg"
                    },
                    {
                        "VarCharValue": "200"
                    }
                ]
            },
            {
                "Data": [
                    {
                        "VarCharValue": "2014-07-05"
                    },
                    {
                        "VarCharValue": "SFO4"
                    },
                    {
                        "VarCharValue": "IE"
                    },
                    {
                        "VarCharValue": "/test-image-2.jpeg"
                    },
                    {
                        "VarCharValue": "200"
                    }
                ]
            }
        ],
        "ResultSetMetadata": {
            "ColumnInfo": [
                {
                    "CatalogName": "hive",
                    "SchemaName": "",
                    "TableName": "",
                    "Name": "date",
                    "Label": "date",
                    "Type": "date",
                    "Precision": 0,
                    "Scale": 0,
                    "Nullable": "UNKNOWN",
                    "CaseSensitive": false
                },
                {
                    "CatalogName": "hive",
                    "SchemaName": "",
                    "TableName": "",
                    "Name": "location",
                    "Label": "location",
                    "Type": "varchar",
                    "Precision": 2147483647,
                "Data": [

                    "Scale": 0,
                    "Nullable": "UNKNOWN",
                    "CaseSensitive": true
                },
                {
                    "CatalogName": "hive",
                    "SchemaName": "",
                    "TableName": "",
                    "Name": "browser",
                    "Label": "browser",
                    "Type": "varchar",
                    "Precision": 2147483647,
                    "Scale": 0,
                    "Nullable": "UNKNOWN",
                    "CaseSensitive": true
                }
            ]
        }
    },
    "UpdateCount": 0
}

上面的输出是一个示例输出,但类似的结果是我所期待的。 当我在 AWS CLI 中运行时:

aws athena --region "us-west-2" get-query-results --query-execution-id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111

我得到了预期的输出,所以我无法理解为什么我不能通过 lambda 得到相同的结果。

非常感谢您的帮助! :)

它实际上看起来像代码很好。 查看响应表明 ResultSet.Rows 中有一个对象 尝试在记录之前对结果进行字符串化,以便处理程序如下所示:

exports.handler = function(event, context, callback) {

    athena.getQueryResults({
        QueryExecutionId: "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
        },function(err,data){
        if (err) console.log(err);
        else {
            console.log("Body: ", JSON.stringify(data, null, 2));
        }
    });
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM