ALTER TABLE ADD PARTITION - Amazon Athena
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

ALTER TABLE ADD PARTITION

为表创建一个或多个分区列。每个分区包含一个或多个不同的列名称/值组合。将会为每个指定的组合创建一个单独的数据目录,这在某些情况下可提高查询性能。分区列在表数据本身中不存在,因此如果您使用的列名称与表本身的列同名,则会出现错误。有关更多信息,请参阅分区数据

在 Athena 中,一个表及其分区必须使用相同的数据格式,但它们的架构可以不同。有关更多信息,请参阅 包含分区的表中的更新

有关 IAM 策略中需要的资源级权限(包括glue:CreatePartition),请参阅Amazon GlueAPI 权限:操作和资源参考针对 Amazon Glue Data Catalog 中数据库和表的精细访问权限。有关使用 Athena 时权限的疑难解答信息,请参阅Permissions的 部分Athena 中的故障排除主题。

Synopsis

ALTER TABLE table_name ADD [IF NOT EXISTS] PARTITION (partition_col1_name = partition_col1_value [,partition_col2_name = partition_col2_value] [,...]) [LOCATION 'location1'] [PARTITION (partition_colA_name = partition_colA_value [,partition_colB_name = partition_colB_value [,...])] [LOCATION 'location2'] [,...]

Parameters

添加分区时,您可以为分区指定一个或多个列名/值对,以及该分区的数据文件所在的 Amazon S3 路径。

[IF NOT EXISTS]

如果已存在具有相同定义的分区,则会导致错误被隐藏。

PARTITION (partition_col_name = partition_col_value [,...])

创建一个具有指定列名称/值组合的分区。仅当列的数据类型为字符串时,才将 partition_col_value 包含在字符串字符中。

[LOCATION 'location']

指定存储前述语句所定义的分区的目录。

Examples

ALTER TABLE orders ADD PARTITION (dt = '2016-05-14', country = 'IN');
ALTER TABLE orders ADD PARTITION (dt = '2016-05-14', country = 'IN') PARTITION (dt = '2016-05-15', country = 'IN');
ALTER TABLE orders ADD PARTITION (dt = '2016-05-14', country = 'IN') LOCATION 's3://mystorage/path/to/INDIA_14_May_2016/' PARTITION (dt = '2016-05-15', country = 'IN') LOCATION 's3://mystorage/path/to/INDIA_15_May_2016/';