AWS Athena:具有非标准文件结构的 S3 存储桶的分区 table

AWS Athena: partition table for S3 bucket with non-standard file structure

我是 Athena 的新手,我很难理解分区的工作原理以及它是否适合我。

我在 S3 中有以下格式的文件: path/to/files/YYYYmmDDTHHMMSSZ_<id>.json

例如:

path/to/files/20191208T130435Z_265901.json
path/to/files/20191212T132019Z_266406.json
path/to/files/20191216T102909Z_266975.json
path/to/files/20191226T095326Z_268789.json
path/to/files/20191226T103749Z_268798.json
path/to/files/20191226T110113Z_268802.json
path/to/files/20191229T182902Z_269391.json
path/to/files/20191230T041315Z_269481.json
path/to/files/20200101T200007Z_269935.json
...

我知道这不符合正确的蜂巢式分区的指导方针,但我不是数据的所有者,所以这不能改变。

我的问题是:有什么方法可以指定月度分区到这样的结构吗?

我正在阅读 this guide 但我不确定它是否以及如何适用于我的情况。

非常感谢。

您可以 pre-process 您的数据,并重命名它们,以获得正确的目录结构。

例如:

  1. 对象已上传
  2. 将 S3 PUT 事件发送到 lambda(仔细设置它以免干扰第 3 步)
  3. 复制+删除此对象以更正目录结构。

因此,在更仔细地阅读了文档之后,我认为答案是否定的。如果我在“YYYYmmDD”之后有一个分隔符(“/”),那么这将可以通过分区投影实现,但由于没有,所以这也不会发生。

@Alex 所建议的解决方法似乎没有其他方法。