hive(資料倉儲工具)

2021-06-21 12:06:44 字數 2062 閱讀 7609

hive是基於hadoop的乙個

資料倉儲工具,可以將結構化的資料檔案對映為一張資料庫表,並提供簡單的sql查詢功能,可以將sql語句轉換為mapreduce任務進行執行。 其優點是學習成本低,可以通過類sql語句快速實現簡單的mapreduce統計,不必開發專門的mapreduce應用,十分適合

資料倉儲的統計分析。

1hive定義

2hive 體系結構

▪ 使用者介面

▪ 元資料儲存

▪ 直譯器、編譯器、優化器、執行器

▪ hadoop

3hive 的資料儲存

hive

[1]hive 沒有專門的資料格式。 hive 可以很好的工作在 thrift 之上,控制分隔符,也允許使用者指定資料格式。

主要分為以下幾個部分:

使用者介面主要有三個:cli,client 和 wui。其中最常用的是 cli,cli 啟動的時候,會同時啟動乙個 hive 副本。client 是 hive 的客戶端,使用者連線至 hive server。在啟動 client 模式的時候,需要指出 hive server 所在節點,並且在該節點啟動 hive server。 wui 是通過瀏覽器訪問 hive。

hive 將元資料儲存在資料庫中,如 mysql、derby。hive 中的元資料報括表的名字,表的列和分割槽及其屬性,表的屬性(是否為外部表等),表的資料所在目錄等。

直譯器、編譯器、優化器完成 hql 查詢語句從詞法分析、語法分析、編譯、優化以及查詢計畫的生成。生成的查詢計畫儲存在 hdfs 中,並在隨後由 mapreduce 呼叫執行。

hive 的資料儲存在 hdfs 中,大部分的查詢由 mapreduce 完成(不包含 * 的查詢,比如 select * from tbl 不會生成 mapreduce 任務)。

首先,hive 沒有專門的資料儲存格式,也沒有為資料建立索引,使用者可以非常自由的組織 hive 中的表,只需要在建立表的時候告訴 hive 資料中的列分隔符和行分隔符,hive 就可以解析資料。

其次,hive 中所有的資料都儲存在 hdfs 中,hive 中包含以下資料模型:表(table),外部表(external table),分割槽(partition),桶(bucket)。

hive 中的 table 和資料庫中的 table 在概念上是類似的,每乙個 table 在 hive 中都有乙個相應的目錄儲存資料。例如,乙個表 pvs,它在 hdfs 中的路徑為:/wh/pvs,其中,wh 是在 hive-site.xml 中由 $ 指定的資料倉儲的目錄,所有的 table 資料(不包括 external table)都儲存在這個目錄中。

partition 對應於資料庫中的 partition 列的密集索引,但是 hive 中 partition 的組織方式和資料庫中的很不相同。在 hive 中,表中的乙個 partition 對應於表下的乙個目錄,所有的 partition 的資料都儲存在對應的目錄中。例如:pvs 表中包含 ds 和 city 兩個 partition,則對應於 ds = 20090801, ctry = us 的 hdfs 子目錄為:/wh/pvs/ds=20090801/ctry=us;對應於 ds = 20090801, ctry = ca 的 hdfs 子目錄為;/wh/pvs/ds=20090801/ctry=ca

buckets 對指定列計算 hash,根據 hash 值切分資料,目的是為了並行,每乙個 bucket 對應乙個檔案。將 user 列分散至 32 個 bucket,首先對 user 列的值計算 hash,對應 hash 值為 0 的 hdfs 目錄為:/wh/pvs/ds=20090801/ctry=us/part-00000;hash 值為 20 的 hdfs 目錄為:/wh/pvs/ds=20090801/ctry=us/part-00020

external table 指向已經在 hdfs 中存在的資料,可以建立 partition。它和 table 在元資料的組織上是相同的,而實際資料的儲存則有較大的差異。

table 的建立過程和資料載入過程(這兩個過程可以在同乙個語句中完成),在載入資料的過程中,實際資料會被移動到資料倉儲目錄中;之後對資料對訪問將會直接在資料倉儲目錄中完成。刪除表時,表中的資料和元資料將會被同時刪除。

參考資料

Hive 資料倉儲工具,特性介紹

一 hive的儲存 hive是基於hadoop分布式檔案系統的,它的資料儲存在hdfs中。hive本身是沒有專門的資料儲存格式,也沒有為資料建立索引,只需要在建立表的時候告訴hive資料中的列分隔符和行分隔符,hive就可以解析資料。所以往hive表裡面匯入資料只是簡單的將資料移動到表所在的目錄中。...

Hive 資料倉儲

hive命令列模式 1 進入bin 執行.hiv 2 配置hive環境變數,直接執行命令 hive service cli 或 hive hive的web模式 執行hive service hwi 啟動後訪問http master 9999 hwi hive的遠端服務 預設埠 10000,執行啟動命...

資料倉儲Hive

資料倉儲是乙個面向主題的 整合的 相對穩定的 反映歷史變化的資料集合,用於支援管理決策。根本目的是為了支援企業內部的商業分析和決策,基於資料倉儲的分析結果,做出相關的經營決策.資料倉儲中的資料比較穩定,保留了大量歷史資料 而資料庫只儲存某一時刻的資料.對於傳統資料倉儲來說,既是資料儲存產品也是分析產...