自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Hive已為Hadoop帶來實(shí)時(shí)查詢機(jī)制

譯文
數(shù)據(jù)庫 Hadoop
Hive是一種“類SQL”查詢語言,它對(duì)大規(guī)模數(shù)據(jù)集處理速度的顯著提升使其成為企業(yè)級(jí)數(shù)據(jù)倉庫的最佳合作伙伴。

【51CTO外電頭條】Apache Hive是一款以Hadoop為基礎(chǔ)打造而成的工具,其專長在于利用類SQL語法對(duì)大規(guī)模非結(jié)構(gòu)化數(shù)據(jù)集進(jìn)行分析,從而幫助現(xiàn)有商務(wù)智能及企業(yè)分析研究人員對(duì)Hadoop內(nèi)容進(jìn)行訪問。作為由Facebook工程師們開發(fā)、受到Apache基金會(huì)認(rèn)可并貢獻(xiàn)的開源項(xiàng)目,Hive目前已經(jīng)在商用環(huán)境下的大數(shù)據(jù)分析領(lǐng)域取得了領(lǐng)先地位。

與Hadoop生態(tài)系統(tǒng)中的其它組成部分一樣,Hive的發(fā)展速度同樣非常迅猛。在今天的評(píng)測(cè)文章中,我們將以0.13為目標(biāo)——該版本解決了其它前續(xù)版本中的一些缺陷。0.13版本還顯著提升了類SQL查詢?cè)诙鄠€(gè)大規(guī)模Hadoop集群之間的處理速度,并針對(duì)前續(xù)版本中的交互查詢機(jī)制添加了多項(xiàng)全新功能。 從本質(zhì)上講,Hive其實(shí)是一套事務(wù)型數(shù)據(jù)存儲(chǔ)體系,同時(shí)也適用于規(guī)模巨大、對(duì)查詢速度要求不高的相對(duì)靜態(tài)數(shù)據(jù)集進(jìn)行分析Hive對(duì)現(xiàn)有數(shù)據(jù)倉庫方案作出了很好的補(bǔ)充,但并不屬于完整的替代性機(jī)制。相反,利用Hive輔助數(shù)據(jù)倉庫能夠充分發(fā)揮現(xiàn)有投資成果的實(shí)際效能,同時(shí)又不會(huì)對(duì)數(shù)據(jù)容納能力造成影響。 典型的數(shù)據(jù)倉庫方案包含有眾多昂貴的硬件與軟件組件,例如RAID或者SAN存儲(chǔ)、用于簡(jiǎn)化及插入數(shù)據(jù)的優(yōu)化型ETL(即提取、轉(zhuǎn)換與加載)規(guī)程、面向ERP或者其它后端系統(tǒng)的特定連接機(jī)制外加面向地理位置、產(chǎn)品或者銷售渠道等企業(yè)常見銷售事務(wù)所設(shè)計(jì)的規(guī)劃方案。這類倉庫體系通過優(yōu)化為CPU帶來豐富的數(shù)據(jù)內(nèi)容,從而為規(guī)劃方案中預(yù)設(shè)的各類運(yùn)營問題找到答案。

相比之下,Hive數(shù)據(jù)存儲(chǔ)機(jī)制將大量非結(jié)構(gòu)化數(shù)據(jù)整合到了一起——其中包括日志文件、客戶推文、電子郵件信息、地理數(shù)據(jù)以及CRM交互等——并將它們以非結(jié)構(gòu)化格式保存在成本低廉的商用硬件之上。Hive允許分析師們以這些數(shù)據(jù)為基礎(chǔ)構(gòu)建類似于數(shù)據(jù)庫的項(xiàng)目結(jié)構(gòu),引入與傳統(tǒng)表、列以及行相仿的機(jī)制并針對(duì)其編寫類SQL查詢。這意味著用戶完全可以根據(jù)查詢特性在同一套數(shù)據(jù)集之上采用不同類型的處理規(guī)劃,從而透過收集到的數(shù)據(jù)找出關(guān)鍵性運(yùn)營問題的確切答案。

