首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
某数据仓库的分区表按日期分区,当执行`SELECT * FR
[单选题]
某数据仓库的分区表按日期分区,当执行`SELECT * FROM sales WHERE dt = '2023-08-15'`查询时,发现扫描了所有分区目录。最可能的原因是:
未启用Metastore分区过滤
数据未按日期排序
分区字段未作为查询条件
HDFS块大小设置过大
查看答案及解析
添加笔记
求解答(0)
邀请回答
收藏(3)
分享
纠错
1个回答
添加回答
0
0318晴
在实际开发中,导致分区过滤失效的常见原因通常有以下几种:
配置开关被关闭
:比如在 Spark 中,如果配置项
spark.sql.hive.metastore.partition.pruning.timestamps.enabled
被误设为
false
,就会导致时间戳类型的分区无法被精准过滤,从而引发全表扫描。
在分区字段上使用了函数
:例如
WHERE substr(dt, 1, 7) = '2023-08'
,Metastore 无法直接通过原始的分区名进行匹配,只能扫描所有分区,再逐行计算函数来过滤。
数据类型不匹配
:分区字段在元数据中是 String 类型,但查询时传入了其他类型且发生了隐式转换失败,也可能导致过滤失效。
发表于 今天 09:07:35
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
Hive
难度:
1条回答
3收藏
33浏览
热门推荐
相关试题
在 Hive 中一个查询语句执行后...
Java工程师
C++工程师
算法工程师
顺丰集团
Hive
评论
(16)
来自
顺丰科技2019秋招大数...
以下哪种不是 Hive 支持的数据...
Hive
评论
(5)
罗密欧...
操作系统
评论
(1)
下面描述是事务的哪个特性( )已落...
数据库
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题