我对一个表运行了两个Hive查询,得到了不同的结果,但我不完全确定为什么。我想了解这种差异的原因。
查询1:
SELECT member_id, record_ts, record_type
FROM record
WHERE member_id = "M-01"
ORDER BY record_ts
字符串
疑问二:
SELECT member_id, record_ts, record_type
FROM record
WHERE member_id = "M-01"
AND time_partition >= "2023-01"
ORDER BY record_ts
型
在这两个查询中,我都从“record”表中选择记录,其中“member_id”等于“M-01”,并且我按“record_ts”列对结果进行排序。但是,查询2包含一个附加条件,该条件基于“time_partition”列过滤记录。
我的问题:为什么第一个查询产生空结果,而第二个查询返回结果?这两个Hive查询之间的结果差异的原因是什么?
我很感激任何能帮助我更好地理解这种行为的见解或解释。谢谢!
我尝试添加hive.fetch.task.conversion=none
,但没有帮助
1条答案
按热度按时间oyxsuwqo1#
table(
record_staging
)用于填充record
表使用bucketing_version'='2'
,这改变了数据在record_staging
表中的分布和组织方式。因此从那时起,record
表是使用不同的分区策略填充的。record
表的分区策略基于"这就是为什么它会影响与member_id相关的查询。这种变化导致记录的存储方式与以前不同,导致了我们观察到的数据问题。为了解决这个问题,我们只需要更新
record
表以使用相同的bucketing策略。字符串