无法使用 AWS S3 Select 对 JSON 进行查询

Can't make a query on a JSON by using AWS S3 Select

我正在尝试使用 aws s3-select 查询 JSON object。我的 JSON 数组结构是这样的:

[
    {
        "title": "s3",
        "url": "https://...",
        "time": "2019-07-02",
        "summary": "by using s3 select..."
    },
    {
        "title": "athena",
        "url": "https://...",
        "time": "2019-07-01",
        "summary": "by using athena..."
    },
    {
        "title": "mysql",
        "url": "https://...",
        "time": "2019-06-30",
        "summary": "by using mysql..."
    }
]

数组中的所有 object 都具有相同的 属性。现在我想对 return 所有 object 的标题等于 mysqlathena.

执行查询

我在 aws 控制台中尝试了很多不同的脚本,但其中 none 有效。它 return 是一个空数组/ object 或给出错误。例如:

select * from s3object s where s[*].title = 'athena' //NOT WORKING.
select * from S3Object[*] s where s.title = 'athena' //NOT WORKING.

我的 JSON 数组结构是否错误(因为我的 object 没有键名)?我怎样才能做到这一点?

您应该 select 数组位于根级别。 所以首先[]对应root。接下来 [] root 中的顶级数组。

试试下面的查询,它会起作用:

select * from S3Object[*][*] s where s.title = 'athena'