我有一个S3桶通过Kinesis归档JSON对象。每个桶对象可以包含多个JSON对象,这些对象在模式中可能有所不同。
桶结构
bucket
└── archive
└── 2021
└── 04
├── 11
| ├── 10
| | └── object-1
└── 14
└── 09
└── object-2s3://bucket/archive/2021/04/11/10/object-1 First object
{"id":1,"timestamp":"2021-04-11T10:01:20Z","nestedData":{"moreNesting":{"someData":"value"}}}
{"id":2,"timestamp":"2021-04-11T12:00:31Z","someDifferentlyNestedData":{"differentNesting":{"someOtherData":"value"}}}s3://bucket/archive/2021/04/14/09/object-2 第二个对象
{"id":3,"timestamp":"2021-04-14T09:02:30Z","noNestedData":"value"}我已经建立了一个Glue Crawler创建数据目录表从我的数据。
数据目录表

我正在使用AWS雅典娜查询这些数据。在查询时,我可以使用以下查询检索目标JSON对象的所有列:
所有列查询
SELECT *
FROM archive
WHERE nesteddata.morenesting.somedata = 'value';所有列查询结果

我还可以使用以下查询检索JSON对象的S3对象路径:
S3路径查询
SELECT "$path"
FROM archive
WHERE nesteddata.morenesting.somedata = 'value';S3路径查询结果

问题
我的问题是,如何通过查询检索原始JSON对象,即如何获得返回如下内容的查询结果:

发布于 2021-04-13 08:34:56
如果您不介意在另一个表上使用此表示形式,您可以使用string链接通过雅典娜控制台创建一个带有单个Create table字段的表。
https://stackoverflow.com/questions/67045412
复制相似问题