高樹華
(中國神華海外開發投資有限公司,北京 100022)
基于Vertica技術的煤炭企業數據倉庫設計與應用
高樹華
(中國神華海外開發投資有限公司,北京 100022)
在分析了Vertica 技術等關鍵技術基本原理基礎上,設計了一種基于Vertica技術的跨國煤炭企業數據倉庫,對煤炭企業的數據存儲、挖掘及分析等提出了整體解決方案,對推動和促進國內煤炭企業的信息化進程有著重要意義。
Vertica技術 煤炭企業
我國煤炭企業在改革開放30多年發展過程中,從上世紀80年代前后經歷了滲透、膨脹、調整、網絡化與集成 、信息化五個主要階段。許多大、中型煤炭企業早已相繼建成了企業內部網,并在此基礎上建立了電力監測系統、通風安全監測系統、核子秤計量系統、井下設備運行監控系統、選煤廠集控系統以及綜合管理等業務系統。然而由于發展階段不同,需求不同煤炭企業的信息系統大都于不同時期構建,也采用了不同的信息技術,致使存在已建設系統的兼容性相對差。同時由于認識不足,缺乏統一規劃和管理等原因,業務數據往往存放并分散在不同的業務環境中,不易統一查詢和分析,且由于歷史原因,大量的歷史數據處于脫機狀態,存在丟失的風險。也存在著同一時期的系統由不同的集成廠商開發,風格不一,開發規范不一,對工作人員的專業技能要求較高,業務數據的模式針對事物處理系統而設計,數據的格式和描述方式并不適合非計算機專業人員進行業務上的分析和查詢。隨著外部環境的快速變化,目前的系統已經不能完全適用需要,數據存儲的孤島及數據分析的滯后性不利于充分發揮數據在煤炭企業的生產、經營、管理中的作用。

圖1

圖2
因此,建立煤炭企業數據倉庫系統既是提高國內煤炭企業的業務支撐能力,豐富企業的業務應用內容,為煤炭企業的科學化管理、數據分析、風險分析和預測提供高科技手段和市場競爭力,準確地把握企業的生產經營狀態,實現對整個企業活動有效地管理和決策的需要,也是縮短與國際煤炭企業在生產、運營、管理等方面的差距,確保我國煤炭企業在國際能源市場占有一席之地,科學健康穩健發展的需要。隨著科學技術的進步,現代化的生產和管理在煤礦行業中得到應用,為了更好地滿足現代煤礦安全生產和信息管理的要求, 本文將利用先進的vertica技術設計煤炭企業的數據倉庫。實際上,vertica技術采用低成本、開放的硬件平臺,大規模、分布式的部署自服務的數據處理和優化,提供實時敏捷的響應能力,對煤炭企業的數據存儲、挖掘及分析等提出了整體解決方案,對推動和促進國內煤炭企業的信息化進程有著重要意義。
Vertica創建于2005年,Vertica成立于2005年,總部位于美國麻薩諸塞州的Billerica,在亞太和歐洲都設有Office。2011年3月被HP公司收購。Vertica是致力于解決當前數據分析平臺日益增長的“大數據”和實時分析要求所帶來的挑戰,可以以傳統解決方案30%的成本,實現50倍-1000倍的性能提高。
(1)Vertica整體架構如圖1。
從架構中可以看到,其底層為支持實時分析的高性能列式數據倉庫,帶有業界最先進的數據倉庫優化器引擎,并附帶強大的數據壓縮,高級分析,彈性擴展以及自定義外部擴展等先進特性,從而為滿足未來big data帶來的業務分析挑戰提供了最好的工具。
(2)廣泛使用高壓縮算法存儲數據。根據數據類型,奇偶性和排列順序,Vertica分析數據倉庫采用多種壓縮算法以便縮小單列數據所占據的空間。這些壓縮算法超過12種。根據樣本數據,Vertica會自動選取數據壓縮編碼來壓縮每列的數據。因為同列的數據有相同的數據類型和取值范圍,所以采用基于數據列的數據壓縮通常能夠提升數據壓縮率。以行程長度算法(run length encoding)為例,如果數據例中的值已經排好序或數據列中的數據中特殊值比較少(通常與行數相比),那么行程長度算法針對這兩種的情形的效率最高。Vertica大量自動化使用壓縮技術,即使對比其他使用壓縮方式的數據倉庫而言,也存在明顯的優勢。一般情況下數據壓縮率可達到8到13倍。而其他數據倉庫一般只能壓縮在3-5倍左右。
(3)多數據投影存儲模式。Vertica數據倉庫并沒有采用將數據儲存在邏輯模式下的基表中,而是物理的將其存儲于多個視圖中。這種方式被稱為數據投影式存儲(理念上與物化視圖類似)。每一個數據投影包含特定排序方式下表的數據列的一個子集。數據投影中數據行中數據的位置與構成數據投影的表的數據列中的位置是一致的。數據投影也可以包含不同表的數據列,也就是所謂的物理化的連接。為了支持特殊查詢,每個數據元素至少被一個數據投影所包含。Vetica能夠自動優化不同工作負荷的性能表現。得益于高效壓縮率下大量存儲空間的節省,Vertica能夠保持多個數據投影。這些數據投影由不同的,并且常常是重疊的按照不同排序方式形成的數據列的子集組成這樣的機制提高了一大批數據查詢的效率,其中包括需要研究性分析的特殊查詢。
(4)相互不共享的并行機制Nothing-shared MPP。Vertica分析數據倉庫是一種采用互不共享,大規模的并行處理的數據倉庫系統。該系統運行在linux服務器網格上,相互之間通過TCP/IP網絡進行通信。每個結點由商用多核處理器組成。每個核心配備的內存在2G到4G之間。儲存硬盤能夠直接與每個結點相連,或者采用存儲域網絡(SAN)方式連接。Vertica所有節點完全平等,數據加載可以并發在所有節點同時執行,數據的查詢也可以在任意節點發起,并通過任務自動分布發送到其他節點進行執行。Vertica群集具有非常強大和方便的可擴展性,可一鍵加入和刪除節點,新增節點數據同步可通過Local-Segment技術高速進行數據重分布,數據節點變化不影響操作的執行效率。

