由於 hive 採用了類似sql 的查詢語言 hql(hive query language),因此很容易將 hive 理解為資料庫。其實從結構上來看,hive 和資料庫除了擁有類似的查詢語言,再無類似之處。本文將從多個方面來闡述 hive 和資料庫的差異。資料庫可以用在 online 的應用中,但是hive 是為資料倉儲而設計的,清楚這一點,有助於從應用角度理解 hive 的特性。
1.1 查詢語言
由於sql被廣泛的應用在資料倉儲中,因此,專門針對hive的特性設計了類sql的查詢語言hql。熟悉sql開發的開發者可以很方便的使用hive進行開發。
1.2 資料更新
由於hive是針對資料倉儲應用設計的,而資料倉儲的內容是讀多寫少的。因此,hive中不建議對資料的改寫,所有的資料都是在載入的時候確定好的。而資料庫中的資料通常是需要經常進行修改的,因此可以使用 insert into … values 新增資料,使用 update … set修改資料。
1.3 執行延遲
hive 在查詢資料的時候,由於沒有索引,需要掃瞄整個表,因此延遲較高。另外乙個導致 hive 執行延遲高的因素是 mapreduce框架。由於mapreduce 本身具有較高的延遲,因此在利用mapreduce 執行hive查詢時,也會有較高的延遲。相對的,資料庫的執行延遲較低。當然,這個低是有條件的,即資料規模較小,當資料規模大到超過資料庫的處理能力的時候,hive的平行計算顯然能體現出優勢。
1.4 資料規模
由於hive建立在集群上並可以利用mapreduce進行平行計算,因此可以支援很大規模的資料;對應的,資料庫可以支援的資料規模較小。
1.5 執行
hive是mapreduce,資料庫是executor
1.6 索引
Hive和資料庫比較
由於 hive 採用了 sql 的查詢語言 hql,因此很容易將 hive 理解為資料庫。其實從結構上來看,hive 和資料庫除了擁有類似的查詢語言,再無類似之處。本文將從多個方面來闡述 hive 和資料庫的差異。資料庫可以用在 online 的應用中,但是 hive 是為資料倉儲而設計的,清楚這一...
Hive 和資料庫的異同
摘要 由於 hive 採用了 sql 的查詢語言 hql,因此很容易將 hive 理解為資料庫。其實 從結構上來看,hive 和資料庫除了擁有類似的查詢語言,再無類似之處。本文將 從多個方面來闡述 hive 和資料庫的差異。資料庫可以用在 online 的應用中,但是 hive 是為資料倉儲而設計的...
第一章 HIve入門之Hive和資料庫比較
由於 hive 採用了類似sql 的查詢語言 hql hive query language 因此很容易將 hive 理解為資料庫。其實從結構上來看,hive 和資料庫除了擁有類似的查詢語言,再無類似之處。本文將從多個方面來闡述 hive 和資料庫的差異。資料庫可以用在 online 的應用中,但是...