ALTER TABLE(外表)

云原生数据仓库 AnalyticDB MySQL 版企业版及湖仓版的OSS分区外表支持通过ALTER TABLE增加或删除分区。

前提条件

  • 集群的产品系列为企业版及湖仓版

  • 集群的内核版本为3.1.8.0及以上版本。

    说明

    如何查看集群内核版本,请参见如何查看实例版本信息。如需升级内核版本,请联系技术支持。

  • 已创建OSS分区外表。创建方法,请参见CREATE EXTERNAL TABLE

注意事项

本文仅适用于OSS分区外表。云原生数据仓库 AnalyticDB MySQL 版内表和OSS非分区外表不支持通过本文的方法增加或删除分区。

增加分区

通过ALTER TABLE ADD PARTITION可以手动在分区外表中添加特定的某个分区或某个多级分区。如果需要自动识别OSS路径并添加分区,请参见MSCK REPAIR TABLE

语法

ALTER TABLE table_name ADD PARTITION (partition_key=value[,...]) LOCATION 'location';

参数说明

参数

说明

table_name

表名。

(partition_key=value[,...])

增加的分区。

增加多级分区时,此处需配置多个等式(paritition_key=value),两个等式之间以半角逗号(,)分隔。增加多级分区示例:ADD PARTITION (date='20230613',city='hangzhou')

location

指定LOCATION为分区的OSS路径。

例如,OSS文件的路径为oss://testBucketName/testfolder/p1=20230613/data.csv。增加的分区为p1='20230613'。此时需指定LOCATION 'oss://testBucketname/testfolder/'

示例

示例1:增加分区

ALTER TABLE adb_external_db.partition_table ADD PARTITION (p1='20230613') LOCATION 'oss://testBucketName/testfolder/p1=20230613/';

示例2:增加多级分区

ALTER TABLE adb_external_db.partition_table ADD PARTITION (p1='20230613',p2='hangzhou') LOCATION 'oss://testBucketName/testfolder/p1=20230613/p2=hangzhou';

删除分区

语法

ALTER TABLE table_name DROP PARTITION (partition_key=value[,...]);

参数说明

参数

说明

table_name

表名。

(partition_key=value[,...])

删除的分区。

删除多级分区时,此处需配置多个等式(paritition_key=value),两个等式之间以半角逗号(,)分隔。删除多级分区示例:DROP PARTITION (date='20230613',city='hangzhou')

示例

示例1:删除分区

ALTER TABLE adb_external_db.partition_table DROP PARTITION (p1='20230613');

示例2:删除多级分区

ALTER TABLE adb_external_db.partition_table DROP PARTITION (p1='20230613',p2='hangzhou');

相关文档

通过外表导入OSS数据至湖仓版