我有一个好奇心。 我想知道 hive 分区和多表的区别。 我知道分区的目的是为了减少查询对象。 我认为这在分区和多个表之间是相同的。 有什么区别?
最佳答案
分区和“并行”表非常相似。事实上,SQL Server 有一个使用 "partitioned views" 的分区实现。 ,它将多个表组合成一个 View 。分区表和多个表合并成一个表之间的区别既微妙又明显,但归结为:表是表是表。
这有什么影响?首先,用户不需要知道分区就可以使用表。对于存储在多个表中的数据,用户需要知道表名,因为 SQL 需要 FROM
子句中的名称。
其次,数据库引擎知道分区,但不一定知道多个表是如何组合的。使用分区的查询在 WHERE
子句而不是 FROM
子句中选择它们。理解数据结构的负担从用户转移到编译器。
还有其他区别。分区通常具有相同的列和类型。分区通常具有相同的索引和集群属性。可以根据数据内容动态添加分区。可以在不影响现有查询的情况下添加和删除分区。
关于sql - Hive分区与多表,有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34131919/