過去,Hive查詢一直存在比較嚴(yán)重的延遲狀況,即使是涉及數(shù)據(jù)量不大的小型查詢也需要耗費(fèi)相當(dāng)長的一段時(shí)間——這是因?yàn)椴樵冃枰紫缺晦D(zhuǎn)化為映射-歸約作業(yè),而后才能提交給集群并以批量方式得到執(zhí)行。這種延遲一般不至于造成什么問題,因?yàn)樵缭诓樵円?guī)劃與映射-歸約機(jī)制起效之前、查詢本身就會(huì)對(duì)整個(gè)處理周期的時(shí)耗作出預(yù)判——至少在運(yùn)行Hive設(shè)計(jì)思路所指向的大規(guī)模數(shù)據(jù)集時(shí)是如此。

不過用戶們很快發(fā)現(xiàn),這類運(yùn)行周期過長的查詢流程在多用戶環(huán)境下會(huì)造成嚴(yán)重的不便甚至麻煩,因?yàn)樵谶@種狀況下單一作業(yè)有可能成為整體集群的首要完成目標(biāo)。 為了解決這一難題,Hive社區(qū)組織起新一輪努力(也被稱為‘毒刺’項(xiàng)目)以改善查詢處理速度,其目標(biāo)是讓Hive有能力適應(yīng)實(shí)時(shí)、交互式查詢與探索性操作的需求。這部分改進(jìn)成效在Hive 0.11、0.12以及0.13三個(gè)版本中開始陸續(xù)出現(xiàn)。

***,盡管HiveQL查詢語言以SQL-92為基礎(chǔ),但它仍然與SQL之間存在一系列重大差別——原因很簡(jiǎn)單,前者運(yùn)行在Hadoop基礎(chǔ)之上。舉例來說,DDL(即數(shù)據(jù)定義語言)命令需要考慮到表中現(xiàn)有多用戶文件系統(tǒng)能夠支持多種存儲(chǔ)格式這一客觀現(xiàn)實(shí)。不過總體而言,SQL用戶在使用HiveQL語言時(shí)能夠獲得理想的熟悉之感,而且在適應(yīng)過程中應(yīng)該不會(huì)遇到任何障礙。 Hive平臺(tái)架構(gòu) 從上到下,Hive的平臺(tái)架構(gòu)看起來與任何其它關(guān)系型數(shù)據(jù)庫并沒有什么不同。用戶編寫SQL查詢并將其提交至處理流程,且可以使用與數(shù)據(jù)庫引擎直接交互的命令行工具或者通過JDBC或ODBC與數(shù)據(jù)庫進(jìn)行通信的第三方工具。Hive的具體架構(gòu)如下圖所示:

Hive平臺(tái)架構(gòu)示意圖。

通過Mac及Windows系統(tǒng)下的JDBC以及ODBC驅(qū)動(dòng)程序,數(shù)據(jù)工作人員們可以將自己喜愛的SQL客戶端與Hive相對(duì)接,從而對(duì)表進(jìn)行瀏覽、查詢以及創(chuàng)建。對(duì)于資深用戶而言,Hive也提供原始的胖客戶端CLI、能夠與Hive驅(qū)動(dòng)程序直接交互。這套客戶端最為強(qiáng)大且要求與Hadoop直接對(duì)接,因此特別適合處理本地網(wǎng)絡(luò)執(zhí)行事務(wù)——防火墻、DNS以及網(wǎng)絡(luò)拓樸結(jié)構(gòu)都將不是問題。

Hive元存儲(chǔ)機(jī)制HCatalog原本曾經(jīng)作為獨(dú)立的Hadoop項(xiàng)目存在,如今則成為Hive發(fā)行版當(dāng)中的組成部分。在其自有關(guān)系型數(shù)據(jù)庫的支持之下,HCatalog能夠免去在Hive當(dāng)中定義規(guī)劃的步驟、簡(jiǎn)化新查詢同時(shí)使此類規(guī)劃能夠?yàn)镠adoop工具鏈中的其它工具——例如Pig——所用。

#p#

Hive上手指南

正如前面所提到,Hive使用的是名為HiveQL的簡(jiǎn)化版類SQL語言,其支持?jǐn)?shù)據(jù)定義與操作語句。任何一位SQL用戶都能在使用Hive時(shí)擁有熟悉的使用體驗(yàn)。HiveQL在設(shè)計(jì)思路上盡量簡(jiǎn)化了由SQL向其過渡的過程,并能夠直接讓數(shù)據(jù)分析機(jī)制建立并運(yùn)行在Hadoop之上。

