[jira] [Updated] (HIVE-14909) Preserve the "parent location" of the table when an "alter table rename to " is submitted (the case when the db location is not specified and the Hive defult db is outside the same encrypted zone).

Fri, 21 Oct 2016 18:37:08 -0700

     [ 
https://issues.apache.org/jira/browse/HIVE-14909?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Chaoyu Tang updated HIVE-14909:
-------------------------------
    Attachment: HIVE-14909.patch

Since Hive supports the DDL like: 
create table foo (key int) location 'path_to_location' 
to create a managed table by specifying its location rather than that under its 
database. So table rename should respect this specified location, and not 
change its location or move its data. Its location should be change using a 
different command 'alter table .. set location ...' instead.

> Preserve the "parent location" of the table when an "alter table <table> 
> rename to <newname>" is submitted (the case when the db location is not 
> specified and the Hive defult db is outside the same encrypted zone).
> ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HIVE-14909
>                 URL: https://issues.apache.org/jira/browse/HIVE-14909
>             Project: Hive
>          Issue Type: Improvement
>          Components: Hive
>    Affects Versions: 1.1.0
>            Reporter: Adriano
>            Assignee: Chaoyu Tang
>         Attachments: HIVE-14909.patch
>
>
> Alter Table operation for db_enc.rename_test failed to move data due to: 
> '/hdfs/encrypted_path/db_enc/rename_test can't be moved from an encryption 
> zone.'
> When Hive renames a managed table, it always creates the new renamed table 
> directory under its database directory in order to keep a db/table hierarchy. 
> In this case, the renamed table directory is created under "default db" 
> directory "hive/warehouse/". When Hive renames a managed table, it always 
> creates the new renamed table directory under its database directory in order 
> to keep a db/table hierarchy. In this case, the renamed table directory is 
> created under "default' db directory typically set as /hive/warehouse/ . 
> This error doesn't appear if first create a database which points to a 
> directory outside /hive/warehouse/, say '/hdfs/encrypted_path', you won't 
> have this problem. For example, 
> create database db_enc location '/hdfs/encrypted_path/db_enc; 
> use db_enc; 
> create table rename_test (...) location 
> '/hdfs/encrypted_path/db_enc/rename_test'; 
> alter table rename_test rename to test_rename; 
> The renamed test_rename directory is created under 
> /hdfs/encrypted_path/db_enc. 
> Considering that the encryption of a filesystem is part of the evolution 
> hardening of a system (where the system and the data contained can already 
> exists) and a db can be already created without location set (because it is 
> not strictly required)and the default db is outside the same encryption zone 
> (or in a no-encryption zone) the alter table rename operation will fail.
> Improvement:
> Preserve the "parent location" of the table when an "alter table <table> 
> rename to <newname>" is submitted (the case when the db location is not 
> specified and the Hive defult db is outside the same encrypted zone).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to