1.4 Hive和数据库的比较
由于 Hive 采用了類似SQL 的查詢語言 HQL(Hive Query Language),因此很容易將 Hive 理解為數(shù)據(jù)庫。其實從結(jié)構(gòu)上來看, Hive 和數(shù)據(jù)庫除了擁有類似的查詢語言,再無類似之處。
?
本文將從多個方面來闡述 Hive 和數(shù)據(jù)庫的差異。數(shù)據(jù)庫可以用在 Online 的應用中,但是Hive 是為數(shù)據(jù)倉庫而設(shè)計的,清楚這一點,有助于從應用角度理解 Hive 的特性。
?
1.4.1 查詢語言
由于 SQL 被廣泛的應用在數(shù)據(jù)倉庫中,因此,專門針對 Hive 的特性設(shè)計了類 SQL 的查
詢語言 HQL 。熟悉 SQL 開發(fā)的開發(fā)者可以很方便的使用 Hive 進行開發(fā)。
1.4.2 數(shù)據(jù)更新
由于 Hive 是針對數(shù)據(jù)倉庫應用設(shè)計的,而 數(shù)據(jù)倉庫的內(nèi)容是讀多寫少的。 因此, Hive 中不建議對數(shù)據(jù)的改寫,所有的數(shù)據(jù)都是在加載的時候確定好的。
?
數(shù)據(jù)庫中的數(shù)據(jù)通常是需要經(jīng)常進行修改的,因此可以使用 INSERT INTO … VALUES 添加數(shù)據(jù),使用 UPDATE … SET 修改數(shù)據(jù)。
1.4.3 執(zhí)行延遲
Hive 在查詢數(shù)據(jù)的時候,由于沒有索引,需要掃描整個表,因此延遲較高。另外一個導
致 Hive 執(zhí)行延遲高的因素是 MapReduce 框架。由于 MapReduce 本身具有較高的延遲,因此在利用 MapReduce 執(zhí)行 Hive 查詢時,也會有較高的 延遲。
?
相對的,數(shù)據(jù)庫的執(zhí)行延遲較低。當然,這個低是有條件的,即數(shù)據(jù)規(guī)模較小,當數(shù)據(jù)規(guī)模大到超過數(shù)據(jù)庫的處理能力的時候,Hive 的并行計算顯然能體現(xiàn)出優(yōu)勢。
1.4.4 數(shù)據(jù)規(guī)模
由于Hive 建立在集群上并可以利用 MapReduce 進行并行計算,因此可以支持很大規(guī)模的數(shù)據(jù);對應的,數(shù)據(jù)庫可以支持的數(shù)據(jù)規(guī)模較小。
總結(jié)
以上是生活随笔為你收集整理的1.4 Hive和数据库的比较的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1.3 Hive架构原理
- 下一篇: linux cmake编译源码,linu