Uploaded image for project: 'Hive'
  1. Hive
  2. HIVE-14909

Preserve the location of table created with the location clause in table rename

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 1.1.0
    • Fix Version/s: 2.3.0
    • Component/s: Hive
    • Labels:
      None

      Description

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

        Attachments

        1. HIVE-14909.1.patch
          22 kB
          Chaoyu Tang
        2. HIVE-14909.1.patch
          22 kB
          Chaoyu Tang
        3. HIVE-14909.2.patch
          25 kB
          Chaoyu Tang
        4. HIVE-14909.3.patch
          24 kB
          Chaoyu Tang
        5. HIVE-14909.patch
          23 kB
          Chaoyu Tang
        6. HIVE-14909.patch
          23 kB
          Chaoyu Tang

          Issue Links

            Activity

              People

              • Assignee:
                ctang.ma Chaoyu Tang
                Reporter:
                adrenas Adriano
              • Votes:
                0 Vote for this issue
                Watchers:
                5 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: