Support Questions
Find answers, ask questions, and share your expertise
Announcements
Alert: Welcome to the Unified Cloudera Community. Former HCC members be sure to read and learn how to activate your account here.

How to rename kudu table name on impala version 2.12

How to rename kudu table name on impala version 2.12

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

Re: How to rename kudu table name on impala version 2.12

Expert Contributor

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.

Re: How to rename kudu table name on impala version 2.12

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.

Re: How to rename kudu table name on impala version 2.12

Expert Contributor

Hi @JJH

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

Highlighted

Re: How to rename kudu table name on impala version 2.12

New Contributor

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

Re: How to rename kudu table name on impala version 2.12

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.

 

Re: How to rename kudu table name on impala version 2.12

Expert Contributor

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.

Re: How to rename kudu table name on impala version 2.12

New Contributor

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. 

 

Re: How to rename kudu table name on impala version 2.12

New Contributor

this worked, thanks

Re: How to rename kudu table name on impala version 2.12

Expert Contributor

@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.