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

标签 sql hadoop mapreduce hive hiveql

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

最佳答案

分区和“并行”表非常相似。事实上,SQL Server 有一个使用 "partitioned views" 的分区实现。 ,它将多个表组合成一个 View 。分区表和多个表合并成一个表之间的区别既微妙又明显,但归结为:表是表是表。

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

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

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

关于sql - Hive分区与多表,有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34131919/

相关文章:

amazon-ec2 - EMR - 利用竞价实例

sql - 看不懂SQL(Oracle)建表代码

sql - 如何在postgresql中动态设置搜索路径?

hadoop - PIG 将文本行转换为稀疏向量

hadoop - 使用 cassandra 针对 hadoop-2.2.0 运行 piglatin 脚本时出错

java - `hbase.rootdir` 作业设置中的配置不被认可

sql - Eclipse:如何从任务中的 SQL 和 XML 文件中获取 TODO

mysql - 是否可以使用 SELECT * from TableName 显示文本而不是 ID

hadoop - Pigrc功能可用吗?

python-2.7 - pywebhdfs 模块问题