Hive 覆盖配置单元架构元数据而不删除和创建

Hive 覆盖配置单元架构元数据而不删除和创建,hive,Hive,假设我有一个预定义的配置单元表,其中加载了分区 CREATE EXTERNAL TABLE t1 ( c1 STRING ) PARTITIONED BY ( dt STRING ) LOCATION... ALTER TABLE t1 ADD PARTITION ( dt = '2017-01-01' ) 现在我得到了一个表示模式的新文本: CREATE EXTERNAL TABLE t1 ( user_id STRING ) PARTITIONED BY ( dt STRING )

假设我有一个预定义的配置单元表,其中加载了分区

CREATE EXTERNAL TABLE t1
(
 c1 STRING
)
PARTITIONED BY ( dt STRING )
LOCATION...

ALTER TABLE t1 ADD PARTITION ( dt = '2017-01-01' )
现在我得到了一个表示模式的新文本:

CREATE EXTERNAL TABLE t1
(
 user_id STRING
)
PARTITIONED BY ( dt STRING )
LOCATION...
如果我删除并重新创建表,我将丢失分区信息。
我正在寻找一种无需手动添加/删除/重命名列即可重新定义列架构部分的方法(不是一次性的,尝试自动化架构更新过程)。

我找到了一种“几乎”实现我所需的方法:

蜂箱支架

REPLACE COLUMNS 

这意味着我可以用新列替换所有旧列。

问题不清楚。请使用一个小的数据样本来说明您的场景。(1)数据样本是我们生成演示和您验证建议的解决方案是否满足您需求的良好基础。(2) 架构更改是与旧分区相关还是仅与新分区相关?(3) 添加/删除/重命名有什么问题?1)问题只与元数据有关2)只有列(而不是分区列)可以更改。3) 尝试自动化架构更新过程,因此手动重命名/删除/添加列是可行的,但需要更多的工作和更容易出错…谢谢!您可以将列名从c1更改为用户id,更改表t1更改c1用户id字符串;比较方案并自动生成一系列添加/删除/重命名列操作有什么问题?