張達剛,陳海寧,陳 華,張光怡
1(北京恒輝信達技術有限公司,北京 100045)
2(北京市環保局,北京 100048)
近年來,國家高度重視大數據在推進生態文明建設中的地位和作用,各區域各行業都在努力貫徹落實加強生態環境大數據綜合應用和集成分析的策略要求,環保部門也希望借助新的技術解決新的數據問題,為生態環境保護科學決策提供有力支撐[1].通過研究發現,環境監測數據符合大數據的容量大、種類多、增長速度快、價值大的特征,通過傳統的數據處理方法獲取其中有用數據,難以滿足業務的發展需求.本文通過對相關技術及方案的探討,為深度挖掘環評監測數據的業務價值提供支撐.
根據北京市環境保護局發布的《建設項目環境影響評價分類管理名錄》,環境影響分類從A 類(水利)、B 類(農、林、牧、漁、海洋)一直到W 類(核與輻射),共計23 個大類,199 個子類.每個子類具有多種不同監測指標,代表著總數量大概幾千個評估維度.從對污染物監測數據采樣數量看,例如《環境空氣質量標準》(GB3095-2012)列出的大氣主要污染物(二氧化硫、一氧化碳、顆粒物等),每一種的采樣頻度如果是10 分鐘,以每個監測點一次1 KB(1024 字節)的采樣數據為例,一年的數據大小是1 KB×7(污染物)×6(10 分鐘采樣周期)×24(一天小時數)×365(一年天數)=360 MB,保守估計京津冀地區10 萬個重點監測企業,假設每個企業的監測點為100 個,大氣監測一年的數據量為:360 MB×100 000×100=3.35 PB.如此多的維度和數據數量,以及對數據傳輸速度、存儲和提取速度等方面的實際要求,遠遠超出傳統數據管理和分析方法所能達到的限度,對超海量數據處理的多維度分析、性能優化、彈性擴展等方面提出技術挑戰.
通過對數據湖、彈性擴展、大規模并行處理、流處理、機器學習等技術的研究,應對環境評估大數據需求,我們設計環境評估業務的數據管理平臺,實現適用的數據資源傳輸交換、存儲管理和分析處理功能,為環境評估業務應用提供統一的數據支撐服務.經過前期調研分析,我們利用基礎關系型數據庫、分析型數據庫以及Hadoop 平臺的部分組件搭建了NoSQL和SQL 集成一體的環評文件數據提取系統,通過較為簡單的數據建模,初步驗證了大數據技術平臺的能力,包括能夠實現數據傳輸交換、管理監控、共享開放、分析挖掘等基本功能,支撐分布式計算、流式數據處理、大數據關聯分析、趨勢分析、空間分析,支撐大數據產品研發和應用等,這些為后續付諸實用的環境評估大數據管理平臺,做出相應的初步驗證.
環保監測與評估的數據分析維度眾多,而且數據量日益增長,造成歷史數據需要壓縮保存,部分數據需要定期清空以回收資源,另外,不同維度的數據如大氣、土壤、水質等數據需要分庫分路徑保管,這些對存儲和計算資源提出了彈性擴展、回收重用的重要需求.
彈性擴展指的是云應用本身的一種動態的擴展,也就是在云應用運行期間實現支撐云應用的虛擬機實例個數的動態增加或者減少[2].彈性擴展并不是簡單的資源復制,而是通過計算能力、存儲能力的調配以及配套的集群、安全管控等功能形成的完整的資源按需分配,可以在不改變平臺部署架構的情況下實現環保海量數據動態增容功能.
流式數據是大數據環境下的一種數據形態,與靜態、批處理和持久化的數據庫處理相比,流式計算以連續、無邊界和瞬時性為特征,適合高速并發和大規模數據實時處理的場景[3].當前很多環境評估數據,例如噪聲數據,具有多源并發、瞬間發生、快速失效的特點,采用流處理技術就實時采集和處理瞬時數據的相關指標,從而解決環保監測的實時性問題.
大數據環境下,流式數據作為一種新型的數據類型,是實時數據處理所面向的數據類型,其相關研究發展迅速.這種實時的流式數據,存在如下幾個特征:
1)實時、高速:數據能以高并發的方式迅速到達,業務計算要求快速連續相應.數據處理的速度至少能夠匹配數據到達的速度.
2)無邊界:數據到達、處理和向后傳遞均是持續不斷的.
3)瞬時性和有限持久性:通常情況下,原始數據在掃描處理后丟棄,并不進行保存;只有計算結果和部分中間數據在有限時間內被保存和向后傳遞.
4)價值的時間偏倚性:隨著時間的流逝,數據中所蘊含的知識價值往往也在衰減,也即流中數據項的重要程度是不同的,最近到達的數據往往比早先到達的數據更有價值.
數據湖是一種在系統或存儲庫中以自然格式存儲數據的方法,它有助于以各種模式和結構形式配置數據.數據湖的主要思想是對企業中的所有數據進行統一存儲,從原始數據(這意味著源系統數據的精確副本)轉換為用于報告、可視化、分析和機器學習等各種任務的轉換數據.湖中的數據包括結構化數據(行和列數據)、半結構化數據(CSV、XML、JSON 的日志)、非結構化數據(電子郵件,文檔,PDF)和二進制數據(圖像、音頻、視頻)等.數據湖能夠形成一個集中式數據存儲,容納所有形式的數據[4].
源于數據倉庫概念的數據湖理論,更好地解決了數據倉庫和大數據處理技術表現出來的部分弊端,即能夠接收來自多種數據源的輸入,同時保留原始數據的真實性和數據傳輸狀態,并滿足實時分析的需要,也能夠作為數據倉庫滿足批處理和數據挖掘的需要,從而滿足環保監測與評估數據需要多種數據源的集成、不限制數據對象集合、保留數據精確度的處理要求,例如大氣污染和地域、氣象等等多種因素相關,只有通過數據湖進行數據融合才能進行有針對性的后續處理.
數據湖具有如下作用.
1)數據的集中存放管理:數據湖是平臺用于存放所有所需數據的地方,這些數據包括來自傳統數據庫的結構化數據和非結構化的文本數據,包括企業內部生成的數據,外部數據以及服務數據,也包括媒體數據,傳感器采集數據和很多企業正在學習使用的遙測數據.
2)強大的交叉分析平臺:數據湖可以看作是一個大數據分析平臺,不僅僅可以實現所有種類數據的存放,也可以用于數據分析,以及找到數據新的關聯性.許多商業分析中的突破并不是來源于數據的多少和分析的熟練程度,而是來源于能顯示出商業表現的數據新式組合.
3)為商業個體提供所需數據的最優解:數據湖也同樣協調了商業個體真正需要的數據和企業經常使用標準數據的不匹配問題,它是一種共享資源,不僅包含了精心管理的數據,也提供了一個商業個體搜尋真正需要的數據組合的平臺.
大規模并行處理(MPP)系統由眾多松耦合處理單元組成,每個單元內的處理器都有自己私有的資源,如總線、內存、硬盤等,在每個單元內都有操作系統和管理數據庫的實例副本,這種結構最大的特點是不共享資源[5].MPP 是將任務并行分散到多個服務器和存儲節點上,在每個節點上計算完成后,將各自部分的結果匯總在一起得到最終的結果.
隨著對環境評估時效性要求的提高,大量環境監測采集數據需要得到快速處理,以便及時為決策和執行提供依據,因此,我們有必要采用大規模并行處理技術來加速海量數據的處理,其中主要使用到MPP 架構的數據庫.
機器學習技術包括數據存儲和模式設計、不同組件的模塊化、單獨架構每個獨立的可擴展組件、系統和性能測試,以及數據可視化等.典型的機器學習工作流包括,使用數據流處理技術讀取不同來源的數據,使用SQL 過濾、聚合,并執行數據集上的其他初始化處理,然后,使用計算引擎將處理過的數據轉換以創建特征向量,對模型進行訓練和評估,并使機器學習與SQL 解析和流處理技術達到深度集成[6].環境監測數據具有數據量大,數據維度復雜的特點,并且常用查詢維度的集中度很大,所以深度學習環境監測的數據訪問規律可以大大提升數據訪問速度.
在機器學習技術的實現中,我們采用深度學習技術.深度學習是機器學習中表征學習算法,使用包含復雜結構或由多重非線性變換構成的多個處理層對數據進行高層抽象計算,將用于監督式或半監督式的特征學習和分層特征提取的高效算法來替代手工獲取.基于數據的深度學習過程是數據庫系統掌控應用系統的訪問規律,動態調整系統資源,找到最快速、最高效的訪問路徑,給用戶帶來越用越快的用戶體驗的過程[7].
環境評估大數據管理平臺采用云計算環境作為基礎設施,即以云計算基礎架構即服務(IAAS)層作為物理支撐,從中得到可彈性擴展的計算服務、存儲服務、數據傳輸服務、安全管控服務等基礎服務.環境評估大數據管理平臺的主要作用是大數據管理,是整個環境評估服務系統的核心,分為數據層、分析層和業務層,通過對各類數據的收集、抽取、存儲、清洗、標準化、關聯、標記、深度加工、可視化等處理,形成數據資源中心,并為上層應用提供統一數據服務.
平臺的數據層負責大數據存儲,將各種類型和特點的數據統一存儲管理,為分析層提供海量數據和快速提取的服務功能,分析層負責大數據融合,通過流處理、并行計算、深度學習等技術將數據進行融合處理,為業務層提供可用原始數據和整合數據的靈活訪問服務功能,業務層負責業務應用的大數據接入,對數據進行綜合提取和展現,提供數據的增值服務功能,供給不同的業務應用進行接入和使用,參見圖1.
3.1.1 數據層
數據層主要是通過數據湖技術和彈性擴展技術對數據進行接收、存儲和初步處理,主要解決了海量數據和多元數據問題,包括來自環保數據采集系統和業務系統的結構化數據,和來自采集端點的實時數據、業務系統采集生成的多種格式非結構化數據等.

