1

是否可以使用AWS Athena查询S3 对象标记?例如,如果我有这样的 S3 布局

bucketName/typeFoo/object1.txt
bucketName/typeFoo/object2.txt
bucketName/typeFoo/object3.txt

bucketName/typeBar/object1.txt
bucketName/typeBar/object2.txt
bucketName/typeBar/object3.txt

每个对象都有一个 S3 对象标签,例如

#For typeFoo/object1.txt and typeBar/object1.txt
id=A

#For typeFoo/object2.txt and typeBar/object2.txt
id=B

#For typeFoo/object3.txt and typeBar/object3.txt
id=C

那么是否可以运行 AWS Athena 查询以获取具有关联标签的任何对象,例如

select * from myAthenaTable where tag.id = 'A'
# returns typeFoo/object1.txt and typeBar/object1.txt

这只是一个示例,并不反映我实际的 S3 存储桶/对象前缀布局。随意在您的答案/评论中使用您希望的任何布局。

最终,我有大量对象可能位于不同的存储桶和文件夹路径中,但它们彼此相关,我的目标是标记它们,以便我可以查询特定的 id 值并获取与该 id 相关的所有对象。id 值将是一个 GUID,该 GUID 将映射到许多不同类型的相关对象,例如,我可以有一个视频文件、一个图片文件、一个元数据文件和一个 json 文件,我想得到所有这些文件中的哪些使用了它们的共同 id 值;请随时提供建议,因为我有能力按照我认为合适的方式构建它。

更新 - 注意 S3 对象元数据S3 对象标记是两个不同的东西。

4

1 回答 1

1

Athena 不支持基于 s3 标签的查询

一种解决方法是,您可以使用 lambda 创建一个包含标记和文件映射的元文件,即每当新文件到达 s3 时,lambda 都会使用标记和名称详细信息更新 s3 中的文件。

于 2019-07-22T00:53:41.037 回答