郭曉明,梅 鵬
(中國電子科技集團公司第三十八研究所,安徽 合肥 230088;安徽省公共安全應急信息技術重點實驗室,安徽 合肥 230088)
儲罐廣泛應用于石油化工行業,存儲的化學品普遍具有毒性、易燃易爆、易揮發、受熱易膨脹等特征,極易造成火災、爆炸事故或環境污染。當一定范圍內化學物品存儲量超過臨界量的儲罐設施集合,即構成儲罐區重大危險源。目前,安全生產隱患排查多依靠人力排查,難以明確界定安全和危險狀態,且嚴重缺乏時效性。對儲罐區重大危險源實時動態監測,然后對監測數據進行實時智能分析,能為企業安管人員及時發現異常情況提供科學依據。康榮學基于GIS提出建設重大危險源安全監測預警系統,實現傳統視頻監控和綜合安全參數監控;蔣誠航等人基于組態系統建立了儲罐區液位、壓力等參數監測預警系統,實現動態參數和視頻監控。前人多將研究焦點聚集在重大危險源智能監控領域,較少考慮如何高效處理所得數據并快速發現異常模式。這方面可以借鑒互聯網海量大數據處理及智能電網大數據處理方法:陳付梅等人提出利用分布式數據流處理系統解決大數據環境下的數據流處理問題;王桂蘭等人基于分布式流式處理平臺Spark Streaming研究了大規模用電數據流的快速聚類和異常檢測問題。本文引入大數據流式處理技術,提出利用Storm流式計算平臺對儲罐區重大危險源實時監測數據流進行異常檢測的技術處理框架,實現實時數據采集、數據接入、數據處理、結果輸出與存儲。
儲罐區重大危險源異常檢測處理框架如圖1所示。
基于大數據流式計算系統,對實時監測系統產生的數據流進行異常檢測。圖1中,數據采集是通過對儲罐區新建感知設備采集裝置、貯存物狀態以及環境參數;數據接入是通過數據接口連接感知設備采集到的各類監測數據,并讀取至流式處理系統的數據處理組件;流式處理對數據不預先存儲而是直接進行閾值判斷;最后輸出并存儲異常結果。

圖1 儲罐區重大危險源異常檢測處理框架
本文針對儲罐區重大危險源可能的風險點,確定需要監測采集的參數包括溫度、可燃氣體濃度、壓力、液位等。該環境下傳感器采集到的數據類型主要是時間序列數據,既要將不同傳感器采集到的數據分隔開,又要保證同一傳感器采集到的數據能按照時間先后順序有序處理。
數據采集模塊如圖2所示。本文設計了一種基于Kafka分布式發布訂閱消息系統的數據采集系統架構,如圖2所示。基于Kafka的數據采集過程如下:通過溫度傳感器、濃度傳感器、壓力傳感器、液位傳感器及其他安全參數監測傳感器采集儲罐區設備參數、危化品狀態、環境狀況等信息;傳感器將采集到的數據經過TCP/UDP通訊協議傳送至數據采集節點;數據采集節點處理接收到的數據并進行封裝發送至消息調度分發模塊;消息調度分發模塊對數據進行簡單處理后分發至Kafka集群的各個主題分區,Kafka集群繼續將數據轉發至數據接入模塊。

圖2 數據采集模塊
Storm框架下的數據接入模塊設計如圖3所示,Spout組件作為Storm框架下的數據源,外部數據通過IRichSpout接口實現接入;接著將原始外部數據封裝成Tuple元組發送至待處理隊列,由Bolt組件進行數據處理。為了保證時間序列數據處理的順序性,每個Tuple元組封裝完成后會有唯一的ID標識,用以根據ID順序對計算結果進行匯總。
滑動窗口模型能滿足數據實時、高效批量處理的計算要求。滑動窗口模型的滑動窗口大小始終固定不變,滑動窗口中始終保存的是最新批次的數據。時間滑動窗口模型是通過窗口使用的起始時間點與終止時間點之間的差值表示窗口大小,這種方法更適用于本文重大危險源監測場景中時間序列數據類型的異常檢測需求。圖4所示的時間滑動窗口,滑動窗口大小為D,滑動距離為d,即有D/d個時間基本窗口,這些基本窗口可以同一時間并行計算,每隔時間d得到最近D時間進程內的異常數據。
儲罐區重大危險源實時監測采集的參數類型包括設備溫度、壓力、液位、可燃氣體濃度等。在正常情況下,這些參數的波動范圍應當處于一定合理區間內,通過設定并輸入各個參數的合理變化區間可以實現閾值判斷,超過系統設定閾值后則視為異常數據。

圖3 數據接入模塊

圖4 滑動窗口模型示意圖

圖5 數據處理模塊
數據處理模塊設計如圖5所示,數據元組Tuple接入Storm系統的待處理隊列后,分別經過滑動窗口模型、字段分割、閾值判斷步驟實現異常檢測處理,最后輸出異常數據。滑動窗口模型通過RollingBolt實現,利用RollingBolt定義滑動窗口大小D及滑動距離d,即有D/d數量的窗格接收數據元組等待處理;字段分割則通過SplitBolt實現,利用SplitBolt分割窗格發送的數據元組字段,得到符合閾值處理要求的字段形式;閾值判斷通過ThresholdBolt實現,定義各參數數據的合理區間,檢驗各字段的數值是否在合理區間內,超過合理區間則視為異常數據;最后輸出異常檢測結果。
Storm框架本身不涉及對數據處理結果進行存儲,但是可以通過自行定義Bolt組件實現對檢測結果的存儲。可以定義DatabaseBolt實現將檢測結果保存至數據庫,便于后期的查詢和檢索;或是定義FileBolt實現直接將檢測結果保存至數據文件,便于后期的備份和轉移;或是直接保存至云平臺HDFS中。視后期對異常檢測結果的處理需求而定。
本文圍繞儲罐區重大危險源的異常檢測問題,提出基于Storm流式處理平臺,對實時監測數據流進行異常檢測的處理框架,實現數據采集、數據接入、數據處理、結果輸出和存儲的全過程。本文的技術框架對工業大數據環境下重大危險源的異常模式快速檢測問題具有參考和應用價值。