圖1 大數據管理平臺架構
(1)結構化數據的行式存儲和列式存儲
使用最廣的數據存儲方式是行式存儲,把一行數據作為一個整體來存儲,但行式存儲在維護大量的索引和物化視圖場景下,在處理時間和存儲空間方面成本過高.列式存儲數據庫以列為單位進行數據存儲,每一列單獨存放,并由一個線程來處理,這樣既可以充分利用處理器的多核心特性,又能夠大大降低系統I/O 開銷,因此我們采用擅長隨機讀操作的行式數據庫與擅長條件查詢的列式數據庫相結合的方式,來管理結構化數據.
作為CDM的各參與方,項目業主、咨詢機構、第三方審核機構、金融機構等主體,應及時關注國內碳交易市場建立的相關政策和進展,夯實自身基礎,盡早布局國內市場,為將來扮演好各自角色做好充分準備。
(2)非結構化數據的分布式存儲和彈性擴展
非結構化數據需要分布式存儲,并且保證按需的彈性擴展功能.平臺的分布式存儲充分利用HDFS 的低成本、高容錯、高吞吐特性來管理數據,經由并行數據路徑完成與MPP 數據庫服務器的數據交換,通過彈性控制管理模塊聯動數據協調分發模塊提供數據的彈性擴展管理,參見圖2.
對于彈性擴展在彈性控制管理模塊中采用特定語言進行描述,通過描述中的內容進行靈活的擴展,例如,描述一個擴展節點,包括硬件、軟件特征和配置必須明確規定,并以特定的方式進行表述,再使用自動化任務解析、執行這些相關的描述文檔,從而實現相應擴展功能.
(3)支持處理的數據類型
平臺支持對常用的所有數據類型進行處理,包括:
1)關系數據:支持關系數據的各種數值類型、字符類型、二進制數據類型、日期時間類型、布爾類型等.
2)空間數據:支持幾何特征和離散特點的地理要素,即空間對象數據,如點、線、面、體等對象的數據組件,以及GIS 柵格、圖層、坐標等數據存取.
3)NoSQL 數據:支持NoSQL 數據類型、位串類型、數組類型、復合類型等.
平臺對數據的管理都采用圖形化界面進行操作,例如對NoSQL 數據的管理已實現如圖3的界面.

