【问题标题】:HIVE_CURSOR_ERROR: Please reduce your request rateHIVE_CURSOR_ERROR:请降低您的请求率
【发布时间】:2021-06-11 01:18:04
【问题描述】:

我正在使用 CloudTrail 日志对我的 s3 存储桶运行简单查询。桶很大,大约 1 分 45 秒后出现错误

HIVE_CURSOR_ERROR:请降低您的请求率。

有没有办法限制我在 Athena 中的 s3 存储桶的请求率?

SELECT *
FROM default.cloudtrail_logs_cloudtraillog
WHERE eventname = 'DeleteUser' AND awsregion = 'us-east-1'

【问题讨论】:

  • 你能告诉我s3路径中每个文件的大小吗?
  • 它是 cloudtrail 日志,因此它们的范围可以从字节到 KB
  • 您能否尝试将这些小文件转换为每个文件至少 124 MB 并重试相同的查询?由于在 s3 中扫描的文件数量更多,因此您会收到此错误。
  • 是的,这里是 CloudTrail 正在自动写入存储桶,我不想尝试找出“修复”或解决方法。我想知道其他人是否有这个问题,以及问题的解决方案是什么。关于您的解决方案可能有效,但如何实施? Lambda 并将存档写入单独的存储桶?

标签: amazon-web-services amazon-s3 amazon-athena


【解决方案1】:

所以我将总结 AWS 建议的解决方案。它们都不是很好,我想知道为什么 AWS 不会限制它们,而是抛出错误。

默认情况下,S3 将自动扩展以支持非常高的请求率。当您的请求速率扩展时,S3 会根据需要自动对您的 S3 存储桶进行分区以支持更高的请求速率。但是,有时它仍然会出错。所以他们建议等待(不建议时间范围)给 S3 足够的时间根据它收到的请求率自动分区您的存储桶。

他们还建议:

1) 使用 S3distcp 实用程序将小文件组合成更大的对象。 https://docs.aws.amazon.com/emr/latest/ReleaseGuide/UsingEMR_s3distcp.html

2) 分区https://docs.aws.amazon.com/athena/latest/ug/partitions.html

【讨论】:

    【解决方案2】:

    我从 AWS 支持部门得到了相同的答案。由于我进行的是一次性分析,因此我最终编写了一个脚本,将一小段日期范围内的日志复制到一个单独的存储桶中,并使用 Athena 来分析较小的数据集。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-09
      • 1970-01-01
      • 1970-01-01
      • 2019-11-20
      • 1970-01-01
      相关资源
      最近更新 更多