大多數(shù)商務(wù)智能與SQL開發(fā)者工具都能輕松與Hive對(duì)接,正如與其它任何數(shù)據(jù)庫相對(duì)接一樣。在ODBC連接機(jī)制的輔助下,用戶可以將導(dǎo)入數(shù)據(jù)并利用PowerPivot for Excel等工具探索并分析數(shù)據(jù),進(jìn)而幫助企業(yè)了解到蘊(yùn)藏在大數(shù)據(jù)當(dāng)中的寶貴價(jià)值。

HiveQL與標(biāo)準(zhǔn)SQL之間也存在著多項(xiàng)顯著區(qū)別。Hive 0.13在設(shè)計(jì)思路上需要利用YARN以及Tez架構(gòu)對(duì)PB級(jí)別的數(shù)據(jù)集進(jìn)行全表掃描,因此關(guān)系型數(shù)據(jù)庫當(dāng)中的一部分常見功能在Hive當(dāng)中已經(jīng)不復(fù)存在。缺乏的特性包括事務(wù)處理、光標(biāo)、編報(bào)表、行級(jí)更新與刪除以及對(duì)運(yùn)行中的查詢加以撤銷等等。

雖然這些功能的缺失不會(huì)對(duì)數(shù)據(jù)分析產(chǎn)生影響,但卻有可能影響到我們?cè)贖ive集群上對(duì)現(xiàn)有SQL查詢加以使用的能力。查詢命令的編寫方式可能與其它支持完整SQL語言的引擎有所區(qū)別,但經(jīng)驗(yàn)豐富的傳統(tǒng)數(shù)據(jù)庫用戶應(yīng)該不至于在編寫Hive查詢時(shí)遇到阻礙。很多傳統(tǒng)SQL編輯環(huán)境現(xiàn)在已經(jīng)可以通過連接機(jī)制支持Hive,而Hive表也能夠利用多數(shù)SQL編輯器實(shí)現(xiàn)訪問,其中包括甲骨文及微軟推出的相關(guān)工具。

數(shù)據(jù)庫用戶在使用Hive時(shí)面臨的主要差異在于對(duì)存儲(chǔ)細(xì)節(jié)的識(shí)別層面。在傳統(tǒng)數(shù)據(jù)庫環(huán)境當(dāng)中,數(shù)據(jù)庫引擎控制著指向數(shù)據(jù)庫的全部讀取與寫入操作。但在Hive方面,數(shù)據(jù)庫表以文件形式被保存在Hadoop分布式文件系統(tǒng)(簡(jiǎn)稱HDFS)當(dāng)中,而其它應(yīng)用程序也可以對(duì)其加以修改。不過這在某種意義上也算是好事,這意味著Hive會(huì)強(qiáng)制要求數(shù)據(jù)與現(xiàn)有規(guī)劃的讀取機(jī)制相匹配,也就是說Hive會(huì)針對(duì)讀取操作對(duì)規(guī)劃加以修改。如果底層數(shù)據(jù)格式發(fā)生變化,Hive將盡力彌合這種差異,但用戶也可能因此面對(duì)意料之外的調(diào)整結(jié)果。

Hive用戶必須了解數(shù)據(jù)存儲(chǔ)的兩大要素:文件格式與壓縮機(jī)制。經(jīng)過調(diào)整的Hive查詢能夠?qū)?shù)據(jù)庫表中的數(shù)字、類以及文件作出優(yōu)化,從而讓底層映射-歸約作業(yè)以更富效率的方式執(zhí)行。Hive以文本作為默認(rèn)存儲(chǔ)格式,其優(yōu)勢(shì)在于能夠更輕松地為其它工具所使用。不過作為弊端,我們很難在查詢中對(duì)于原始文本文件作出優(yōu)化。

Hive能夠讀取并寫入多種文件格式,并在運(yùn)行過程中對(duì)相關(guān)內(nèi)容進(jìn)行壓縮。不同的文件格式可能給存儲(chǔ)要求與查詢效率帶來巨大影響,大家可以通過以下圖表進(jìn)一步加以了解(由Hortonworks提供)。文件格式屬于Hadoop社區(qū)的一大研究重點(diǎn)。高效的文件格式既能夠降低存儲(chǔ)成本,也可以提高查詢效率。

