【问题标题】:Athena Partitioning limitation and how to best approach the problem I am describingAthena 分区限制以及如何最好地解决我所描述的问题
【发布时间】:2021-04-09 01:20:39
【问题描述】:

这就是正在发生的事情

  • 我有一个 lambda 函数,它读取特定大小的文件并推送到服务器(这是服务器 TPS 有限的限制)
  • 因此 Lambda 函数无法读取 S3 上的大文件
  • 我正在做 CTAS(我正在计算存储桶的大小)。因此,例如,如果我有 140M 条记录 S 并且如果我需要在大小为 s 的文件中记录 n 条记录,那么我的存储桶数为 S/s
  • 但是 Athena 抱怨它不能做超过 100 个分区(这很令人困惑,因为我是在做分桶而不是分区),但我的桶数达到了 75K。

我该如何处理这种情况?我能想到的是

  • 有一个再次重新分区的 Spark 作业。
  • 操纵 Glue 以某种方式允许超过 100 个分区

这两种方法都不吸引我。一定有更简单的方法。

【问题讨论】:

  • 你想做什么?为什么要创建那么多桶?限制通常是最佳实践的提示。

标签: amazon-web-services partitioning amazon-athena bucket


【解决方案1】:

ctas 最多只能写入 100 个分区。您需要将查询拆分为第一个 cta,最多可写入 100 个查询,然后是 insert 查询,最多可写入 100 个分区。不过,另一种方法是直接在粘合上创建表并只执行插入查询(始终写入最多 100 个分区)。

文档在这里https://docs.aws.amazon.com/athena/latest/ug/ctas-insert-into.html

【讨论】:

  • “分区”限制适用于分区和存储桶(您不能写入超过 100 个总存储桶或分区)。错误消息并不总是像人们希望的那样清晰
猜你喜欢
  • 2012-02-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-04
  • 2011-07-23
  • 2020-04-15
相关资源
最近更新 更多