WHERE子句中分区列的顺序是否重要

时间:2016-07-05 09:33:19

标签: hive

如果我们有一个由col,col2,col3分区的HIVE表,那么当我想在WHERE子句中指定这些列时,在此表上执行SELECT时,它们是否必须以相同的顺序出现才能利用它分区?我的意思是,从逻辑上讲是肯定的,但HIVE编译器不了解它们的实际顺序而不管我指定它们的顺序。它应该能够在内部应用正确的顺序,因为HIVE已经知道正确的顺序是col2,col2,col3 so它以这种方式使用它。 HIVE在我们定义的查询之上进行了大量优化,因此我猜它应该做同样的事情。

1 个答案:

答案 0 :(得分:1)

不,那个顺序无关紧要。任何体面的查询优化器都将查看WHERE子句的所有部分,并找出满足该查询的最有效方法。使用分区列的逻辑顺序编写查询仍然有意义,以便更好地理解人类。