在 athena aws 中具有不同分区的表
Posted
技术标签:
【中文标题】在 athena aws 中具有不同分区的表【英文标题】:table with different partitions in athena aws 【发布时间】:2019-04-15 12:21:52 【问题描述】:是否可以在 athena 中创建具有不同类型分区的表?
例如,每年有一个分区,每个月有一个分区,另一个分区只有 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/';
可能有类似的情况吗?
谢谢
【问题讨论】:
不是您要的,而是类似的东西 -> Athena 使用 Apache Hive 风格的数据分区。您可以跨多个维度(例如,月、周、日、小时或客户 ID)或所有维度对数据进行分区。 aws.amazon.com/blogs/big-data/… 【参考方案1】:不,这是不可能的。 分区不是“索引”。它是文件系统(或类似文件系统的存储,此处为:s3)上的数据布局。 您所追求的将是数据的两个独立副本。为此,您可以简单地创建两个表,一个按年/月/日分区,第二个按 id 分区。
但是,假设id
是您表中的标识符,您确实不想按id
进行分区。不过,您可能有兴趣探索按 id 进行分桶。
【讨论】:
以上是关于在 athena aws 中具有不同分区的表的主要内容,如果未能解决你的问题,请参考以下文章
使用 AWS Glue Scala 查询 Athena(添加分区)