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