Apache Hive數(shù)據(jù)倉庫平臺
Apache Hive(TM)數(shù)據(jù)倉庫軟件有助于使用SQL讀取,寫入和管理駐留在分布式存儲中的大型數(shù)據(jù)集。建立在Apache Hadoop(TM)之上,它提供:
-
通過SQL輕松訪問數(shù)據(jù)的工具,從而實現(xiàn)數(shù)據(jù)倉庫任務,例如提取/轉(zhuǎn)換/加載(ETL),報告和數(shù)據(jù)分析
-
一種將結(jié)構(gòu)強加于各種數(shù)據(jù)格式的機制
-
訪問直接存儲在Apache HDFS(TM)或其他數(shù)據(jù)存儲系統(tǒng)(例如Apache HBase(TM))中的文件
-
使用Apache Hadoop MapReduce,Apache Tez或Apache Spark框架執(zhí)行查詢。
Hive提供了標準的SQL功能,包括2003年和2011年以后的許多分析功能。其中包括OLAP函數(shù),子查詢,公用表表達式等。Hive的SQL也可以通過用戶定義的函數(shù)(UDF),用戶定義的集合(UDAF)和用戶定義的表函數(shù)(UDTF)擴展為用戶代碼。
Hive用戶在執(zhí)行SQL查詢時可以選擇3種運行時。用戶可以選擇Apache Hadoop MapReduce,Apache Tez或Apache Spark框架作為執(zhí)行后端。MapReduce是一個成熟的框架,已得到大規(guī)模驗證。但是,MapReduce是純粹的批處理框架,使用它的查詢可能會遇到更高的延遲(數(shù)十秒),即使是在較小的數(shù)據(jù)集上也是如此。Apache Tez專為交互式查詢而設計,與MapReduce相比,已大大減少了開銷。Apache Spark是一個集群計算框架,建立在MapReduce之外,但在HDFS之上,具有可稱為項目的可組合且可轉(zhuǎn)換的分布式集合的概念,稱為彈性分布式數(shù)據(jù)集(RDD),它無需MapReduce引入的傳統(tǒng)中間階段即可進行處理和分析。
用戶可以隨時在這些框架之間來回切換。在每種情況下,Hive都最適合處理的數(shù)據(jù)量足以需要分布式系統(tǒng)的用例。
Hive不適用于在線交易處理。最好用于傳統(tǒng)的數(shù)據(jù)倉庫任務。Hive旨在最大程度地提高可擴展性(通過向Hadoop集群動態(tài)添加更多計算機來進行橫向擴展),性能,可擴展性,容錯以及輸入格式的松散耦合。
