使用 athena alter table 语句创建分区
Create partitions using athena alter table statement
此 "create table" 语句工作正常。
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) 如何向 table 添加分区?我需要通过引用 s3 的新位置将 2019 年的数据添加到相同的 table://some_bucket/athena-parquet/no_details/2019/ 这两年的数据都以 parquet (snappy) 格式提供。
2) 是否可以按月而不是年进行分区?换句话说,有 24 个分区而不是 2 个分区可以吗?新目标 table 是否也会像源数据一样具有镶木地板格式?上面提到的 code_2 列看起来像这样“20181013133839”。我需要将前 4 个字符用于每年(或 6 个用于每月)分区。
首先 table 需要创建为 EXTERNAL TABLE
Check this
样本 -
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/';
如果您希望每个月或每天有更多分区,请使用
创建 table
PARTITIONED BY (day string)
但是你需要把一天的数据放到路径-
s3://some_bucket/athena-parquet/no_details/20181013/
此 "create table" 语句工作正常。
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) 如何向 table 添加分区?我需要通过引用 s3 的新位置将 2019 年的数据添加到相同的 table://some_bucket/athena-parquet/no_details/2019/ 这两年的数据都以 parquet (snappy) 格式提供。
2) 是否可以按月而不是年进行分区?换句话说,有 24 个分区而不是 2 个分区可以吗?新目标 table 是否也会像源数据一样具有镶木地板格式?上面提到的 code_2 列看起来像这样“20181013133839”。我需要将前 4 个字符用于每年(或 6 个用于每月)分区。
首先 table 需要创建为 EXTERNAL TABLE
Check this
样本 -
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/';
如果您希望每个月或每天有更多分区,请使用
创建 tablePARTITIONED BY (day string)
但是你需要把一天的数据放到路径-
s3://some_bucket/athena-parquet/no_details/20181013/