无法使用 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 的标题等于 mysql
或 athena
.
执行查询
我在 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'
我正在尝试使用 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 的标题等于 mysql
或 athena
.
我在 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'