圖2 彈性擴展

圖3 NoSQL 數據管理界面
3.1.2 分析層
分析層對數據進行融合處理,是一種針對環保檢測和評估數據的容量大、種類多、增長速度快、價值大等特征的集成技術,包括:流處理技術、大規模并行處理技術、機器學習技術、并行算法等.
平臺通過增加并行度確保使用整個集群的資源,而不是把任務集中在幾個特定的節點上.對于包含Apache Spark Shuffle 的操作,增加其并行度以確保更為充分地使用集群資源;同時,流處理默認將接收到的數據序列化后存儲,以減少內存的使用,但是序列化和反序列化需要更多的處理器資源,因此優化的序列化方式和自定義的序列化接口可以更高效地使用處理器資源,參見圖4.

圖4 流處理序列和反序列
在流處理中,任務之間有可能存在依賴關系,后面的任務必須確保前面的作業執行結束后才能提交,通常情況下分析型數據庫框架能夠高效地確保任務及時分發.但是,如果前面的任務執行的時間超出了批處理時間間隔,那么后面的任務就無法按時提交,這樣就會進一步拖延接下來的任務,造成后續任務的阻塞,因此分析層會設置一個合理的批處理間隔以確保作業能夠在這個批處理間隔內結束;同樣,當批處理間隔非常小(小于500 毫秒)時,提交和分發任務的延遲就變得不可接受了,通過經驗對比,我們采用Spark 的Standalone和Coarse-grained Mesos 模式減少因任務提交和分發所帶來的延遲.
對于數據的底層模型設計,因需要進行基于多維模型的交叉分析來有效發現問題,所以數據的維度越豐富所能實現的交叉也越豐富和靈活;但相應的,如果要盡可能地豐富各維度的交叉分析,對基層模型的要求也就越高.因此,我們引用數據立方體來實現模型設計,參見圖5.

