代码之家  ›  专栏  ›  技术社区  ›  geo909

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

  •  0
  • geo909  · 技术社区  · 2 年前

    我对雅典娜很陌生,我很难理解分区是如何工作的,以及它是否适合我。

    我在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 但我不确定它是否适用于我的案件,以及如何适用于我的案件。

    非常感谢。

    0 回复  |  直到 2 年前
        1
  •  1
  •   Alex    2 年前

    您可以预处理数据,并重命名它们,使其具有适当的目录结构。

    例如:

    1. 上传的对象
    2. 向lambda发送S3 PUT事件(小心设置,以免干扰步骤3)
    3. 复制并删除此对象以更正目录结构。
        2
  •  1
  •   geo909    2 年前

    因此,在更仔细地阅读了文档之后,我认为答案是“不”。如果我在“YYYYmmDD”后面有一个分隔符(“/”),那么分区投影就可以实现这一点,但由于没有分隔符,这也不能实现。

    似乎没有其他解决办法@Alex建议的那样。