我有好奇心。 我想知道hive分区和多个表的区别。 我已经知道分区的目的是减少查询对象。 我在分区和多个表之间这是相同的。 有什么区别?
答案 0 :(得分:2)
分区和“并行”表非常相似。实际上,SQL Server使用"partitioned views"实现了分区,它将多个表组合到一个视图中。分区表和多个表组合成一个表之间的差异既微妙又明显,但归结为:表是表是表。
这有什么影响?首先,用户不需要知道分区以便使用表。对于存储在多个表中的数据,用户需要知道表名,因为SQL需要FROM
子句中的名称。
其次,数据库引擎知道分区,但不一定知道如何组合多个表。使用分区的查询在WHERE
子句而不是FROM
子句中选择它们。理解数据结构的负担从用户转移到编译器。
还有其他差异。分区通常具有相同的列和类型。分区通常具有相同的索引和群集属性。可以根据数据的内容动态添加分区。可以添加和删除分区,而不会影响现有查询。