12

使用 S3 Glacier 的 Amazon Athena 日志分析服务

我们在 S3 中有数 PB 的数据。我们是https://www.pubnub.com/,我们将使用数据存储在我们网络的 S3 中以用于计费目的。我们将制表符分隔的日志文件存储在 S3 存储桶中。雅典娜让我们HIVE_CURSOR_ERROR失败了。

我们的 S3 存储桶设置为在 6 个月后自动推送到 AWS Glacier。除了 Glacier 备份文件之外,我们的存储桶还有热的 S3 文件并且可以读取。因此,我们从 Athena 收到访问错误。错误中引用的文件是 Glacier 备份。

我的猜测是答案将是:不要将冰川备份保存在同一个存储桶中。由于我们的数据量大小,我们无法轻松使用此选项。我相信 Athena 在此设置中不起作用,我们将无法使用 Athena 进行日志分析。

但是,如果有一种方法可以让我们使用 Athena,我们会非常激动。是否有HIVE_CURSOR_ERROR跳过 Glacier 文件的解决方案和方法?我们的 s3 存储桶是没有文件夹的扁平存储桶。

AWS Athena S3 操作异常

屏幕截图中省略了上面和下面屏幕截图中显示的 S3 文件对象名称。中的文件引用HIVE_CURSOR_ERROR实际上是 Glacier 对象。您可以在我们的 S3 存储桶的屏幕截图中看到它。

Athena 访问的 Glacier 中的 Amazon S3 Bucket 对象

请注意,我尝试在https://forums.aws.amazon.com/上发帖,但那不是 bueno。

在此处输入图像描述

4

3 回答 3

7

AWS日期为 2017 年 5 月 16 日的文档明确指出 Athena 不支持 GLACIER 存储类:

Athena 不支持 LOCATION 子句指定的存储桶内的不同存储类,不支持 GLACIER 存储类,也不支持 Requester Pays 存储桶。有关更多信息,请参阅存储类在 |S3| 中更改对象的存储类 ,以及Amazon Simple Storage Service 开发人员指南中的请求者支付存储桶

我们也对此感兴趣;如果你让它工作,请告诉我们如何。:-)

于 2017-05-17T14:51:20.553 回答
5

2019 年 2 月 18 日发布以来, Athena 将忽略具有 GLACIER 存储类的对象,而不是使查询失败:

[...] 作为解决此问题的结果,Athena 忽略了转换到 GLACIER 存储类的对象。Athena 不支持从 GLACIER 存储类中查询数据。

于 2019-02-22T10:53:31.417 回答
1

您必须有一个 S3 存储桶才能使用。此外,您用于启动 S3 Glacier Select 作业的 AWS 账户必须具有 S3 存储桶的写入权限。Amazon S3 存储桶必须与包含正在查询的存档对象的文件库位于同一 AWS 区域中。

S3 glacier select 运行查询并存储在 S3 存储桶中

最重要的是,您必须将数据移动到 S3 buck 中才能使用 S3 glacier select 语句。然后在“新”S3 存储桶上使用 Athena。

于 2020-10-19T13:22:36.863 回答