Hive 優缺點,架構原理,與資料庫的差異

2021-10-08 18:01:12 字數 2213 閱讀 4286

1) hive簡介

hive:由facebook開源用於解決海量結構化日誌的資料統計工具。

hive是基於hadoop的乙個資料倉儲

工具(不是資料庫),可以將結構化的資料檔案對映為一張表,並提供類sql查詢功能。

2) hive本質:將hql轉化成mapreduce程式

(1)hive處理的資料儲存在hdfs

(2)hive分析資料底層的實現是mapreduce

(3)執行程式執行在yarn上

優點(1)操作介面採用類sql語法,提供快速開發的能力(簡單、容易上手)。

(2)避免了去寫mapreduce,減少開發人員的學習成本。

(3)hive優勢在於處理大資料,支援海量資料的分析與計算。

(4)hive支援使用者自定義函式,使用者可以根據自己的需求來實現自己的函式。

缺點1)hive的hql表達能力有限

(1)hive自動生成的mapreduce作業,通常情況下不夠智慧型化

(2)資料探勘方面不擅長,由於mapreduce資料處理流程的限制,效率更高的演算法卻無法實現。

2)hive的效率比較低

(1)hive的執行延遲比較高,因此hive常用於資料分析,對實時性要求不高的場合。

(2)hive調優比較困難,粒度較粗

3)hive不支援實時查詢和行級別更新

(1)hive分析的資料是儲存在hdfs上,hdfs不支援隨機寫,只支援追加寫,所以在hive中不建議insert和update,建議select 和 load

1)使用者介面:client

2)元資料:metastore

3)hadoop

4)驅動器:driver

(1)解析器(sql parser):將sql字串轉換成抽象語法樹ast,這一步一般都用第三方工具庫完成,比如antlr;對ast進行語法分析,比如表是否存在、字段是否存在、sql語義是否有誤。

(2)編譯器(physical plan):將ast編譯生成邏輯執行計畫,將寫好的sql制定執行計畫。

(3)優化器(query optimizer):對邏輯執行計畫進行優化,將制定好的執行計畫進行優化。

(4)執行器(execution):把邏輯執行計畫轉換成可以執行的物理計畫。找引擎模板執行sql,就是mr/spark。

由於 hive 採用了類似sql的查詢語言 hql(hive query language),因此很容易將 hive 理解為資料庫。其實從結構上來看,hive 和資料庫除了擁有類似的查詢語言,再無類似之處。本文將從多個方面來闡述 hive 和資料庫的差異。資料庫可以用在 online 的應用中,但是hive 是為資料倉儲而設計的,清楚這一點,有助於從應用角度理解 hive 的特性。

由於sql被廣泛的應用在資料倉儲中,因此,專門針對hive的特性設計了類sql的查詢語言hql。熟悉sql開發的開發者可以很方便的使用hive進行開發。

由於hive是針對資料倉儲應用設計的,而資料倉儲的內容是讀多寫少的。因此,hive中不建議對資料的改寫,所有的資料都是在載入的時候確定好的。而資料庫中的資料通常是需要經常進行修改的,因此可以使用 insert into … values 新增資料,使用 update … set修改資料。

hive 在查詢資料的時候,由於沒有索引,需要掃瞄整個表,因此延遲較高。另外乙個導致 hive 執行延遲高的因素是 mapreduce框架。由於mapreduce 本身具有較高的延遲,因此在利用mapreduce 執行hive查詢時,也會有較高的延遲。相對的,資料庫的執行延遲較低。當然,這個低是有條件的,即資料規模較小,當資料規模大到超過資料庫的處理能力的時候,hive的平行計算顯然能體現出優勢。

由於hive建立在集群上並可以利用mapreduce進行平行計算,因此可以支援很大規模的資料;對應的,資料庫可以支援的資料規模較小。

Hive定義,優缺點,架構原理介紹

1.1 什麼是hive 1.2 hive優缺點 1.2.1 優點 1.2.2 缺點 1.3 hive的架構原理 1 使用者介面 client 2 元資料 metastore 3 hadoop 4 驅動器 driver hive 通過給使用者提供的一系列互動介面,接收到使用者的指令 sql 使用自己的...

資料庫索引優缺點

建立索引的優點 建立索引可以大大提高系統效能!具體如下 1.通過建立唯一性索引,可以保證資料庫表中每一行資料的唯一性。2.可以大大加快資料的檢索速度,這也是建立索引的最主要的原因。3.可以加速表和表之間的連線,特別是在實現資料的參考完整性方面特別有意義。4.在使用分組和排序子句進行資料檢索時,同樣可...

資料庫索引優缺點

建立索引可以大大提高系統的效能 第一,通過建立唯一性索引,可以保證資料庫表中每一行資料的唯一性。第二,可以大大加快資料的檢索速度,這也是建立索引的最主要的原因。第三,可以加速表和表之間的連線,特別是在實現資料的參考完整性方面特別有意義。第四,在使用分組和排序 子句進行資料檢索時,同樣可以顯著減少查詢...