查询按日期字符串分区的配置单元表时,使用vs'>&<'之间有区别吗?

时间:2019-05-25 05:49:03

标签: performance hive hiveql

我可以使用从按日期分区(格式:yyyyMMdd)的大型配置单元表中选择数据,配置单元查询需要从6个月的数据(总共180个日期分区)中获取几个字段。查询看起来像:

SELECT field_1, field_2 FROM table WHERE `date` BETWEEN '20181125' and '20190525'

想知道将查询更改为使用>= & <=会对性能产生任何影响。

SELECT field_1, field_2 FROM table WHERE `date`>='20181125' AND `date`<='20190525'

2 个答案:

答案 0 :(得分:0)

使用<>代替 Between 之间的关键字时,我无法想到性能上的任何重大变化。

使用 IN 关键字并列出范围内的所有日期将比其他两种情况略有优势。

SELECT field_1, field_2 FROM table WHERE dates in ('20181125','20181126',...,'20190524','20190525');

答案 1 :(得分:0)

>=, <=BETWEEN应该生成相同的执行计划,尽管在您的Hive版本中可能有所不同。

使用EXPLAIN,它显示查询执行计划。只有计划才能肯定地帮助回答这个问题。选中EXPLAIN DEPENDENCY,它会打印input_partitions进行扫描,您将看到分区修剪在每种情况下是否有效。

如果>=, <=BETWEENIN的计划相同,则其工作原理相同,并且性能也应相同。