Support Questions

Find answers, ask questions, and share your expertise

How to rename kudu table name on impala version 2.12

avatar
New Contributor

Hi

 

I'm using Impala on CDH 5.15.0 in our cluster

(version of impala, 2.12)

 

I try to kudu table rename but occured exception with this message.

 

ERROR: AnalysisException: Not allowed to set 'kudu.table_name' manually for managed Kudu tables.

 

I read achive on jira : link

 

then how can i rename kudu table using impala?

 

thanks.

 

14 REPLIES 14

avatar
Master Collaborator

Hi @JJH,

I think you have to rename it using the impala statement below:

ALTER TABLE your_table RENAME TO new_table_name;

Good luck.

avatar
New Contributor

Thanks @AcharkiMed.

 

But, That's rename query for change impala table.

 

I want to know rename query for change kudu table.

 

I appreciate your help.

avatar
Master Collaborator

Hi @JJH

How do you create this kudu table ? Did you use Impala ?!

avatar

ALTER TABLE table_name SET TBLPROPERTIES('kudu.table_name'='newtablename');

avatar
New Contributor

Unfortunately neither of these approaches seem to work. (CDH5.15 Kudu 1.7)

 

ALTER TABLE your_table RENAME TO new_table_name;

-> Works but it renames the table in the Impala/Hive metastore but *doesn't* rename the underlying Kudu table.


ALTER TABLE table_name SET TBLPROPERTIES('kudu.table_name'='newtablename');

-> Doesn't work at all (as per ERROR: AnalysisException: Not allowed to set 'kudu.table_name' manually for managed Kudu tables.)

 

Use case - large (non-additive) schema change for a table

  1. Take table, rename to new table name
  2. Create new table with the original table's name
  3. Insert data from old table into new table
  4. Archive / decom old table

Step 2 breaks because the underlying Kudu table for the renamed talbe in step1 still retains the name of the original table.

 

avatar
Master Collaborator

HI @Derek

Try this workaround:

1- Create new table with the original table's data.
2- Drop all data from old table (using delete).
3- 
Insert data from new table into old table.
4- Drop 
new table.

Good luck.

avatar

Execute below queries in Impala: 

 

ALTER TABLE old_table RENAME TO new_table;

 

ALTER TABLE new_table SET TBLPROPERTIES('kudu.table_name'='new_table');

 

Always use new_table for second alter query. 

 

avatar
New Contributor

this worked, thanks

avatar
Super Collaborator

@Ankit_Mishra's answer is the correct way to do the procedure you want to do, Impala doesn't allow for separately managing the Kudu and Impala tables if you create the Kudu table through Impala.