【发布时间】:2012-04-03 06:13:38
【问题描述】:
1) 我从过去 2 个月开始使用 hive。我的任务与 SQL 中的任务相同。我发现 Hive 很慢并且需要更多时间来执行查询,而 SQL 在几分钟/秒内执行它。
在 Hive 中执行任务后,当我交叉检查两者(SQL 和 Hive)中的结果时,我发现结果有些差异(不是全部,而是在某些表中)。 例如:我有一张有 2012 条记录的表,当我在 Hive 的同一张表中执行 Hive 中的一项任务时,我得到了 2007 条记录。
为什么会这样?
2) 如果我想加快我在 Hive 中的执行速度,那么我应该怎么做? (目前我只在单个集群上执行所有这些东西。如果我想增加集群,那么我需要多少集群来提高性能)
请给我一些解决方案或一些好的做法,以便我能够敏锐地做到这一点。
谢谢。
【问题讨论】:
-
我无法真正回答您的问题,但我看不出您如何直接比较 SQL Server 和 Hive:它们是完全不同的产品,具有完全不同的目标和架构。问如何提高 Hive 性能是一个很好的问题,但我认为 SQL Server 与 Hive 没有任何关系(反之亦然)。尽管如果您想获得有关提高任何系统性能的建议,您将需要提供到目前为止所掌握的更多信息。
-
@Pondlife:感谢您的回复。是的,我知道它们都是不同的。我只想知道 Hive 执行查询的行为与 SQL 不同吗?匹配标准有什么不同吗?此外,我想知道基于各种因素提高 Hive 性能的不同因素。
-
@Pondlife:当两者都用作数据查询引擎时,我不明白为什么不能比较两者。是的,底层数据和计算架构不同,但目的是相同的。如果我错过了什么,请告诉我如何使用除 SQL 类型的查询之外的配置单元。
-
@Causality 我认为您当然可以比较这些功能,其中一个会比另一个更适合某些场景(请参阅此问题的已接受答案),但直接比较同一任务或查询的性能没有意义。货车和皮卡车可能能够承载相似的负载,但它们具有完全不同的性能特征,问为什么一个比另一个更快或更省油是没有意义的。它们只是设计不同的车辆,即使它们都旨在承载负载。
标签: sql-server hive