2012-04-03 38 views
5

1)我開始使用蜂巢從過去的2個月。我有和SQL中一樣的任務。我發現Hive很慢,需要更多時間來執行查詢,而SQL只需幾分鐘/秒就可以執行查詢。蜂巢VS SQL Server的性能

在交叉檢查兩個(SQL和Hive)中的結果時,在Hive中執行任務後,我發現結果中有一些差異(並非全部,但在某些表中)。 例如:我有一個有2012年記錄的表,當我在Hive的同一張表中執行任務時,我得到了2007年的記錄。

爲什麼會發生? 2)如果我想加快我在Hive中的執行速度,那我該怎麼做? (目前我只在單個羣集上執行所有這些東西,如果我想增加羣集,那麼我應該需要多少羣集來提高性能)

請給我一些解決方案或一些好的做法,以便我可以敏銳地做到這一點。

謝謝。

+1

我無法真正回答你的問題,但我沒有看到如何直接比較SQL Server和Hive:它們是完全不同的產品,具有完全不同的目標和體系結構。詢問如何提高Hive性能是一個很好的問題,但我不認爲SQL Server與Hive有任何關聯(反之亦然)。雖然如果你想提高任何系統性能的建議,你仍然需要提供更多的信息。 – Pondlife 2012-04-03 07:58:30

+0

@Pondlife:謝謝你的回覆。 是的,我知道他們都不一樣。我只想知道Hive是否具有執行查詢的一些不同於SQL的行爲?匹配標準有什麼不同? 此外,我想知道不同的因素,以增強基於所有各種因素在蜂巢的表現。 – 2012-04-03 10:16:28

+0

@Pondlife:我不明白爲什麼當兩者都用作數據查詢引擎時,無法比較兩者。是的,底層數據和計算體系結構是不同的,但目的是相同的。如果我錯過了某些東西,請告訴我如何使用除SQL類型查詢之外的配置單元。 – Causality 2013-02-05 23:56:55

回答

4
  • 除查詢語言的語法相似之外,Hive和SQL Server不具有可比性。
  • 雖然SQL Server的構建是爲了能夠從一臺機器實時響應,但配置單元用於處理可能跨越數百臺或數千臺機器的大型數據集。
  • 海夫(Hadoop的通過)有啓動工作很大的開銷。
  • 蜂房和Hadoop會在內存中不緩存數據如SQL Server一樣。
  • 蜂巢所以大部分的查詢最終會被一個表掃描只有最近添加索引。
  • 如果您的數據集適合單臺計算機,您可能想要堅持使用SQL Server而不是配置單元。 Hive性能調優主要基於Hadoop性能調優,儘管取決於您運行的查詢類型,可以通過使用LazyBinarySerDe獲得免費性能。

Hive與常規SQL有一些區別,可能會影響您的查詢。沒有更多的細節,我無法推測爲什麼。