表更名 SQL:
1
| alter table 旧表名 rename to 新表名;
|
执行该命令之后,表数据所在的位置(LOCATION)会移动到新的路径下。
例如,将表 test.dws_staff_kpi_day 重命名为 test.dws_staff_kpi_month。
在更名前,查看表 test.dws_staff_kpi_day 所在的位置:
1
| show create table test.dws_staff_kpi_day;
|
结果如下所示,可以看到表数据位于 hdfs://hdp-cluster/apps/hive/warehouse/test.db/dws_staff_kpi_day 目录下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| CREATE TABLE `test.dws_staff_kpi_day`( `user_id` int COMMENT '用户ID', `phone` string COMMENT '手机号码', ...) COMMENT '用户核心指标模型' PARTITIONED BY ( `dt` string COMMENT '日期,格式yyyyMMdd') ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe' STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat' LOCATION 'hdfs://hdp-cluster/apps/hive/warehouse/test.db/dws_staff_kpi_day' TBLPROPERTIES ( 'last_modified_by'='hadoop', 'last_modified_time'='1667206490', 'parquet.compression'='SNAPPY', 'transient_lastDdlTime'='1667206490')
|
现在,将表 test.dws_staff_kpi_day 重命名为 test.dws_staff_kpi_month:
1
| alter table test.dws_staff_kpi_day rename to test.dws_staff_kpi_month;
|
查看重命名后的表 test.dws_staff_kpi_month 的数据位置
1
| show create table test.dws_staff_kpi_month;
|
结果如下,表数据目录更新为 hdfs://hdp-cluster/apps/hive/warehouse/test.db/dws_staff_kpi_month。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| CREATE TABLE `test.dws_staff_kpi_day`( `user_id` int COMMENT '用户ID', `phone` string COMMENT '手机号码', ...) COMMENT '用户核心指标模型' PARTITIONED BY ( `dt` string COMMENT '日期,格式yyyyMMdd') ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe' STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat' LOCATION 'hdfs://hdp-cluster/apps/hive/warehouse/test.db/dws_staff_kpi_month' TBLPROPERTIES ( ......)
|
(END)