圖5 數據立方體示例
用數據立方體來拓展數據細節有兩種方向,一類是縱深拓展,也就是基于一個維度的細分,例如一個月細分到每一天,一條記錄將會被拓展成30 條;另一類是橫向拓展、多個維度的交叉,就像立方體中添加了空氣污染物維和區域維.這樣存儲的數據就從原本單一的時間維度擴展成了時間、污染物和區域三個維度,也就是三維立方體所能展現的形式,而且維度可以繼續擴展,四個、五個直到數十個,理論上都是可行的.以三個維度進行舉例:對于數據存儲而言,橫向的拓展與縱深拓展的影響是一樣的,記錄數都是以倍乘的方式增長,假設有20 個污染物大類,再加上十六個區,那么經過縱深和橫向拓展之后,原先每月的1 條記錄就變成了:1 × 30 × 20 × 16 = 9600 (條).
在功能實現方面,經過數據的多維分析后,平臺在數據準備區進行ETL 處理,數據經過抽取、轉換后加載到數據倉庫中,分析完主題和數據元后建立數據模型(概念模型、邏輯模型、物理模型)并形成事實表和緯度表,然后通過粒度分析將歷史記錄先抽取整合,最后再根據決策者可能用到的數據集合分解成若干記錄,同時利用OLAP 工具技術進行數據的分析導出,以供給業務層進行數據可視化處理.
3.1.3 業務層
在業務層,系統關注將分析層提供的數據進行可視化展現,其中的重點就是使用知識圖譜.知識圖譜基于圖的數據結構,由節點和邊組成,每個節點表示現實世界中存在的具有多種屬性的“實體”,每條邊為實體與實體之間的“關系”.知識圖譜把所有不同種類的信息連接在一起而得到一個關系網絡,提供了從“關系”的角度去分析問題的能力,是關系的最有效的表示方式[8].
基于知識圖譜,我們也嘗試提供數據智能搜索服務.智能搜索的功能類似于知識圖譜在互聯網搜索引擎上的應用,也就是說,對于每一個搜索的關鍵詞,我們可以通過知識圖譜來返回更豐富,更全面的信息.比如搜索某個監測點的污染情況,我們的智能搜索引擎可以返回與這個監測點相關的所有類型的污染記錄,包括水污染、大氣污染、土壤污染等,并同時返回區域涉及的建設項目信息、污染物排放標準等環境保護相關信息,參見圖6.
另外,通過可視化技術把復雜的信息以非常直觀的方式呈現出來,參見圖7,使得我們對隱藏信息的情況也一目了然.數據可視化是指以柱狀圖、餅狀圖、線型圖等圖形方式展示數據,讓決策者更高效地了解業務的重要信息和細節層次.大量實踐表明,人通過圖形獲取信息的速度比通過閱讀文字獲取信息的速度要快很多,因此通過可視化展現配合門戶服務,幫助環保局管理人員實現高效、系統的數據識別和決策.

