代码之家  ›  专栏  ›  技术社区  ›  razimbres

无法从AWS Quick Sight中的S3分析JSON文件

  •  1
  • razimbres  · 技术社区  · 7 年前

    我在AWS中开发了一个管道,在那里我通过python 3从我的笔记本电脑收集CPU温度,使用安全协议发送到AWS物联网核心,一个规则将数据发送到云手表,dynamodb将其保存。创建了一个数据管道来将此dynamodb数据保存到S3,我想快速生成此数据的绘图。

    但是,我不能快速看到正确读取文件。S3文件如下:

    {"timestamp":{"s":"1526819850637"},"payload":{"m":{"$Temperature":{"s":"42.000"}}}}
    {"timestamp":{"s":"1526819976032"},"payload":{"m":{"$Temperature":{"s":"42.000"}}}}
    {"timestamp":{"s":"1526819934216"},"payload":{"m":{"$Temperature":{"s":"42.000"}}}}
    {"timestamp":{"s":"1526817845094"},"payload":{"m":{"$Temperature":{"s":"48.000"}}}}
    

    当我使用下面的清单文件时,Quick Sight成功地读取数据,但新计算字段中的“parsejson”命令消失,使得无法读取json:

    {
        "fileLocations": [
            {
                "URIs": [
                    "https://s3.amazonaws.com/my-bucket2/2018-05-20-12-32-49/12345-a279-1234-2269-491212345"
                ]
            },
            {
                "URIPrefixes": [
                    "https://s3.amazonaws.com/my-bucket2/2018-05-20-12-32-49/12345-a279-1234-2269-491212345"
                ]
            }
        ],"globalUploadSettings": {
            "format": "CSV","delimiter":"\n","textqualifier":"'"
        }
    

    }

    Quick Sight读取JSON为:

    {{"timestamp":{"s":"1526819850637"},"payload":{"m":{"$Temperature":{"s":"42.000"}}}}}
    

    …没有'parsejson'命令。

    数据直观,无漏值,AWS管线运行良好。我能做什么?

    1 回复  |  直到 7 年前
        1
  •  1
  •   razimbres    7 年前

    我找到了让它工作的方法。简单地说:

    {
        "fileLocations": [
            {
                "URIs": [
                    "https://s3.amazonaws.com/your-bucket2/2018-05-20-12-32-49/123456789"
                ]
            },
            {
                "URIPrefixes": [
                "https://s3.amazonaws.com/your-bucket2/2018-05-20-12-32-49/123456789"
                ]
            }
        ],"globalUploadSettings": {"format":"JSON",
        "delimiter":"\n","textqualifier":"'"
        }
    }