HDFS上的文件格式與文件大小。(圖表由Hortonworks提供)

大規(guī)模數(shù)據(jù)集的處理流程往往需要分為幾步進(jìn)行,而HiveQL當(dāng)中包含多種語言結(jié)構(gòu)、用于指定ETL流程。通常情況下,根據(jù)具體問題的實(shí)際要求,一項(xiàng)作業(yè)通常需要保存臨時(shí)表,而將TB級(jí)別的數(shù)據(jù)移動(dòng)至HDFS當(dāng)中顯然不切實(shí)際。Hive提供三種UDF(即用戶定義函數(shù)),能夠在查詢當(dāng)中被用于完成處理流程定制。由于它們作為Hive查詢的組成部分運(yùn)行而且能夠與數(shù)據(jù)直接對(duì)接,因此其執(zhí)行效率更高且能夠消除流程內(nèi)的中間步驟。UDF必須利用Java語言來編寫,因此SQL程序員們可能會(huì)面臨一些難題——不過Hive工具包的出現(xiàn)在一定程度上消除了此類障礙。如果沒有這三種UDF,特定類型的問題將變得更難于解決。

Hive查詢性能

Hive 0.13屬于毒刺項(xiàng)目(即技術(shù)社區(qū)為改進(jìn)Hive性能所構(gòu)建的項(xiàng)目)的***一部分,而且很明顯相關(guān)努力收到了不錯(cuò)的成效。我在0.11到0.13版本當(dāng)中對(duì)多項(xiàng)速度參數(shù)進(jìn)行了測(cè)試,并實(shí)際感受到了版本提升給處理效率帶來的改善。其中最引人注目的特性是0.13版本在全新Tez執(zhí)行框架上運(yùn)行查詢的能力。

在我的測(cè)試當(dāng)中,我發(fā)現(xiàn)在引入Tez之后、查詢次數(shù)與原先相比縮減了一半,而且查詢時(shí)耗在緩存機(jī)制的輔助下也降低了30%。在大規(guī)模數(shù)據(jù)集方面,其速度提升效果變得更為顯著。使用在0.11版本中引入的ORC(即優(yōu)化行列)文件格式時(shí),查詢次數(shù)降低了約15%。微軟專為Hive 0.13打造的Vectorization則進(jìn)一步將速度提高約10%。0.13版本中的另一項(xiàng)新功能——基于成本的查詢優(yōu)化機(jī)制——也能夠?qū)崿F(xiàn)20%效率改進(jìn)。

需要指出的是,這些測(cè)試全部運(yùn)行在我自己的筆記本設(shè)備上、處理對(duì)象為小型數(shù)據(jù)集、使用臨時(shí)性查詢,因此其結(jié)果可能無法準(zhǔn)確反映Hive 0.13在真實(shí)使用環(huán)境下的性能水平。很明顯,性能調(diào)整工具包中的每一項(xiàng)功能特性都具備顯著的價(jià)值,其在大規(guī)模查詢作業(yè)中將發(fā)揮重要的實(shí)際作用。

未來幾年中,需要收集并加以分析的數(shù)據(jù)總量當(dāng)然不可能有所減少。而企業(yè)級(jí)數(shù)據(jù)倉庫業(yè)務(wù)中最常用的度量單位——每TB成本——也只會(huì)變得更加重要。雖然這種衡量指標(biāo)易于計(jì)算也方便理解,但與大多數(shù)簡(jiǎn)便指標(biāo)一樣、它也會(huì)讓買家對(duì)整體架構(gòu)的復(fù)雜性缺乏足夠的理解。無論如何,幾乎所有從業(yè)人士都認(rèn)為Hive的數(shù)據(jù)存儲(chǔ)成本要遠(yuǎn)低于傳統(tǒng)數(shù)據(jù)倉庫方案——只相當(dāng)于后者的1%甚至更低。