圖6 知識圖譜關聯

圖7 數據可視化展現示例
云基礎架構使得計算、存儲、網絡等可以通過資源池化而按需獲得,我們重點關注的是這些資源的整合以及基于此的動態變化管理策略,形成一個有機的、可靈活調度和擴展的資源池,面向大數據管理平臺實現自動化的部署、監控、管理和運維.
參見圖8,我們采用典型的云基礎架構融合部署方案.例如,通過虛擬防火墻與虛擬機之間的融合,可以實現虛擬防火墻對虛擬機的感知、關聯,確保虛擬機遷移、新增或減少時,防火墻策略也能夠自動關聯.此外,虛擬機與負載均衡設備形成聯動,即在業務突發時,自動按需增加相應數量的虛擬機,與負載均衡聯動實現業務負載分擔;同時,當業務量減小時,可以自動減少相應數量的虛擬機,節省資源.不僅有效解決虛擬化環境中面臨的負載突變問題,而且大大提升了業務響應的效率和智能化.再有,云基礎架構通過虛擬化技術與管理層的融合,提升了IT 系統的可靠性.例如,虛擬化平臺可與網絡管理、計算管理、存儲管理聯動,當設備出現故障影響虛擬機業務時,可自動遷移虛擬機,保障業務正常訪問;對于設備正常、操作系統正常、但某個業務系統無法訪問的情況,虛擬化平臺還可以與應用管理聯動,探測應用系統的狀態,例如Web、應用、數據庫等響應速度,當某個應用無法正常提供訪問時,自動重啟虛擬機,恢復業務正常訪問.

圖8 云基礎架構融合部署
本文對環境評估大數據管理平臺涉及的關鍵技術和平臺邏輯架構、物理架構設計進行闡述,該平臺是行業數據和數據庫技術相結合的系統工程,以大數據技術為支撐,通過彈性擴展、流處理、數據湖、并行處理、機器學習等技術為手段,不斷結合環境監測與評估數據的需求分析調整技術方法,實現環境監測和軟件工程的軟著陸,為開展生態環境綜合決策、環境監管和公共服務提供基礎數據支撐,為生態環境管理和決策提供服務.