更新时间:2024-07-24 GMT+08:00
        
          
          
        
      
      
      
      
      
      
      
      
  
      
      
      
        
Datasource表优化
操作场景
将datasource表的分区消息存储到Metastore中,并在Metastore中对分区消息进行处理。
- 优化datasource表,支持对表中分区执行增加、删除和修改等语法,从而增加与Hive的兼容性。
 - 支持在查询语句中,把分区裁剪并下压到Metastore上,从而过滤掉不匹配的分区。
    
    
此时,在物理计划中执行TableScan操作时,只处理分区(partCol=1)对应的数据。
 
操作步骤
   要启动Datasource表优化,在Spark客户端的“spark-defaults.conf”配置文件中进行设置。 
   
    
     
   
  
 | 
         参数  | 
       
         描述  | 
       
         默认值  | 
      
|---|---|---|
| 
         spark.sql.hive.manageFilesourcePartitions  | 
       
         是否启用Metastore分区管理(包括数据源表和转换的Hive表)。 
 
  | 
       
         true  | 
      
| 
         spark.sql.hive.metastorePartitionPruning  | 
       
         是否支持将predicate下压到Hive Metastore中。 
 
  | 
       
         true  | 
      
| 
         spark.sql.hive.filesourcePartitionFileCacheSize  | 
       
         启用内存中分区文件元数据的缓存大小。 所有表共享一个可以使用指定的num字节进行文件元数据的缓存。 只有当“spark.sql.hive.manageFilesourcePartitions”配置为“true”时,该配置项才会生效。  | 
       
         250 * 1024 * 1024  | 
      
| 
         spark.sql.hive.convertMetastoreOrc  | 
       
         设置ORC表的处理方式: 
  | 
       
         true  | 
      
   父主题: Spark SQL性能调优