我们在S3中有数PB的数据。我们是https://www.pubnub.com/,我们将使用数据存储在我们网络的S3中,以便进行结算。我们在S3存储桶中存储了制表符分隔的日志文件。雅典娜给了我们 HIVE_CURSOR_ERROR
失败。
我们的S3存储桶设置为在6个月后自动推送到AWS Glacier。除了Glacier备份文件之外,我们的存储桶还有S3文件热,可以随时读取。由于这个原因,我们收到了Athena的访问错误。错误中引用的文件是Glacier备份。
我的猜测答案是:不要将冰川备份放在同一个桶中。由于我们的数据量大小,我们没有这个选项。我相信雅典娜不会在这个设置中工作,我们将无法使用Athena进行日志分析。
然而,如果我们有办法使用雅典娜,我们会很激动。是否有 HIVE_CURSOR_ERROR
的解决方案以及跳过Glacier文件的方法?我们的s3水桶是一个扁平水桶没有文件夹。
屏幕截图中省略了上下屏幕截图中显示的S3文件对象名称。 HIVE_CURSOR_ERROR
中的文件引用实际上是Glacier对象。您可以在我们的S3 Bucket的屏幕截图中看到它。
注意我试图在https://forums.aws.amazon.com/发帖,但那不是bueno。
答案 0 :(得分:7)
2017年5月16日documentation from AWS明确指出Athena不支持GLACIER存储类:
Athena不支持LOCATION指定的存储桶中的不同存储类 子句,不支持GLACIER存储类,不支持Requester Pays 桶。有关详情,请参阅Amazon Simple Storage Service开发人员指南中的Storage Classes,Changing the Storage Class of an Object in |S3|和Requester Pays Buckets。
我们也对此感兴趣;如果你让它工作,请告诉我们如何。 : - )
答案 1 :(得分:1)
自the release of February 18, 2019起,雅典娜将忽略GLACIER存储类的对象,而不是使查询失败:
[…]作为解决此问题的结果,Athena忽略了转换到GLACIER存储类的对象。雅典娜不支持从GLACIER存储类查询数据。
答案 2 :(得分:0)
您必须具有一个S3存储桶才能使用。此外,用于启动S3 Glacier Select作业的AWS账户必须具有S3存储桶的写入权限。 Amazon S3存储桶必须与包含要查询的存档对象的保管库位于同一AWS区域。
S3冰川选择运行查询并将其存储在S3存储桶中
最重要的是,您必须将数据移至S3 buck中才能使用S3冰川选择语句。然后在“新” S3存储桶上使用雅典娜。