Hive分区与多个表,有什么区别?

时间:2015-12-07 10:58:02

标签: sql hadoop mapreduce hive hiveql

我有好奇心。 我想知道hive分区和多个表的区别。 我已经知道分区的目的是减少查询对象。 我在分区和多个表之间这是相同的。 有什么区别?

1 个答案:

答案 0 :(得分:2)

分区和“并行”表非常相似。实际上,SQL Server使用"partitioned views"实现了分区,它将多个表组合到一个视图中。分区表和多个表组合成一个表之间的差异既微妙又明显,但归结为:表是表是表。

这有什么影响?首先,用户不需要知道分区以便使用表。对于存储在多个表中的数据,用户需要知道表名,因为SQL需要FROM子句中的名称。

其次,数据库引擎知道分区,但不一定知道如何组合多个表。使用分区的查询在WHERE子句而不是FROM子句中选择它们。理解数据结构的负担从用户转移到编译器。

还有其他差异。分区通常具有相同的列和类型。分区通常具有相同的索引和群集属性。可以根据数据的内容动态添加分区。可以添加和删除分区,而不会影响现有查询。