Hive 使用athena alter table语句创建分区

Hive 使用athena alter table语句创建分区,hive,amazon-athena,Hive,Amazon Athena,此“CREATETABLE”语句工作正常 CREATE EXTERNAL TABLE default.no_details_2018_csv ( `id` string, `client_id` string, `client_id2` string, `id_1` string, `id_2` string, `client_id3` string, `code_1` string, `code_2` string, `code_3` string ) ST

此“CREATETABLE”语句工作正常

CREATE EXTERNAL TABLE default.no_details_2018_csv (
  `id` string,
  `client_id` string,
  `client_id2` string,
  `id_1` string,
  `id_2` string,
  `client_id3` string,
  `code_1` string,
  `code_2` string,
  `code_3` string
)
STORED AS PARQUET
LOCATION 's3://some_bucket/athena-parquet/no_details/2018/'
tblproperties ("parquet.compress"="SNAPPY");
2018年可用拼花地板格式的数据可在该桶/文件夹中找到

1) 如何将分区添加到此表中?我需要参考s3://some_bucket/athena parquet/no_details/2019/的新位置,将2019年的数据添加到同一个表中。这两个年份的数据都以拼花(snappy)格式提供


2) 是否可以按月份而不是按年份划分?换句话说,由2个分区改为24个分区可以吗?新的目标表是否也会像源数据一样具有拼花格式?上面提到的代码_2列类似于“20181013133839”。我需要为年度分区使用前4个字符(或为月度分区使用前6个字符)。

需要将第一个表创建为
外部表

样本-

CREATE EXTERNAL TABLE default.no_details_table (
  `id` string,
  `client_id` string,
  `client_id2` string,
  `id_1` string,
  `id_2` string,
  `client_id3` string,
  `code_1` string,
  `code_2` string,
  `code_3` string
)
PARTITIONED BY (year string)
STORED AS PARQUET
LOCATION 's3://some_bucket/athena-parquet/no_details/'
tblproperties ("parquet.compress"="SNAPPY");

您可以添加一个分区作为

ALTER TABLE default.no_details_table ADD PARTITION (year='2018') LOCATION 's3://some_bucket/athena-parquet/no_details/2018/';
如果您希望每个月或每天有更多的分区,请使用创建表

PARTITIONED BY (day string)
但您需要将一天的数据放入path-

s3://some_bucket/athena-parquet/no_details/20181013/