表1 系統層次結構表
(5)K級系數安全可用性。Vertica數據倉庫維護著多個數據存儲投影。 它同時可以用于數據冗余備份。這樣保證了數據的高可用性。通過采用額外的約束條件,也就是系統保證數據投影被分割存儲在不同的結點上,Vertica數據倉庫本身實現了智能數據鏡像。Vertica將其稱之為K級系數安全性(K-safety),K指的是vertica能夠容忍的可能發生故障數據結點的個數。Vertcia針對所有的數據投影建立K+1個數據備份,保證這一機制。盡管數據排序可能不同,每個鏡像的數據塊在不同結點的分布也可能不同,每個鏡像包含同樣的數據列和分割鍵值。K級系數安全性保證了對發生數據故障結點上的數據查詢能夠在其他存活結點上獲得。對于多個數據查詢,查詢計劃器可以將額外的工作分配給其他存活結點,使得工作量在所有的存活結點中分配。一旦故障結點恢復正常,Vertca利用其他結點上的數據投影恢復該結點的數據。
(6)自動物理數據倉庫設計。使用Vertica分析數據倉庫,用戶只需要指定邏輯模式。一旦邏輯模式指定,Vertica數據倉庫設計器DB Designer自動根據邏輯數據模式、具有代表性的數據和查詢樣本,產生適當的數據倉庫設計,以及數據倉庫的空間預算。Vertica不僅可在創建邏輯數據結構的時候進行物理優化設計,而且可在數據倉庫運行一段時間后,通過Work Collecgtor收集數據倉庫運行負載數據,提供給Workload Analyzer對數據倉庫優化提供自動化建議。從而大大降低DBA管理的成本。
(7)部署的靈活性。Vertica分析數據倉庫能夠下載并安裝在一個linux服務器集上。它也可以通過授權,運行在Amazon Elastic云計算平臺上(Amazon EC2)。Vertica同樣支持虛擬化,能夠作為云計算服務的提供者。這使得用戶能夠快速實現數據倉庫,同時不需要用于取得關系數據倉庫的硬件和軟件的專門預算。這就擴展了數據倉庫的應用領域,使得數據倉庫技術能夠支持理論驗證項目,短期分析和需要向用戶提供大量數據用于在線分析的季節性軟件運營項目或者初創軟件運營公司。
(8)強大的庫內分析。與傳統數據倉庫著眼數據處理操作不同,Vertica分析數據倉庫更強調在庫內實現以往不可能執行的分析任務。Vertica對SQL進行擴展,提供大量基于時間序列的分析功能,同時還提供模式分析,自動插值計算,統計分析,關系圖分析,甚至地理分析處理功能。這些功能將極大減少用戶自己開發復雜數據分析的工作,并能很好地完成在大數據量環境下的分析任務。
整體來看,Vertica結合了突出的高性價比,強大的可擴展能力,高性能,內置的數據可靠性以及數據易用性特點,這些特點使Vertica在短短6年時間在各個行業獲得大量客戶的青睞,包括如Twitter,GroupOn,Comcast,Bank of American等大型客戶廣泛的使用,目前已有超過600個客戶在其應用環境中利用Vertica來處理大規模數據和實時數據分析的需要,隨著Vertica在新技術環境領域被廣泛認可,Vertica與Hadoop,整合及各種云服務上為更多的客戶提供了即插即用的數據分析服務。
總體要求:系統建設符合國家信息化工程相關規定,緊密結合煤炭企業各項業務管理應用實際,貫徹總體規劃、頂層設計;功能結構模塊布局,符合煤炭企業經營管理需要。先進性要求:采用符合國家電子政務建設標準的體系結構Vertica,應用技術符合國際有關技術標準與技術發展方向,確保系統具有良好的穩定、安全和可擴展性。實用性、易用性要求:滿足服務的實用需求為首要目標,選擇實用、成熟的Vertica數據倉庫技術。安全性要求:采用多級權限管理訪問控制,根據不同的權限訪問相應內容;對敏感數據信息進行加密保護;提供防病毒、防黑客策略,確保數據不被竊取和篡改;可靠性要求:采取多種技術手段,保證系統運行的穩定可靠。包括數據可靠性、系統穩定性,其中數據可靠性主要體現在網上提交的數據的真實性、數據的一致性、數據處理的事務性等;而系統穩定性體現在軟件系統能持續無故障運行。可擴展性要求適應煤炭企業經營管理業務調整要求:采用開放的標準的體系架構,能實現業務、功能、性能方面的簡單、方便擴展。性能要求:在Vertica平臺、應用系統設計等方面保證系統具備較強的數據處理能力,較快的響應速度,可以滿足經營管理者和多業務用戶并發訪問。標準性、規范性要求:遵循有關的國際標準和國家標準;遵循煤炭企業經營需要的指標體系及代碼標準;遵循電子政務建設的有關標準;項目建設和開發遵循軟件工程的原理,嚴格執行軟件項目的開發管理要求,符合ISO規范。
3.2.1 系統技術方案實現路線
采用基于集中管理的數據處理架構和基于數據倉庫的數據分析架構進行分層、模塊化設計,搭建業務運行支撐框架。即操作型系統和分析型系統同時并存的綜合應用框架。
3.2.2 煤炭企業系統總體架構設計
數據整合以現有六大系統數據以及原有統計報表系統為主,經過整合后形成數據的“大集中”從而便于管理,保障數據進一步加工利用。將集中管理后的煤炭企業經營管理數據進行分析利用,進一步清洗后形成Vertica數據倉庫,再進行深化的數據分析與利用。
系統層次結構采用多層結構模型,分為數據層、框架層、業務邏輯層和表示層。表1是各層次的具體描述:
煤炭企業面臨的外部環境不斷發生迅速的變化,復雜性日益增加,對于經營管理者而言決策質量的要求越來越高,決策時要考慮的方方面面的問題更復雜,決策失誤的代價更高。因此作為決策支持的數據分析顯得尤為重要,實際上煤炭企業尤其是跨國煤炭企業的數據分析一直是國內外研究的熱點方向,但是目前我國煤炭企業信息化程度總體普遍偏低,不利于煤炭產業的大規模發展。煤炭行業傳統的分析技術平臺往往使用昂貴、專用的硬件產品,采用集中式的部署模式,數據流程處理復雜,大量使用批模式進行處理,影響緩慢且維護成本高昂。則采用低成本、開放的硬件平臺,大規模、分布式的部署自服務的數據處理和優化,提供實時敏捷的響應能力,這為開發新一代的分布式跨國煤炭企業數據倉庫設計提供了全新的思路。在分析了Vertica技術等關鍵技術基本原理基礎上,設計了一種基于Vertica技術的跨國煤炭企業數據倉庫,對煤炭企業的數據存儲、挖掘及分析等提出了整體解決方案,對推動和促進國內煤炭企業的信息化進程有著重要意義。
Vertica技術的數據倉庫一是可以適應數據量和數據復雜程度的增長。對于非結構化數據,設備采樣數據,圖形數據等被納入數據源泉有著較好的應對,數據量也隨之成倍甚至數十倍的增長。二是Vertica技術可以讓處理數據的時間窗口盡量簡短。以往存在往往一整個晚上進行批處理而無需考慮提供查詢服務,通過Vertica技術逐可以縮短到需要分鐘級延遲的分析,即越來越多的準實時分析帶來煤炭企業經營管理者更強大的競爭能力。三是可以整整意義克服混合負載和大并發的問題。以往數據分析只需要滿足很少的幾個高端用戶,而隨著數據分析的價值被廣泛接受,越來越多用戶,從煤炭企業的高級分析者,到日常業務經理,甚至是一般操作人員都會需要數據分析提供的業務價值。使用Vertica技術將不用擔心這個影響。
[1]趙延明,高軍等.煤礦安全監控系統的現狀與發展[J].煤礦機電,2007.
[2]Neal Leavitt. Is Cloud Computing Really Ready for Prime Time[J].IEEE Computer, 2009.
[3]郭燕萍.利用信息技術提高煤炭企業物資供應管理水平[J].中國煤炭,2004.
[4]樊同科.基于數據倉庫的煤炭企業報表系統的設計與實現[J].煤炭技術,2011.
[5]煤炭企業數據倉庫及其關鍵技術研究臧大進.礦山機械,2006.
高樹華,生于1981年9月,男,陜西榆林人,博士研究生,研究方向:企業管理。