Osi*_*ris 17 hadoop hive hiveql
基于下面的Hive文档:
重命名表
ALTER TABLE table_name RENAME TO new_table_name;
此语句允许您将表的名称更改为其他名称.
从版本0.6开始,托管表上的重命名也会移动其HDFS位置.(较旧的Hive版本只是在Metastore中重命名了表而没有移动HDFS位置.)
有没有办法重命名表而不改变位置?
小智 16
是的,我们可以做到这一点.您只需要按顺序执行以下三个命令.
假设你在hive中有一个外部表test_1.并且你想重命名test_2,它应该指向test_2位置而不是test_1.然后,您需要使用以下命令将此表转换为Managed表.test_1 - >指向test_1位置
ALTER TABLE db_name.test_1 SET TBLPROPERTIES('EXTERNAL'='FALSE');
Run Code Online (Sandbox Code Playgroud)重命名表名.
ALTER TABLE db_name.test_1 RENAME TO db_name.test_2;
Run Code Online (Sandbox Code Playgroud)重命名后,再次将托管表转换为外部表.
ALTER TABLE db_name.test_2 SET TBLPROPERTIES('EXTERNAL'='TRUE');
Run Code Online (Sandbox Code Playgroud)db_name.test_2表将指向test_2位置.如果我们在不创建托管表的情况下执行此操作,则会指向test_1位置.
小智 5
ALTER TABLE 不像在 CREATE 或 SELECT 中那样遵循 Hive 中的 databasename.tablename 语法。首先提到数据库名,然后运行alter table 语句。
语法如下
USE databasename;
ALTER TABLE old_tablename RENAME TO new_tablename;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
58216 次 |
| 最近记录: |