簡體   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