首页 > 解决方案 > AWS Athena 可以查询存储在柱子

问题描述

我有一个 JSON 存储在 s3 中的一个文件中bucket/yyyy/MM/dd/hh。文件内容:

{
  "id": 1,
  "name": "John Doe",
  "orderDetails": {
    "productId": "0afc45s3sde",
    "name": "keyboard",
    "uri": "KeyboardUri"
  }
}
{
  "id": 2,
  "name": "Tom",
  "orderDetails": {
    "productId": "2afc65s8sde",
    "name": "Mouse",
    "uri": "MouseUri"
  }
}

当我使用 AWS Glue 爬虫在 Athena 中创建表时,它会创建一个具有以下属性的表:

id(int)
name(string)
orderDetail(struct<...>)
partition_0
partition_1
partition_2
partition_3

执行select * from db.tablename;时显示所有记录。

我想知道 Athena 是否能够查询该列的内容。例如:

我想orderDetails为两个用户(Id = 1,2)获取存在的uri。所以一旦查询执行,输出应该是:

KeyboardUri
MouseUri

有没有办法用雅典娜做到这一点?

标签: amazon-web-serviceshiveaws-glueamazon-athenapresto

解决方案


推荐阅读