0

根据文档,当您在 Athena 中创建表时,您需要指定输入数据文件在 s3 存储桶中的位置。您只能指定包含该文件的 s3 位置,但不能指定要使用的文件。例如,我在 my-bucket/logs/ 位置有许多不同格式的文件,例如 type1.log.gz、type2.log.gz、type3.log.gz。

目前给出的位置是 's3://my-bucket/logs/'

那么是否可以指定要使用的文件(比如 type2.log.gz)。还是我必须将文件(type2.log.gz)复制到没有其他文件的另一个位置并指定其路径?

4

2 回答 2

3

Athena 期望 S3 位置中的所有数据都具有相同的架构。当您有一个非常大的表时,这是一个很大的帮助,因为它可以分成许多 Athena 可以并行读取的文件,或者当您想要将数据添加到现有表时。但是,这确实意味着您根本无法在一个 S3 位置具有不同架构的文件的情况下使用 Athena。

在您的情况下,您需要将要查询的文件移动到其他位置,然后创建一个指向其位置的表 - 例如,如果您复制到s3://my-bucket/logs/type2/type2.log.gz,该表应该指向s3://my-bucket/logs/type2.

于 2018-02-06T20:55:01.590 回答
0

不,这是不可能的。您有义务将文件复制到外部存储桶中

参考 : AWS 确认

于 2017-03-31T13:59:10.123 回答