Class HiveTableOperations

  • All Implemented Interfaces:
    TableOperations

    public class HiveTableOperations
    extends BaseMetastoreTableOperations
    TODO we should be able to extract some more commonalities to BaseMetastoreTableOperations to avoid code duplication between this class and Metacat Tables.
    • Constructor Detail

      • HiveTableOperations

        protected HiveTableOperations​(org.apache.hadoop.conf.Configuration conf,
                                      ClientPool metaClients,
                                      FileIO fileIO,
                                      java.lang.String catalogName,
                                      java.lang.String database,
                                      java.lang.String table)
    • Method Detail

      • translateToIcebergProp

        public static java.lang.String translateToIcebergProp​(java.lang.String hmsProp)
        Provides key translation where necessary between Iceberg and HMS props. This translation is needed because some properties control the same behaviour but are named differently in Iceberg and Hive. Therefore changes to these property pairs should be synchronized.

        Example: Deleting data files upon DROP TABLE is enabled using gc.enabled=true in Iceberg and external.table.purge=true in Hive. Hive and Iceberg users are unaware of each other's control flags, therefore inconsistent behaviour can occur from e.g. a Hive user's point of view if external.table.purge=true is set on the HMS table but gc.enabled=false is set on the Iceberg table, resulting in no data file deletion.

        Parameters:
        hmsProp - The HMS property that should be translated to Iceberg property
        Returns:
        Iceberg property equivalent to the hmsProp. If no such translation exists, the original hmsProp is returned
      • tableName

        protected java.lang.String tableName()
        Description copied from class: BaseMetastoreTableOperations
        The full name of the table used for logging purposes only. For example for HiveTableOperations it is catalogName + "." + database + "." + table.
        Specified by:
        tableName in class BaseMetastoreTableOperations
        Returns:
        The full name
      • io

        public FileIO io()
        Description copied from interface: TableOperations
        Returns a FileIO to read and write table data and metadata files.