汪 華,李 波,王 彪,廖婷婷
(貴州省氣象信息中心,貴州 貴陽 550002)
信息化已經(jīng)進(jìn)入全面滲透、跨界融合、加速創(chuàng)新、引領(lǐng)發(fā)展的新階段,大數(shù)據(jù)時代的到來對各行各業(yè)都產(chǎn)生了深遠(yuǎn)的影響,數(shù)據(jù)已成為國家基礎(chǔ)性戰(zhàn)略資源,各行業(yè)的數(shù)據(jù)都呈現(xiàn)爆發(fā)增長和海量集聚的趨勢,人們可以通過對數(shù)據(jù)進(jìn)行深度結(jié)合發(fā)掘超出本部門業(yè)務(wù)領(lǐng)域的信息,獲得具有開創(chuàng)性的新知識或預(yù)測信息,甚至開創(chuàng)新的業(yè)務(wù)領(lǐng)域。氣象本身就是信息化程度較高、對數(shù)據(jù)依賴度較高的行業(yè),全球最具權(quán)威的IT研究與顧問咨詢公司Gartner預(yù)測行業(yè)的大數(shù)據(jù)平臺將面臨處理速度、多源類型、負(fù)載劇增、價值挖掘等4方面的挑戰(zhàn),傳統(tǒng)的關(guān)系型數(shù)據(jù)庫很難支撐大數(shù)據(jù)的服務(wù)要求,氣象大數(shù)據(jù)應(yīng)用的發(fā)展能夠揭示傳統(tǒng)技術(shù)方式難以展現(xiàn)的關(guān)聯(lián)關(guān)系,從省級層面探索不同的主流技術(shù)在行業(yè)內(nèi)部的應(yīng)用將很有借鑒意義。
氣象觀測數(shù)據(jù)具有數(shù)據(jù)體量大、實(shí)時性要求高、數(shù)據(jù)多樣性、價值高4大特征,是非常典型的大數(shù)據(jù)應(yīng)用場景,但是傳統(tǒng)的計算方式無法對海量的數(shù)據(jù)進(jìn)行深入挖掘,數(shù)據(jù)采集過程從逐時向逐秒發(fā)展,傳統(tǒng)數(shù)據(jù)處理技術(shù)無法有效應(yīng)對數(shù)據(jù)的巨量并發(fā),以貴州省內(nèi)的區(qū)域自動站為例,全省每個收集時次會產(chǎn)生3 000多條氣象觀測數(shù)據(jù),一個月就能累計上億的數(shù)據(jù)量。
氣象數(shù)據(jù)要取得最大的應(yīng)用效果,要求實(shí)時采集、實(shí)時處理、實(shí)時計算,典型應(yīng)用在防災(zāi)減災(zāi)救災(zāi)領(lǐng)域,氣象數(shù)據(jù)價值往往體現(xiàn)在預(yù)警效用上,需要隨時能調(diào)用、查詢、計算、分析,而且數(shù)據(jù)應(yīng)用的效用隨時間呈斷崖式下降,這也是氣象大數(shù)據(jù)區(qū)別于其它行業(yè)數(shù)據(jù)應(yīng)用最明顯的差異點(diǎn)和價值特征。
在大數(shù)據(jù)時代,Oracle等傳統(tǒng)關(guān)系型數(shù)據(jù)庫很難滿足海量氣象數(shù)據(jù)存儲和在線分析的需求,主要原因在于傳統(tǒng)的關(guān)系型數(shù)據(jù)庫是為OLTP(聯(lián)機(jī)事務(wù)處理on-line transaction processing)場景定制,其技術(shù)特征是為滿足行業(yè)中日常事務(wù)和流程處理的需求,典型場景如金融行業(yè)的交易和支付系統(tǒng),在海量數(shù)據(jù)存儲在線分析等應(yīng)用場景下,傳統(tǒng)數(shù)據(jù)庫暴露出效率低、軟硬件成本高、擴(kuò)展能力弱等天然缺陷。
數(shù)據(jù)規(guī)模:傳統(tǒng)數(shù)據(jù)庫數(shù)據(jù)規(guī)模,通常以MB、GB單位為主,較少達(dá)到TB級別,大數(shù)據(jù)平臺需要處理的數(shù)據(jù)規(guī)模通常以GB、TB和PB單位為主。
數(shù)據(jù)類型:傳統(tǒng)數(shù)據(jù)庫需要處理的數(shù)據(jù)結(jié)構(gòu)類型單一,主要處理結(jié)構(gòu)化的數(shù)據(jù),而大數(shù)據(jù)平臺需要連接多個數(shù)據(jù)來源,多種類型,包含來自O(shè)racle、MySQL等主流數(shù)據(jù)庫的結(jié)構(gòu)化數(shù)據(jù),還包含文本、日志、音頻、視頻和圖片等半結(jié)構(gòu)化和非結(jié)構(gòu)化的數(shù)據(jù)。
數(shù)據(jù)范圍:傳統(tǒng)數(shù)據(jù)庫往往只包含行業(yè)全部數(shù)據(jù)的部分樣本,僅建立部分庫表或業(yè)務(wù)單元的聯(lián)系,而大數(shù)據(jù)平臺需要處理全量數(shù)據(jù),需要全部庫表與所有業(yè)務(wù)內(nèi)容建立聯(lián)系并開展數(shù)據(jù)挖掘。
數(shù)據(jù)算法:傳統(tǒng)數(shù)據(jù)庫以常見的加減乘除為主,而大數(shù)據(jù)平臺需要對數(shù)據(jù)進(jìn)行聚合、分類、范圍統(tǒng)計、數(shù)據(jù)挖掘等各種更為復(fù)雜的加工處理。
數(shù)據(jù)應(yīng)用: 傳統(tǒng)數(shù)據(jù)庫以支持實(shí)時交易和業(yè)務(wù)流程為主,大數(shù)據(jù)平臺面向已有數(shù)據(jù)能開展不限時間、空間各維度的分析與對比,可為多種不同的應(yīng)用靈活地提供數(shù)據(jù)調(diào)用與展示。
因此在進(jìn)行數(shù)據(jù)庫平臺選型的時候,需要依據(jù)業(yè)務(wù)應(yīng)用的需求來全局、合理地進(jìn)行規(guī)劃和分類,對于OLTP型操作的業(yè)務(wù)需求,可以使用傳統(tǒng)關(guān)系型數(shù)據(jù)庫,對于需要進(jìn)行海量數(shù)據(jù)在線分析和數(shù)據(jù)挖掘等業(yè)務(wù)需求,則需要采用高效、安全、可擴(kuò)展的大數(shù)據(jù)平臺。
隨著海量數(shù)據(jù)的出現(xiàn),關(guān)系型數(shù)據(jù)庫收到?jīng)_擊,數(shù)據(jù)分析開始向分布式數(shù)據(jù)庫和數(shù)據(jù)倉庫發(fā)展,在主流的大數(shù)據(jù)平臺層面,Hadoop開源生態(tài)和MPP(Massively Parallel Processor大規(guī)模并行處理)分布式數(shù)據(jù)庫是當(dāng)前兩大主流的大數(shù)據(jù)平臺技術(shù),兩類平臺技術(shù)具有各自的特征。
2.2.1 Hadoop開源大數(shù)據(jù)平臺 Hadoop開源大數(shù)據(jù)起源于互聯(lián)網(wǎng)行業(yè),最初是為解決海量的日志等半結(jié)構(gòu)化數(shù)據(jù)及圖片、視頻等非結(jié)構(gòu)化數(shù)據(jù)的存儲和計算問題發(fā)展而來,主要依托于開源社區(qū)進(jìn)行技術(shù)迭代更新,Hadoop的擴(kuò)展性好,適合海量數(shù)據(jù)的批量處理,但在氣象觀測數(shù)據(jù)在線檢索和分析場景下,Hadoop存在一些技術(shù)缺陷,如Hive是Hadoop生態(tài)數(shù)據(jù)分析場景主流組件,Hive底層采用的是Map-Reduce計算引擎,其響應(yīng)時延是分鐘和小時級,在實(shí)時性要求越來越高的氣象業(yè)務(wù)場景下,Hive明顯延時過高,不能滿足氣象在線分析檢索的要求,同時Hbase不支持關(guān)聯(lián)計算,不支持事務(wù),不支持標(biāo)準(zhǔn)SQL語法,以上的問題決定了其很難滿足海量氣象數(shù)據(jù)在線分析檢索場景的要求。Spark的RDD存儲格式采用類似數(shù)據(jù)隨機(jī)分布機(jī)制,也沒有索引機(jī)制,在處理數(shù)據(jù)時需要實(shí)行全掃描機(jī)制和大量數(shù)據(jù)在節(jié)點(diǎn)間的傳輸和廣播,在精確檢索、范圍檢索、海量數(shù)據(jù)關(guān)聯(lián)分析、聚合運(yùn)算等方面存在性能問題,Hadoop生態(tài)不支持事務(wù),導(dǎo)致在數(shù)據(jù)插入和批量更新等場景下可能發(fā)生數(shù)據(jù)丟失和不一致等情況,對于數(shù)據(jù)一致性和完整性有很高要求的氣象行業(yè)用戶是一個嚴(yán)重問題。Impala不支持索引,即使小數(shù)據(jù)量的檢索,Impala也需要對全表做掃描,導(dǎo)致并發(fā)效率較低。同時開源軟件普遍存在性能調(diào)優(yōu)復(fù)雜,容易出現(xiàn)內(nèi)存耗凈等復(fù)雜的問題,需要高級的技術(shù)人員進(jìn)行長期維護(hù),維護(hù)成本很高。
表1 主流Hadoop生態(tài)技術(shù)功能對比Tab.1 Comparison of mainstream Hadoop eco technology functions
2.2.2 MPP分布式數(shù)據(jù)庫 MPP數(shù)據(jù)庫是新型分布式數(shù)據(jù)庫,其技術(shù)起源于傳統(tǒng)關(guān)系型數(shù)據(jù)庫面向大數(shù)據(jù)時代的改良,主要特點(diǎn)是實(shí)時性,缺點(diǎn)是對非結(jié)構(gòu)化數(shù)據(jù)庫的支持不好。MPP核心原理是將一個大的查詢通過分拆為多個子查詢,分布到底層執(zhí)行,最后再合并結(jié)果,其核心技術(shù)原理是通過多線程并發(fā)的暴力掃描來實(shí)現(xiàn)高效分析,這種暴力掃描對單個查詢來說,動用了整個系統(tǒng)的能力,單個查詢的確比較快,但同時帶來用力過猛的問題,整個系統(tǒng)能支持的并發(fā)受到嚴(yán)重制約。從目前MPP數(shù)據(jù)庫的行業(yè)應(yīng)用情況和經(jīng)驗(yàn)來看,最高支持30個以上的并發(fā)查詢將導(dǎo)致查詢效率的急劇下降。MPP數(shù)據(jù)庫普遍采用存儲計算資源緊耦合的設(shè)計,導(dǎo)致MPP無法和Hadoop HDFS分布式存儲引擎兼容,必須單獨(dú)搭建硬件集群進(jìn)行部署且要求獨(dú)占計算和存儲資源,無法和Hadoop生態(tài)有效融合,擴(kuò)展能力存在明顯短板,同時集群節(jié)點(diǎn)數(shù)目不能過多,超過一定數(shù)量后集群的計算能力和效率增長率均會明顯下降,單個節(jié)點(diǎn)軟硬件故障會導(dǎo)致平臺運(yùn)行效率嚴(yán)重下降。
表2 融合架構(gòu)分布式數(shù)據(jù)與傳統(tǒng)MPP數(shù)據(jù)庫的功能對比Tab.2 Functional comparison between the fusion architecture distributed data and the traditional MPP database
Gartner機(jī)構(gòu)2016年提出融合型大數(shù)據(jù)的概念,根據(jù)應(yīng)用場景搭建多種類型的數(shù)據(jù)倉庫,如采用邏輯數(shù)據(jù)倉庫LDW(Logical Dataware House)模式解決多個數(shù)據(jù)源以及多種類型數(shù)據(jù)的綜合分析場景,通過數(shù)據(jù)虛擬化技術(shù)實(shí)現(xiàn)數(shù)據(jù)的統(tǒng)一訪問,數(shù)據(jù)聯(lián)邦實(shí)現(xiàn)跨數(shù)據(jù)源的訪問;搭建運(yùn)營數(shù)據(jù)倉庫實(shí)現(xiàn)流數(shù)據(jù)的分析,支撐實(shí)時性要求高的數(shù)據(jù)加載和分析;采用模型無關(guān)數(shù)據(jù)倉庫,支撐深度機(jī)器學(xué)習(xí)模型的建立,采用文本和圖形的計算引擎和算法庫,解決深度數(shù)據(jù)挖掘和復(fù)雜的機(jī)器學(xué)習(xí)應(yīng)用問題,根據(jù)氣象行業(yè)數(shù)據(jù)應(yīng)用的特點(diǎn)采用融合架構(gòu)的分布式技術(shù)是比較適合的選擇。
融合架構(gòu)分布式數(shù)據(jù)庫是行業(yè)最新的大數(shù)據(jù)平臺技術(shù),其技術(shù)原理融合了Hadoop和MPP兩類大數(shù)據(jù)平臺的優(yōu)點(diǎn),代表大數(shù)據(jù)平臺技術(shù)最新發(fā)展方向。一般的技術(shù)架構(gòu)是底層采用Hadoop作為存儲引擎,結(jié)合高效的分布式SQL引擎,具備支持高并發(fā)數(shù)據(jù)寫入同時開展在線數(shù)據(jù)分析的能力,采用Share-Nothing分布式計算架構(gòu),最大程度利用硬件資源提升計算效率。
根據(jù)對于融合分布式數(shù)據(jù)庫的技術(shù)特征分析,前期集合實(shí)際數(shù)據(jù)和業(yè)務(wù)場景開展了實(shí)地測試,測試共使用5臺服務(wù)器,其中4臺用于數(shù)據(jù)庫計算節(jié)點(diǎn),1臺部署管理節(jié)點(diǎn),選取的數(shù)據(jù)主要是1.6億條的自動站數(shù)據(jù)表,測試采取腳本加人工方式進(jìn)行,編制腳本進(jìn)行場景測試,對于無法采用腳本實(shí)現(xiàn)的測試案例通過人工判斷、執(zhí)行。
測試81條典型SQL,按照業(yè)務(wù)需求分為以下5大類場景:
從按時間范圍的簡單條件查詢;按時間范圍的簡單條件極值計算;按時間及其它范圍的極值計算;按時間范圍及其它范圍的組合查詢;按時間范圍的模糊查詢。
測試結(jié)果表明,5個業(yè)務(wù)場景的全部81個SQL在分布式數(shù)據(jù)庫中都能夠直接成功執(zhí)行,分布式數(shù)據(jù)庫在SQL兼容性和功能性方面可以滿足氣象局分析應(yīng)用場景的要求。在5個不同的應(yīng)用場景下的81個SQL 執(zhí)行時間在毫秒級的占比85.2%(69/81),執(zhí)行時間在1~5 s的占比3.70%(3/81),執(zhí)行時間在5~10 s的占比3.7%(3/81),執(zhí)行時間在10~30 s的占比7.2%(6/81)。整體測試結(jié)果表明11個場景功能適配占比82%,84種條件查詢適配占比88%,小數(shù)據(jù)量條件查詢響應(yīng)1 s左右,占比24%,中大數(shù)據(jù)量查詢響應(yīng)在秒級,性能遠(yuǎn)高于Oracle,占比76%,整體性能表現(xiàn)非常出色。
從融合架構(gòu)分布式數(shù)據(jù)庫的測試和應(yīng)用來看,能得到以下兩點(diǎn)結(jié)論:
①系統(tǒng)SQL兼容性較好支持標(biāo)準(zhǔn)的SQL語句,不需要對應(yīng)用進(jìn)行大幅度的修改就能平滑遷移,技術(shù)架構(gòu)能夠解決現(xiàn)有商業(yè)化的大數(shù)據(jù)平臺存在的技術(shù)缺陷,又能較好的與CIMISS的數(shù)據(jù)服務(wù)服務(wù)MUSIC服務(wù)接口對接;
②查詢數(shù)據(jù)量小的情況響應(yīng)時間在毫秒級,略低于Oracle或者和Oracle性能基本持平;在數(shù)據(jù)量大的情況下分布式數(shù)據(jù)庫性能遠(yuǎn)高于Oracle。76%的大數(shù)據(jù)量查詢在秒級,性能提升非常明顯,能夠滿足氣象數(shù)據(jù)分析應(yīng)用場景對數(shù)據(jù)庫平臺的要求,數(shù)據(jù)平臺在實(shí)際業(yè)務(wù)場景中還需要考慮應(yīng)用算法研究,從技術(shù)原理和實(shí)踐兩個角度,探索融合大數(shù)據(jù)技術(shù)形成大數(shù)據(jù)在氣象行業(yè)的有效應(yīng)用實(shí)踐。