为什么分区在蜂巢表中可以比较?

时间:2012-10-17 13:11:19

标签: hadoop hive

我知道我们可以使用“<”或“>”比较hive表中的分区,甚至pt是字符串的类型,表示日期。就像这样:

WHERE page_views.date >= '2008-03-01' AND page_views.date <= '2008-03-31'

Hive可以用我们想要的正确方式做到。

我的问题是蜂巢如何做到这一点,以及为什么它可以通过正确的方式比较日期字符串?

谢谢!

1 个答案:

答案 0 :(得分:1)

在Hive中,分区是实现选择性扫描的一种方式,因此每个分区都有一个或多个构成它的文件。当您使用分区进行查询时,它更快,因为Hive知道它需要扫描哪些文件,哪些不是。 Hive可以在你的情况下理解顺序,即使它是一个字符串,因为你的字段是'yyyy-MM-dd'格式,字典顺序与日期顺序匹配,如果你使用其他日期格式,例如'MM-dd- yyyy',它不起作用。