table 在 athena aws 中有不同的分区

table with different partitions in athena aws

是否可以在 athena 中创建具有不同类型分区的 table?

例如按年月日划分一个分区,另一个分区仅按 id

    CREATE EXTERNAL TABLE IF NOT EXISTS table_example(
        name string,  
        adress 
        PARTITIONED BY (year string, month string, day string) ----> partition 1
        PARTITIONED BY (id int) -----------> partition 2

ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
WITH SERDEPROPERTIES ('ignore.malformed.json' = 'true')
LOCATION 's3://example/folder/';

有没有类似的可能?

谢谢

不,这是不可能的。 分区不是"indexing"。它是文件系统(或类似文件系统的存储,此处为:s3)上的数据布局。 您所追求的是数据的两个独立副本。为此,您可以简单地创建两个 table,一个按 year/month/day 分区,第二个按 id 分区。

但是,假设 id 是您 table 中的标识符,您确实不想按 id 进行分区。不过,您可能有兴趣探索按 ID 进行分桶。