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

Denys Kuzmenko updated HIVE-30129:
----------------------------------
    Labels: Usability  (was: )

> Iceberg: HiveIcebergOutputFormat silently drops the cluster's 
> parquet.compression override, writing Iceberg's own default codec instead
> ---------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HIVE-30129
>                 URL: https://issues.apache.org/jira/browse/HIVE-30129
>             Project: Hive
>          Issue Type: Bug
>          Components: Iceberg integration
>            Reporter: Denys Kuzmenko
>            Priority: Major
>              Labels: Usability
>
> HiveIcebergOutputFormat.setWriterLevelConfiguration is meant to bridge HS2's 
> parquet.compression into Iceberg's write.parquet.compression-codec for any 
> table that sets no codec of its own:          
>    
> {code}                                                                        
>                                                                               
>                                                
>   if (table.properties().get(TableProperties.PARQUET_COMPRESSION) == null &&  
>                                                                               
>                                             
>       jc.get(ParquetOutputFormat.COMPRESSION) != null) {                      
>                                                                               
>                                             
>     table.properties().put(TableProperties.PARQUET_COMPRESSION, 
> jc.get(ParquetOutputFormat.COMPRESSION));                                     
>                                                           
>   }    
> {code}                                                                        
>                                                                               
>                                            
>                                                                               
>                                                                               
>                                             
> In practice jc.get(ParquetOutputFormat.COMPRESSION) is null in the actual 
> Tez/LLAP write-task JobConf even when parquet.compression is set cluster-wide 
> — it isn't a registered HiveConf.ConfVars, so nothing guarantees it's copied 
> into a task's JobConf the way the ordinary (non-Iceberg) Parquet writer's 
> config is. The bridge silently never fires, and the write falls through to 
> Iceberg's own internal default (zstd since Iceberg 1.4.0), with no error and 
> nothing visible in SHOW TBLPROPERTIES.             
> *Impact*: any Iceberg table whose data is written fresh through Hive 
> (CTAS/INSERT, not a metadata-only register of pre-existing files) and that 
> doesn't set its own write.parquet.compression-codec,  silently ignores the 
> cluster-wide codec setting                                                    
>                                                                               
>               
>  



--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

Reply via email to