高樹華
(中國神華海外開發(fā)投資有限公司,北京 100022)
基于Vertica技術(shù)的煤炭企業(yè)數(shù)據(jù)倉庫設(shè)計與應(yīng)用
高樹華
(中國神華海外開發(fā)投資有限公司,北京 100022)
在分析了Vertica 技術(shù)等關(guān)鍵技術(shù)基本原理基礎(chǔ)上,設(shè)計了一種基于Vertica技術(shù)的跨國煤炭企業(yè)數(shù)據(jù)倉庫,對煤炭企業(yè)的數(shù)據(jù)存儲、挖掘及分析等提出了整體解決方案,對推動和促進(jìn)國內(nèi)煤炭企業(yè)的信息化進(jìn)程有著重要意義。
Vertica技術(shù) 煤炭企業(yè)
我國煤炭企業(yè)在改革開放30多年發(fā)展過程中,從上世紀(jì)80年代前后經(jīng)歷了滲透、膨脹、調(diào)整、網(wǎng)絡(luò)化與集成 、信息化五個主要階段。許多大、中型煤炭企業(yè)早已相繼建成了企業(yè)內(nèi)部網(wǎng),并在此基礎(chǔ)上建立了電力監(jiān)測系統(tǒng)、通風(fēng)安全監(jiān)測系統(tǒng)、核子秤計量系統(tǒng)、井下設(shè)備運(yùn)行監(jiān)控系統(tǒng)、選煤廠集控系統(tǒng)以及綜合管理等業(yè)務(wù)系統(tǒng)。然而由于發(fā)展階段不同,需求不同煤炭企業(yè)的信息系統(tǒng)大都于不同時期構(gòu)建,也采用了不同的信息技術(shù),致使存在已建設(shè)系統(tǒng)的兼容性相對差。同時由于認(rèn)識不足,缺乏統(tǒng)一規(guī)劃和管理等原因,業(yè)務(wù)數(shù)據(jù)往往存放并分散在不同的業(yè)務(wù)環(huán)境中,不易統(tǒng)一查詢和分析,且由于歷史原因,大量的歷史數(shù)據(jù)處于脫機(jī)狀態(tài),存在丟失的風(fēng)險。也存在著同一時期的系統(tǒng)由不同的集成廠商開發(fā),風(fēng)格不一,開發(fā)規(guī)范不一,對工作人員的專業(yè)技能要求較高,業(yè)務(wù)數(shù)據(jù)的模式針對事物處理系統(tǒng)而設(shè)計,數(shù)據(jù)的格式和描述方式并不適合非計算機(jī)專業(yè)人員進(jìn)行業(yè)務(wù)上的分析和查詢。隨著外部環(huán)境的快速變化,目前的系統(tǒng)已經(jīng)不能完全適用需要,數(shù)據(jù)存儲的孤島及數(shù)據(jù)分析的滯后性不利于充分發(fā)揮數(shù)據(jù)在煤炭企業(yè)的生產(chǎn)、經(jīng)營、管理中的作用。
圖1
圖2
因此,建立煤炭企業(yè)數(shù)據(jù)倉庫系統(tǒng)既是提高國內(nèi)煤炭企業(yè)的業(yè)務(wù)支撐能力,豐富企業(yè)的業(yè)務(wù)應(yīng)用內(nèi)容,為煤炭企業(yè)的科學(xué)化管理、數(shù)據(jù)分析、風(fēng)險分析和預(yù)測提供高科技手段和市場競爭力,準(zhǔn)確地把握企業(yè)的生產(chǎn)經(jīng)營狀態(tài),實現(xiàn)對整個企業(yè)活動有效地管理和決策的需要,也是縮短與國際煤炭企業(yè)在生產(chǎn)、運(yùn)營、管理等方面的差距,確保我國煤炭企業(yè)在國際能源市場占有一席之地,科學(xué)健康穩(wěn)健發(fā)展的需要。隨著科學(xué)技術(shù)的進(jìn)步,現(xiàn)代化的生產(chǎn)和管理在煤礦行業(yè)中得到應(yīng)用,為了更好地滿足現(xiàn)代煤礦安全生產(chǎn)和信息管理的要求, 本文將利用先進(jìn)的vertica技術(shù)設(shè)計煤炭企業(yè)的數(shù)據(jù)倉庫。實際上,vertica技術(shù)采用低成本、開放的硬件平臺,大規(guī)模、分布式的部署自服務(wù)的數(shù)據(jù)處理和優(yōu)化,提供實時敏捷的響應(yīng)能力,對煤炭企業(yè)的數(shù)據(jù)存儲、挖掘及分析等提出了整體解決方案,對推動和促進(jìn)國內(nèi)煤炭企業(yè)的信息化進(jìn)程有著重要意義。
Vertica創(chuàng)建于2005年,Vertica成立于2005年,總部位于美國麻薩諸塞州的Billerica,在亞太和歐洲都設(shè)有Office。2011年3月被HP公司收購。Vertica是致力于解決當(dāng)前數(shù)據(jù)分析平臺日益增長的“大數(shù)據(jù)”和實時分析要求所帶來的挑戰(zhàn),可以以傳統(tǒng)解決方案30%的成本,實現(xiàn)50倍-1000倍的性能提高。
(1)Vertica整體架構(gòu)如圖1。
從架構(gòu)中可以看到,其底層為支持實時分析的高性能列式數(shù)據(jù)倉庫,帶有業(yè)界最先進(jìn)的數(shù)據(jù)倉庫優(yōu)化器引擎,并附帶強(qiáng)大的數(shù)據(jù)壓縮,高級分析,彈性擴(kuò)展以及自定義外部擴(kuò)展等先進(jìn)特性,從而為滿足未來big data帶來的業(yè)務(wù)分析挑戰(zhàn)提供了最好的工具。
(2)廣泛使用高壓縮算法存儲數(shù)據(jù)。根據(jù)數(shù)據(jù)類型,奇偶性和排列順序,Vertica分析數(shù)據(jù)倉庫采用多種壓縮算法以便縮小單列數(shù)據(jù)所占據(jù)的空間。這些壓縮算法超過12種。根據(jù)樣本數(shù)據(jù),Vertica會自動選取數(shù)據(jù)壓縮編碼來壓縮每列的數(shù)據(jù)。因為同列的數(shù)據(jù)有相同的數(shù)據(jù)類型和取值范圍,所以采用基于數(shù)據(jù)列的數(shù)據(jù)壓縮通常能夠提升數(shù)據(jù)壓縮率。以行程長度算法(run length encoding)為例,如果數(shù)據(jù)例中的值已經(jīng)排好序或數(shù)據(jù)列中的數(shù)據(jù)中特殊值比較少(通常與行數(shù)相比),那么行程長度算法針對這兩種的情形的效率最高。Vertica大量自動化使用壓縮技術(shù),即使對比其他使用壓縮方式的數(shù)據(jù)倉庫而言,也存在明顯的優(yōu)勢。一般情況下數(shù)據(jù)壓縮率可達(dá)到8到13倍。而其他數(shù)據(jù)倉庫一般只能壓縮在3-5倍左右。
(3)多數(shù)據(jù)投影存儲模式。Vertica數(shù)據(jù)倉庫并沒有采用將數(shù)據(jù)儲存在邏輯模式下的基表中,而是物理的將其存儲于多個視圖中。這種方式被稱為數(shù)據(jù)投影式存儲(理念上與物化視圖類似)。每一個數(shù)據(jù)投影包含特定排序方式下表的數(shù)據(jù)列的一個子集。數(shù)據(jù)投影中數(shù)據(jù)行中數(shù)據(jù)的位置與構(gòu)成數(shù)據(jù)投影的表的數(shù)據(jù)列中的位置是一致的。數(shù)據(jù)投影也可以包含不同表的數(shù)據(jù)列,也就是所謂的物理化的連接。為了支持特殊查詢,每個數(shù)據(jù)元素至少被一個數(shù)據(jù)投影所包含。Vetica能夠自動優(yōu)化不同工作負(fù)荷的性能表現(xiàn)。得益于高效壓縮率下大量存儲空間的節(jié)省,Vertica能夠保持多個數(shù)據(jù)投影。這些數(shù)據(jù)投影由不同的,并且常常是重疊的按照不同排序方式形成的數(shù)據(jù)列的子集組成這樣的機(jī)制提高了一大批數(shù)據(jù)查詢的效率,其中包括需要研究性分析的特殊查詢。
(4)相互不共享的并行機(jī)制Nothing-shared MPP。Vertica分析數(shù)據(jù)倉庫是一種采用互不共享,大規(guī)模的并行處理的數(shù)據(jù)倉庫系統(tǒng)。該系統(tǒng)運(yùn)行在linux服務(wù)器網(wǎng)格上,相互之間通過TCP/IP網(wǎng)絡(luò)進(jìn)行通信。每個結(jié)點由商用多核處理器組成。每個核心配備的內(nèi)存在2G到4G之間。儲存硬盤能夠直接與每個結(jié)點相連,或者采用存儲域網(wǎng)絡(luò)(SAN)方式連接。Vertica所有節(jié)點完全平等,數(shù)據(jù)加載可以并發(fā)在所有節(jié)點同時執(zhí)行,數(shù)據(jù)的查詢也可以在任意節(jié)點發(fā)起,并通過任務(wù)自動分布發(fā)送到其他節(jié)點進(jìn)行執(zhí)行。Vertica群集具有非常強(qiáng)大和方便的可擴(kuò)展性,可一鍵加入和刪除節(jié)點,新增節(jié)點數(shù)據(jù)同步可通過Local-Segment技術(shù)高速進(jìn)行數(shù)據(jù)重分布,數(shù)據(jù)節(jié)點變化不影響操作的執(zhí)行效率。
表1 系統(tǒng)層次結(jié)構(gòu)表
(5)K級系數(shù)安全可用性。Vertica數(shù)據(jù)倉庫維護(hù)著多個數(shù)據(jù)存儲投影。 它同時可以用于數(shù)據(jù)冗余備份。這樣保證了數(shù)據(jù)的高可用性。通過采用額外的約束條件,也就是系統(tǒng)保證數(shù)據(jù)投影被分割存儲在不同的結(jié)點上,Vertica數(shù)據(jù)倉庫本身實現(xiàn)了智能數(shù)據(jù)鏡像。Vertica將其稱之為K級系數(shù)安全性(K-safety),K指的是vertica能夠容忍的可能發(fā)生故障數(shù)據(jù)結(jié)點的個數(shù)。Vertcia針對所有的數(shù)據(jù)投影建立K+1個數(shù)據(jù)備份,保證這一機(jī)制。盡管數(shù)據(jù)排序可能不同,每個鏡像的數(shù)據(jù)塊在不同結(jié)點的分布也可能不同,每個鏡像包含同樣的數(shù)據(jù)列和分割鍵值。K級系數(shù)安全性保證了對發(fā)生數(shù)據(jù)故障結(jié)點上的數(shù)據(jù)查詢能夠在其他存活結(jié)點上獲得。對于多個數(shù)據(jù)查詢,查詢計劃器可以將額外的工作分配給其他存活結(jié)點,使得工作量在所有的存活結(jié)點中分配。一旦故障結(jié)點恢復(fù)正常,Vertca利用其他結(jié)點上的數(shù)據(jù)投影恢復(fù)該結(jié)點的數(shù)據(jù)。
(6)自動物理數(shù)據(jù)倉庫設(shè)計。使用Vertica分析數(shù)據(jù)倉庫,用戶只需要指定邏輯模式。一旦邏輯模式指定,Vertica數(shù)據(jù)倉庫設(shè)計器DB Designer自動根據(jù)邏輯數(shù)據(jù)模式、具有代表性的數(shù)據(jù)和查詢樣本,產(chǎn)生適當(dāng)?shù)臄?shù)據(jù)倉庫設(shè)計,以及數(shù)據(jù)倉庫的空間預(yù)算。Vertica不僅可在創(chuàng)建邏輯數(shù)據(jù)結(jié)構(gòu)的時候進(jìn)行物理優(yōu)化設(shè)計,而且可在數(shù)據(jù)倉庫運(yùn)行一段時間后,通過Work Collecgtor收集數(shù)據(jù)倉庫運(yùn)行負(fù)載數(shù)據(jù),提供給Workload Analyzer對數(shù)據(jù)倉庫優(yōu)化提供自動化建議。從而大大降低DBA管理的成本。
(7)部署的靈活性。Vertica分析數(shù)據(jù)倉庫能夠下載并安裝在一個linux服務(wù)器集上。它也可以通過授權(quán),運(yùn)行在Amazon Elastic云計算平臺上(Amazon EC2)。Vertica同樣支持虛擬化,能夠作為云計算服務(wù)的提供者。這使得用戶能夠快速實現(xiàn)數(shù)據(jù)倉庫,同時不需要用于取得關(guān)系數(shù)據(jù)倉庫的硬件和軟件的專門預(yù)算。這就擴(kuò)展了數(shù)據(jù)倉庫的應(yīng)用領(lǐng)域,使得數(shù)據(jù)倉庫技術(shù)能夠支持理論驗證項目,短期分析和需要向用戶提供大量數(shù)據(jù)用于在線分析的季節(jié)性軟件運(yùn)營項目或者初創(chuàng)軟件運(yùn)營公司。
(8)強(qiáng)大的庫內(nèi)分析。與傳統(tǒng)數(shù)據(jù)倉庫著眼數(shù)據(jù)處理操作不同,Vertica分析數(shù)據(jù)倉庫更強(qiáng)調(diào)在庫內(nèi)實現(xiàn)以往不可能執(zhí)行的分析任務(wù)。Vertica對SQL進(jìn)行擴(kuò)展,提供大量基于時間序列的分析功能,同時還提供模式分析,自動插值計算,統(tǒng)計分析,關(guān)系圖分析,甚至地理分析處理功能。這些功能將極大減少用戶自己開發(fā)復(fù)雜數(shù)據(jù)分析的工作,并能很好地完成在大數(shù)據(jù)量環(huán)境下的分析任務(wù)。
整體來看,Vertica結(jié)合了突出的高性價比,強(qiáng)大的可擴(kuò)展能力,高性能,內(nèi)置的數(shù)據(jù)可靠性以及數(shù)據(jù)易用性特點,這些特點使Vertica在短短6年時間在各個行業(yè)獲得大量客戶的青睞,包括如Twitter,GroupOn,Comcast,Bank of American等大型客戶廣泛的使用,目前已有超過600個客戶在其應(yīng)用環(huán)境中利用Vertica來處理大規(guī)模數(shù)據(jù)和實時數(shù)據(jù)分析的需要,隨著Vertica在新技術(shù)環(huán)境領(lǐng)域被廣泛認(rèn)可,Vertica與Hadoop,整合及各種云服務(wù)上為更多的客戶提供了即插即用的數(shù)據(jù)分析服務(wù)。
總體要求:系統(tǒng)建設(shè)符合國家信息化工程相關(guān)規(guī)定,緊密結(jié)合煤炭企業(yè)各項業(yè)務(wù)管理應(yīng)用實際,貫徹總體規(guī)劃、頂層設(shè)計;功能結(jié)構(gòu)模塊布局,符合煤炭企業(yè)經(jīng)營管理需要。先進(jìn)性要求:采用符合國家電子政務(wù)建設(shè)標(biāo)準(zhǔn)的體系結(jié)構(gòu)Vertica,應(yīng)用技術(shù)符合國際有關(guān)技術(shù)標(biāo)準(zhǔn)與技術(shù)發(fā)展方向,確保系統(tǒng)具有良好的穩(wěn)定、安全和可擴(kuò)展性。實用性、易用性要求:滿足服務(wù)的實用需求為首要目標(biāo),選擇實用、成熟的Vertica數(shù)據(jù)倉庫技術(shù)。安全性要求:采用多級權(quán)限管理訪問控制,根據(jù)不同的權(quán)限訪問相應(yīng)內(nèi)容;對敏感數(shù)據(jù)信息進(jìn)行加密保護(hù);提供防病毒、防黑客策略,確保數(shù)據(jù)不被竊取和篡改;可靠性要求:采取多種技術(shù)手段,保證系統(tǒng)運(yùn)行的穩(wěn)定可靠。包括數(shù)據(jù)可靠性、系統(tǒng)穩(wěn)定性,其中數(shù)據(jù)可靠性主要體現(xiàn)在網(wǎng)上提交的數(shù)據(jù)的真實性、數(shù)據(jù)的一致性、數(shù)據(jù)處理的事務(wù)性等;而系統(tǒng)穩(wěn)定性體現(xiàn)在軟件系統(tǒng)能持續(xù)無故障運(yùn)行??蓴U(kuò)展性要求適應(yīng)煤炭企業(yè)經(jīng)營管理業(yè)務(wù)調(diào)整要求:采用開放的標(biāo)準(zhǔn)的體系架構(gòu),能實現(xiàn)業(yè)務(wù)、功能、性能方面的簡單、方便擴(kuò)展。性能要求:在Vertica平臺、應(yīng)用系統(tǒng)設(shè)計等方面保證系統(tǒng)具備較強(qiáng)的數(shù)據(jù)處理能力,較快的響應(yīng)速度,可以滿足經(jīng)營管理者和多業(yè)務(wù)用戶并發(fā)訪問。標(biāo)準(zhǔn)性、規(guī)范性要求:遵循有關(guān)的國際標(biāo)準(zhǔn)和國家標(biāo)準(zhǔn);遵循煤炭企業(yè)經(jīng)營需要的指標(biāo)體系及代碼標(biāo)準(zhǔn);遵循電子政務(wù)建設(shè)的有關(guān)標(biāo)準(zhǔn);項目建設(shè)和開發(fā)遵循軟件工程的原理,嚴(yán)格執(zhí)行軟件項目的開發(fā)管理要求,符合ISO規(guī)范。
3.2.1 系統(tǒng)技術(shù)方案實現(xiàn)路線
采用基于集中管理的數(shù)據(jù)處理架構(gòu)和基于數(shù)據(jù)倉庫的數(shù)據(jù)分析架構(gòu)進(jìn)行分層、模塊化設(shè)計,搭建業(yè)務(wù)運(yùn)行支撐框架。即操作型系統(tǒng)和分析型系統(tǒng)同時并存的綜合應(yīng)用框架。
3.2.2 煤炭企業(yè)系統(tǒng)總體架構(gòu)設(shè)計
數(shù)據(jù)整合以現(xiàn)有六大系統(tǒng)數(shù)據(jù)以及原有統(tǒng)計報表系統(tǒng)為主,經(jīng)過整合后形成數(shù)據(jù)的“大集中”從而便于管理,保障數(shù)據(jù)進(jìn)一步加工利用。將集中管理后的煤炭企業(yè)經(jīng)營管理數(shù)據(jù)進(jìn)行分析利用,進(jìn)一步清洗后形成Vertica數(shù)據(jù)倉庫,再進(jìn)行深化的數(shù)據(jù)分析與利用。
系統(tǒng)層次結(jié)構(gòu)采用多層結(jié)構(gòu)模型,分為數(shù)據(jù)層、框架層、業(yè)務(wù)邏輯層和表示層。表1是各層次的具體描述:
煤炭企業(yè)面臨的外部環(huán)境不斷發(fā)生迅速的變化,復(fù)雜性日益增加,對于經(jīng)營管理者而言決策質(zhì)量的要求越來越高,決策時要考慮的方方面面的問題更復(fù)雜,決策失誤的代價更高。因此作為決策支持的數(shù)據(jù)分析顯得尤為重要,實際上煤炭企業(yè)尤其是跨國煤炭企業(yè)的數(shù)據(jù)分析一直是國內(nèi)外研究的熱點方向,但是目前我國煤炭企業(yè)信息化程度總體普遍偏低,不利于煤炭產(chǎn)業(yè)的大規(guī)模發(fā)展。煤炭行業(yè)傳統(tǒng)的分析技術(shù)平臺往往使用昂貴、專用的硬件產(chǎn)品,采用集中式的部署模式,數(shù)據(jù)流程處理復(fù)雜,大量使用批模式進(jìn)行處理,影響緩慢且維護(hù)成本高昂。則采用低成本、開放的硬件平臺,大規(guī)模、分布式的部署自服務(wù)的數(shù)據(jù)處理和優(yōu)化,提供實時敏捷的響應(yīng)能力,這為開發(fā)新一代的分布式跨國煤炭企業(yè)數(shù)據(jù)倉庫設(shè)計提供了全新的思路。在分析了Vertica技術(shù)等關(guān)鍵技術(shù)基本原理基礎(chǔ)上,設(shè)計了一種基于Vertica技術(shù)的跨國煤炭企業(yè)數(shù)據(jù)倉庫,對煤炭企業(yè)的數(shù)據(jù)存儲、挖掘及分析等提出了整體解決方案,對推動和促進(jìn)國內(nèi)煤炭企業(yè)的信息化進(jìn)程有著重要意義。
Vertica技術(shù)的數(shù)據(jù)倉庫一是可以適應(yīng)數(shù)據(jù)量和數(shù)據(jù)復(fù)雜程度的增長。對于非結(jié)構(gòu)化數(shù)據(jù),設(shè)備采樣數(shù)據(jù),圖形數(shù)據(jù)等被納入數(shù)據(jù)源泉有著較好的應(yīng)對,數(shù)據(jù)量也隨之成倍甚至數(shù)十倍的增長。二是Vertica技術(shù)可以讓處理數(shù)據(jù)的時間窗口盡量簡短。以往存在往往一整個晚上進(jìn)行批處理而無需考慮提供查詢服務(wù),通過Vertica技術(shù)逐可以縮短到需要分鐘級延遲的分析,即越來越多的準(zhǔn)實時分析帶來煤炭企業(yè)經(jīng)營管理者更強(qiáng)大的競爭能力。三是可以整整意義克服混合負(fù)載和大并發(fā)的問題。以往數(shù)據(jù)分析只需要滿足很少的幾個高端用戶,而隨著數(shù)據(jù)分析的價值被廣泛接受,越來越多用戶,從煤炭企業(yè)的高級分析者,到日常業(yè)務(wù)經(jīng)理,甚至是一般操作人員都會需要數(shù)據(jù)分析提供的業(yè)務(wù)價值。使用Vertica技術(shù)將不用擔(dān)心這個影響。
[1]趙延明,高軍等.煤礦安全監(jiān)控系統(tǒng)的現(xiàn)狀與發(fā)展[J].煤礦機(jī)電,2007.
[2]Neal Leavitt. Is Cloud Computing Really Ready for Prime Time[J].IEEE Computer, 2009.
[3]郭燕萍.利用信息技術(shù)提高煤炭企業(yè)物資供應(yīng)管理水平[J].中國煤炭,2004.
[4]樊同科.基于數(shù)據(jù)倉庫的煤炭企業(yè)報表系統(tǒng)的設(shè)計與實現(xiàn)[J].煤炭技術(shù),2011.
[5]煤炭企業(yè)數(shù)據(jù)倉庫及其關(guān)鍵技術(shù)研究臧大進(jìn).礦山機(jī)械,2006.
高樹華,生于1981年9月,男,陜西榆林人,博士研究生,研究方向:企業(yè)管理。