Hello Apache Hive Community,
Hope you are doing well.
My use-case involves having a central Hive 4 HMS on a RDS (mysql) instance.
I also have some Hive 3 clusters (whose schema I cannot upgrade to Hive 4
yet). I am running queries from HS2 on the Hive 3 clusters which results in
HMS calls to the central Hive 4 metastore.
I wanted to understand if HMS 4 is backwards compatible with Hive 3.
Additionally I have found the following incompatible changes so far (the
list is not exhaustive) ->

   - Field 'ENGINE' doesn't have a default value in TAB_COL_STATS
      - Fixed by configuring it with a default value
         - ALTER TABLE TAB_COL_STATS MODIFY COLUMN ENGINE VARCHAR(128)
         DEFAULT ‘hive’;
      - Field 'ENGINE' doesn't have a default value) in PART_COL_STATS
      - Fixed by configuring it with a default value
         - ALTER TABLE PART_COL_STATS MODIFY COLUMN ENGINE VARCHAR(128)
         DEFAULT ‘hive’;
      - org.apache.hadoop.hive.metastore.api.MetaException: Unable to
   select from transaction database java.sql.SQLSyntaxErrorException:
   (conn=328) Table 'hive.NEXT_TXN_ID' doesn't exist
      - This is because https://issues.apache.org/jira/browse/HIVE-23048
      renamed certain core HMS tables related to ACID. For instance,
*NEXT_TXN_ID
      *has been renamed to *TXN_LOCK_TBL*. The column *NTXN_NEXT* has been
      renamed to* TXN_LOCK.* This change breaks the backward compatibility
      between HMS 4 and HMS 3 schemas. Do we have any context on why we renamed
      the tables

Could you please let me know if Hive 4 HMS schema is backward compatible
with Hive 3. Is there any official doc where I can get the compatibility
info. How could we ensure that we have backwards compatibility between HMS
in Hive 4 and that of Hive 3.
Any guidance on this is greatly appreciated.
Thanks,
Anmol

Reply via email to