傳統(tǒng)數(shù)據(jù)倉庫方案的用戶們應(yīng)該認(rèn)真評(píng)估利用Hadoop進(jìn)行非結(jié)構(gòu)化分析數(shù)據(jù)存儲(chǔ)的可能性,并考慮能否將其引入數(shù)據(jù)倉庫體系。在Hive的幫助下,我們有能力執(zhí)行PB級(jí)別查詢,從而定義并簡(jiǎn)化數(shù)據(jù)內(nèi)容并為日后引入數(shù)據(jù)倉庫分析作好準(zhǔn)備。Hadoop與Hive也可以在逆向場(chǎng)景中發(fā)揮作用:將原本需要保存在數(shù)據(jù)倉庫中的匯總數(shù)據(jù)分離出來,從而顯著降低存儲(chǔ)成本。***,Hive能夠?qū)Ψ墙Y(jié)構(gòu)化數(shù)據(jù)進(jìn)行實(shí)驗(yàn)性分析,并在確認(rèn)其實(shí)際價(jià)值后再將內(nèi)容保存在數(shù)據(jù)倉庫當(dāng)中。

尚未部署數(shù)據(jù)倉庫方案的企業(yè)或者技術(shù)部門也可以將Hive作為起點(diǎn),從而在感受數(shù)據(jù)分析價(jià)值的同時(shí)將前期投入成本控制在***程度。雖然Hive并不能提供一套完整的數(shù)據(jù)倉庫解決方案,但它確實(shí)帶來一套具備多種分析工具的優(yōu)秀、低成本、大規(guī)模、可操作型數(shù)據(jù)存儲(chǔ)機(jī)制。如果分析師們對(duì)于Hive的表現(xiàn)感到滿意,那么眾多傳統(tǒng)數(shù)據(jù)倉庫供應(yīng)商也將提供相關(guān)連接機(jī)制與工具、保證用戶可以將數(shù)據(jù)引入數(shù)據(jù)倉庫當(dāng)中以保護(hù)原有資產(chǎn)投入。

在實(shí)際運(yùn)營層面,以數(shù)據(jù)與分析為基礎(chǔ)制定出準(zhǔn)確決策的企業(yè)將擁有顯著的競(jìng)爭(zhēng)優(yōu)勢(shì)。Hive在查詢流程方面提供近線性可擴(kuò)展能力,且擁有比傳統(tǒng)企業(yè)級(jí)數(shù)據(jù)倉庫高出一個(gè)量級(jí)的卓越性能與性價(jià)比,此外其入門門檻也比后者低得多。目前10TB級(jí)別的企業(yè)數(shù)據(jù)倉庫解決方案大約需要100萬美元啟動(dòng)費(fèi)用,相比之下善于管理大規(guī)模非結(jié)構(gòu)化數(shù)據(jù)集的Hive可謂潛力無限。

原文鏈接:

http://www.infoworld.com/d/big-data/review-apache-hive-brings-real-time-queries-hadoop-246607

原文標(biāo)題:Review: Apache Hive brings real-time queries to Hadoop

責(zé)任編輯:彭凡 來源: 51CTO
相關(guān)推薦

2013-12-19 10:06:18

英特爾Hadoop

2017-03-13 09:50:00

HadoopHive

2012-10-29 09:55:52

HadoopImpalaDremel

2013-12-03 10:20:35

開源SQL查詢系統(tǒng)

2017-10-19 15:34:52

Hadoop技術(shù)機(jī)制學(xué)習(xí)

2015-03-17 11:09:33

Hadoop大數(shù)據(jù)數(shù)據(jù)開源工具

2016-11-09 14:31:36

Hadoop2.6Hive

2012-07-03 10:57:54

Hadoop核心機(jī)制

2018-09-18 15:21:47

Hive數(shù)據(jù)倉庫程序

2012-05-31 02:54:07

HadoopJava

2013-11-12 09:04:33

SDN網(wǎng)絡(luò)平臺(tái)

2017-10-23 14:14:26

HadoopHadoop HAQJM

2010-10-13 16:44:10

MySQL查詢緩存機(jī)制

2019-10-31 09:52:02

HadoopJava大數(shù)據(jù)

2013-10-21 09:31:11

OpenStackIPv6IPv4

2015-06-17 11:27:47

Hadoop集群管理安全機(jī)制

2023-05-08 00:08:51

Hive機(jī)制場(chǎng)景

2013-07-24 09:33:46

Hadoop安全加密

2010-11-25 09:37:14

MySQL查詢緩存機(jī)制

2012-03-07 09:02:47

微軟CeBIT2012Windows 8
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)