一種面向安全監(jiān)測業(yè)務分析的etl框架設計方法
【技術領域】
[0001] 本發(fā)明涉及一種面向安全監(jiān)測業(yè)務分析的ETL框架設計方法,具體涉及一種面向 大壩工程安全監(jiān)測領域中安全監(jiān)測業(yè)務分析的數(shù)據(jù)抽取-轉換-加載框架的設計,實現(xiàn)對 安全監(jiān)測異構數(shù)據(jù)的高度統(tǒng)一。
【背景技術】
[0002] 大壩是我國國民經濟建設及社會發(fā)展的重要基礎設施,提高對大壩的安全認識和 管理水平,對發(fā)揮大壩的作用具有重大意義。為保證大壩在籌備期、建設期及運行期各個階 段的壩體安全,根據(jù)壩型、地質條件的不同,一般的大壩安全監(jiān)測體系設置有大壩強震監(jiān)測 系統(tǒng)、水庫水情測報系統(tǒng)、應力應變監(jiān)測系統(tǒng)及壩內溫度裂縫專項監(jiān)測等。
[0003] 由于大壩安全的監(jiān)測項目繁多且大多互相影響,現(xiàn)階段大壩安全監(jiān)測面臨多套安 全監(jiān)測系統(tǒng)進行整理與集成的迫切需求??紤]到系統(tǒng)直接整合難度大,收效小,采用系統(tǒng)數(shù) 據(jù)整合的方式無疑更加合理。
[0004] 數(shù)據(jù)的集中存儲并不是大壩安全監(jiān)測數(shù)據(jù)整合的最終目的,實現(xiàn)異構數(shù)據(jù)的高度 統(tǒng)一才能為后續(xù)的決策支持工作打下夯實的基礎。數(shù)據(jù)倉庫技術可以保證數(shù)據(jù)的準確性、 一致性、易用性和綜合性,為各類決策系統(tǒng)提供安全統(tǒng)一的數(shù)據(jù)源。利用數(shù)據(jù)倉庫的特性, 可以高效的進行數(shù)據(jù)挖掘(DM)、聯(lián)機分析(0LAP)等后續(xù)工作。在大壩安全監(jiān)測領域,建立 基于異構數(shù)據(jù)源的數(shù)據(jù)倉庫已迫在眉睫。
[0005] 因此,如何解決傳統(tǒng)的ETL框架處理該類業(yè)務數(shù)據(jù)時存在的并發(fā)限制和可擴展性 等問題,在分析大壩安全領域實際產生數(shù)據(jù)的結構的基礎上,是面向安全監(jiān)測業(yè)務分析必 須解決的問題,也是本發(fā)明所要解決的問題。
【發(fā)明內容】
[0006] 發(fā)明目的:為了解決傳統(tǒng)的ETL框架處理該類業(yè)務數(shù)據(jù)時存在的并發(fā)限制和可擴 展性等問題。由于大壩安全的監(jiān)測項目繁多且大多互相影響,現(xiàn)階段大壩安全監(jiān)測面臨多 套安全監(jiān)測系統(tǒng)進行整理與集成的迫切需求??紤]到系統(tǒng)直接整合難度大,收效小,采用系 統(tǒng)數(shù)據(jù)整合的方式無疑更加合理。如何實現(xiàn)對安全監(jiān)測異構數(shù)據(jù)的高度統(tǒng)一,本發(fā)明給出 一種面向安全監(jiān)測業(yè)務分析的ETL框架設計方法解決此問題。
[0007] 技術方案:一種面向安全監(jiān)測業(yè)務分析的ETL框架設計方法,包括:
[0008] (1)數(shù)據(jù)抽?。菏褂肵ML適配器確認數(shù)據(jù)源;XML適配器采用XML配置文件的方式, 確認數(shù)據(jù)源和數(shù)據(jù)倉庫兩方面的連接信息,并檢查和確定數(shù)據(jù)源是否可以提供數(shù)據(jù)倉庫需 要的數(shù)據(jù)。使用增量抽取技術引擎進行數(shù)據(jù)抽??;在Storm平臺的Spout組件中,利用守護 進程nextTuple()方法,可以定時利用時間戳將源數(shù)據(jù)與數(shù)據(jù)倉庫數(shù)據(jù)進行對比,若有增 量數(shù)據(jù),則可通過nextTuple()方法進行處理后提交給后續(xù)組件進行執(zhí)行,從而完成增量 數(shù)據(jù)抽取的工作。
[0009] (2)數(shù)據(jù)處理引擎通過數(shù)據(jù)轉換算法家族來分配具體的數(shù)據(jù)處理策略,包括:1、 選擇過濾算法;2、分離/合并算法;3、排序算法;4、匯總算法;5、公式計算算法;6、字段轉 換算法。其中,最常用的算法策略為選擇過濾算法和分離/合并算法。Redis存儲引擎可用 于緩存多個設備的臨時記錄信息,通過Storm平臺的分布式并發(fā)特性,多個設備信息可以 并行的進行處理,當每個設備的記錄緩存到一定數(shù)據(jù)量后,可以將這些數(shù)據(jù)提交給數(shù)據(jù)處 理引擎進行處理,數(shù)據(jù)處理引擎處理后的中間結果也可以繼續(xù)緩存到Redis緩存引擎中, 通過這種機制,在數(shù)據(jù)轉換中,在不涉及到數(shù)據(jù)倉庫相關數(shù)據(jù)的情況下,僅從數(shù)據(jù)源數(shù)據(jù)出 發(fā),不借助于任何數(shù)據(jù)倉庫相關的關系型數(shù)據(jù)存儲設備,即可進行大量的數(shù)據(jù)轉換計算任 務。
[0010] (3)數(shù)據(jù)加載中主要為最初加載和增量加載兩種裝載類型:最初加載主要利用 "批量加載引擎"進行處理。增量加載則使用"批量加載引擎"和"實時加載引擎"結合的方 式進行處理。
【附圖說明】
[0011] 圖1為面向安全監(jiān)測業(yè)務分析的ETL框架設計方法結構圖;
[0012] 圖2為面向安全監(jiān)測業(yè)務分析的ETL框架設計方法數(shù)據(jù)處理引擎結構圖;
[0013] 圖3為面向安全監(jiān)測業(yè)務分析的ETL框架設計方法Redis處理引擎結構圖。
【具體實施方式】
[0014] 下面結合具體實施例,進一步闡明本發(fā)明。
[0015] 圖1為面向安全監(jiān)測業(yè)務分析的ETL框架設計方法結構圖。面向安全監(jiān)測業(yè)務分 析的ETL框架設計方法包括數(shù)據(jù)抽取模塊、數(shù)據(jù)轉換模塊和數(shù)據(jù)加載模塊。
[0016] 數(shù)據(jù)抽取模塊是指從多個異構數(shù)據(jù)源中獲取源數(shù)據(jù)的過程,通過使用XML適配器 確認數(shù)據(jù)源和使用增量抽取技術引擎進行數(shù)據(jù)抽取。
[0017] 數(shù)據(jù)轉換模塊是連接數(shù)據(jù)抽取過程與數(shù)據(jù)加載過程的紐帶,在該過程中使用"數(shù) 據(jù)處理引擎"和"Redis存儲引擎"兩個組件進行數(shù)據(jù)轉換。
[0018] 數(shù)據(jù)加載模塊,數(shù)據(jù)的加載主要為最初加載和增量裝載兩種裝載類型,最初加載 主要利用"批量加載引擎"進行處理,增量裝載則使用"批量加載引擎"和"實時加載引擎" 結合的方式進行處理。
[0019] 圖2為面向安全監(jiān)測業(yè)務分析的ETL框架設計方法數(shù)據(jù)處理引擎結構圖。數(shù)據(jù)處 理引擎通過數(shù)據(jù)轉換算法家族來分配具體的數(shù)據(jù)處理策略,包括:1、選擇過濾算法;2、分 離/合并算法;3、排序算法;4、匯總算法;5、公式計算算法;6、字段轉換算法。其中,最常用 的的算法策略為選擇過濾算法和分離/合并算法。
[0020] 圖3為面向安全監(jiān)測業(yè)務分析的ETL框架設計方法Redis處理引擎結構圖。Redis 存儲引擎的主要作用是緩存數(shù)據(jù)轉換過程中需要存儲的中間結果。對于高并發(fā)的應用,若 采用數(shù)據(jù)庫的形式來存儲中間結果,首先,對數(shù)據(jù)庫的讀寫壓力非常巨大,很容易造成數(shù) 據(jù)庫的宕機,其次,假如將大量的中間結果存入數(shù)據(jù)庫,對數(shù)據(jù)庫的容量也是一個巨大的考 驗。針對上述情況,采用內存系統(tǒng)來緩存中間結果可以大幅度提高系統(tǒng)的讀寫效率,且緩存 的空間易于清空重置,不存在存儲空間大小的限制。
[0021]數(shù)據(jù)轉換模塊中的Redis存儲引擎可用于緩存多個設備的臨時記錄信息,通過 Storm平臺的分布式并發(fā)特性,多個設備信息可以并行的進行處理,當每個設備的記錄緩存 到一定數(shù)據(jù)量后,可以將這些數(shù)據(jù)提交給數(shù)據(jù)處理引擎進行處理,數(shù)據(jù)處理引擎處理后的 中間結果也可以繼續(xù)緩存到Redis緩存引擎中,通過這種機制,在數(shù)據(jù)轉換模塊,在不涉及 到數(shù)據(jù)倉庫相關數(shù)據(jù)的情況下,僅從數(shù)據(jù)源數(shù)據(jù)出發(fā),不借助于任何數(shù)據(jù)倉庫相關的關系 型數(shù)據(jù)存儲設備,即可進行大量的數(shù)據(jù)轉換計算任務,可大幅提高系統(tǒng)的并發(fā)性能和讀寫 性能。
[0022] 一種面向安全監(jiān)測業(yè)務分析的ETL框架設計方法,包括:
[0023] (1)數(shù)據(jù)抽取:使用XML適配器確認數(shù)據(jù)源;XML適配器采用XML配置文件的方式, 確認數(shù)據(jù)源和數(shù)據(jù)倉庫兩方面的連接信息,并檢查和確定數(shù)據(jù)源是否可以提供數(shù)據(jù)倉庫需 要的數(shù)據(jù)。使用增量抽取技術引擎進行數(shù)據(jù)抽??;在Storm平臺的Spout組件中,利用守護 進程nextTuple ()方法,可以定時利用時間戳將源數(shù)據(jù)與數(shù)據(jù)倉庫數(shù)據(jù)進行對比,若有增 量數(shù)據(jù),則可通過nextTuple ()方法進行處理后提交給后續(xù)組件進行執(zhí)行,從而完成增量 數(shù)據(jù)抽取的工作。
[0024] (2)數(shù)據(jù)處理引擎通過數(shù)據(jù)轉換算法家族來分配具體的數(shù)據(jù)處理策略,數(shù)據(jù)轉換 算法家族包括:1、選擇過濾算法;2、分離/合并算法;3、排序算法;4、匯總算法;5、公式計 算算法;6、字段轉換算法等。其中,最常用的算法策略為選擇過濾算法和分離/合并算法。 本文提出了一種基于預處理的分配具體的數(shù)據(jù)處理策略。下面說明數(shù)據(jù)處理引擎如何通過 數(shù)據(jù)轉換算法家族來分配具體的數(shù)據(jù)處理策略。在取得需要進行處理的數(shù)據(jù)時,對已有數(shù) 據(jù)進行備份,并將部分數(shù)據(jù)同時使用數(shù)據(jù)轉換算法家族的算法進行轉換,并及時記錄不同 算法對部分數(shù)據(jù)的處理效率,選擇處理時間最短、效率最高的算法進行下一步運算,即可完 成分配具體的數(shù)據(jù)處理策略。
[0025] Redis存儲引擎可用于緩存多個設備的臨時記錄信息,通過Storm平臺的分 布式并發(fā)特性,多個設備信息可以并行的進行處理,當每個設備的記錄緩存到一定數(shù)據(jù) 量后,可以將這些數(shù)據(jù)提交給數(shù)據(jù)處理引擎進行處理,數(shù)據(jù)處理引擎處理后的中間結果 也可以繼續(xù)緩存到Redis緩存引擎中。對于緩存記錄的替換和提交,通過設定一個最 小空間minimum (Vo 1 ),在更新緩存記錄之前,判斷該設備緩存空間的大小和最小空間 minimum(Vol)的大小,如果大于最小空間,繼續(xù)插入新的緩存數(shù)據(jù),如果小于最小空間,停 止插入新的數(shù)據(jù),并將數(shù)據(jù)提交到數(shù)據(jù)處理引擎。
[0026] 通過這種機制,在數(shù)據(jù)轉換中,在不涉及到數(shù)據(jù)倉庫相關數(shù)據(jù)的情況下,僅從數(shù)據(jù) 源數(shù)據(jù)出發(fā),不借助于任何數(shù)據(jù)倉庫相關的關系型數(shù)據(jù)存儲設備,即可進行大量的數(shù)據(jù)轉 換計算任務。
[0027] (3)數(shù)據(jù)加載中主要為最初加載和增量加載兩種裝載類型:最初加載主要利用 "批量加載引擎"進行處理。增量加載則使用"批量加載引擎"和"實時加載引擎"結合的方 式進行處理。
[0028] 本發(fā)明提出的面向安全監(jiān)測業(yè)務分析的ETL框架設計方法,所述步驟(1)數(shù)據(jù)抽 取的具體過程如下:
[0029] (1. 1)使用XML適配器確認數(shù)據(jù)源;XML設配器的主要功能是解決ETL數(shù)據(jù)抽取需 求環(huán)節(jié)中的確認數(shù)據(jù)源需求,通過該需求可知,由于ETL的目的數(shù)據(jù)庫為數(shù)據(jù)倉庫,則需要 確認數(shù)據(jù)源和數(shù)據(jù)倉庫兩方面的連接信息,并檢查和確定數(shù)據(jù)源是否可以提供數(shù)據(jù)倉庫需 要的數(shù)據(jù)。
[0030] XML適配器采用XML配置文件的方式,在connectConfig文件中對數(shù)據(jù)源及數(shù)據(jù)倉 庫進行了配置,其具體配置方式如下所示:
[0031]
[00