• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      核電行業(yè)實(shí)時(shí)ETL系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

      2017-06-10 19:41:51王尉
      電子技術(shù)與軟件工程 2017年11期

      摘 要 本文以核電企業(yè)的數(shù)據(jù)倉庫需求為切入點(diǎn),為了滿足決策支持類應(yīng)用對(duì)數(shù)據(jù)及時(shí)性的要求,提出了一種具有數(shù)據(jù)緩存機(jī)制的實(shí)時(shí)數(shù)據(jù)倉庫ETL架構(gòu),該架構(gòu)能夠均衡系統(tǒng)開銷,在突發(fā)大數(shù)據(jù)量的情況下保持決策支持類應(yīng)用的高服務(wù)質(zhì)量(QoS)。該ETL架構(gòu)已基于Informatica產(chǎn)品開發(fā)實(shí)現(xiàn),其合理性與有效性得到了驗(yàn)證。

      【關(guān)鍵詞】實(shí)時(shí)數(shù)據(jù)倉庫 ETL 數(shù)據(jù)緩存

      1 引言

      隨著我國核電信息化水平的提高,核電企業(yè)已經(jīng)進(jìn)入到流程特征量化、績效驅(qū)動(dòng)、以信息技術(shù)為依托的發(fā)展階段。數(shù)據(jù)倉庫是管理信息并分析利用的最有效的方式,可為核電企業(yè)進(jìn)行各級(jí)流程的績效評(píng)估,改善決策過程,并便于同行對(duì)標(biāo)。

      通常,ETL過程是以“脫機(jī)”方式執(zhí)行的。數(shù)據(jù)以批傳輸?shù)姆绞綇脑粗谐槿?,進(jìn)行轉(zhuǎn)換,清洗,再加載到數(shù)據(jù)倉庫。這一組活動(dòng)會(huì)在一個(gè)專用的時(shí)間窗口中執(zhí)行,通常是在夜間,以防給源系統(tǒng)帶來過大的工作負(fù)荷。然而,核電企業(yè)的部分應(yīng)用對(duì)數(shù)據(jù)倉庫中數(shù)據(jù)的及時(shí)性有很強(qiáng)的要求,例如缺陷預(yù)警、輻射防護(hù)、運(yùn)行數(shù)據(jù)分析等領(lǐng)域的OLAP、數(shù)據(jù)挖掘、可視化報(bào)表等應(yīng)用,它們可能只能接受分鐘級(jí)甚至秒級(jí)的數(shù)據(jù)延遲。單純靠提高ETL更新頻率來滿足這類需求是不可行的,因?yàn)轭l繁批傳輸會(huì)給源系統(tǒng)或數(shù)據(jù)倉庫帶來過大的系統(tǒng)開銷,而且隨著數(shù)據(jù)量的增大,批傳輸將會(huì)無法在更新間隔內(nèi)做完。

      在此情況下,有必要引入實(shí)時(shí)ETL??蓪⒃磾?shù)據(jù)分類為兩組。第一組使用快速,高選擇性,非阻塞的ETL,使該部分?jǐn)?shù)據(jù)近乎實(shí)時(shí)的更新,以便快速、實(shí)時(shí)的支持決策過程。其余的源數(shù)據(jù)可以在夜間進(jìn)行統(tǒng)一的批傳輸更新。

      另外,核電行業(yè)對(duì)信息系統(tǒng)的服務(wù)質(zhì)量(包括可用性、數(shù)據(jù)及時(shí)度、吞吐量、查詢響應(yīng)時(shí)間等)有著更高的要求,在設(shè)計(jì)實(shí)時(shí)ETL系統(tǒng)的過程中,必須考慮大數(shù)據(jù)量和大系統(tǒng)開銷的情形,保持源系統(tǒng)和決策支持類系統(tǒng)的高服務(wù)質(zhì)量。

      2 實(shí)時(shí)數(shù)據(jù)倉庫的ETL架構(gòu)

      本文提出的實(shí)時(shí)數(shù)據(jù)倉庫ETL架構(gòu)由以下元素組成:

      (1)數(shù)據(jù)源,產(chǎn)生數(shù)據(jù)的系統(tǒng),這些數(shù)據(jù)會(huì)填充到數(shù)據(jù)倉庫;

      (2)位于中間的數(shù)據(jù)處理區(qū)域(Data Processing Area, DPA),對(duì)產(chǎn)生的數(shù)據(jù)進(jìn)行清洗和轉(zhuǎn)換;

      (3)數(shù)據(jù)倉庫(DW)。該架構(gòu)如圖1所示。

      每個(gè)源可以認(rèn)為是由一個(gè)數(shù)據(jù)存儲(chǔ)體(常規(guī)數(shù)據(jù)庫、文件等)和一個(gè)業(yè)務(wù)數(shù)據(jù)管理系統(tǒng)(DBMS、某應(yīng)用程序)組成。發(fā)生在源端的變化首先會(huì)被識(shí)別是否與ETL過程相關(guān),隨后會(huì)向數(shù)據(jù)倉庫傳輸。每個(gè)源都設(shè)有一個(gè)源數(shù)據(jù)流監(jiān)控器(SFlowR)模塊,負(fù)責(zé)識(shí)別相關(guān)的變化,并定期或以適當(dāng)?shù)拈g隔將變化向數(shù)據(jù)倉庫傳輸。

      數(shù)據(jù)處理數(shù)據(jù)流監(jiān)控器(DPFlowR)模塊負(fù)責(zé)決定由哪個(gè)源發(fā)送數(shù)據(jù),一旦源發(fā)送數(shù)據(jù),數(shù)據(jù)處理區(qū)域中的工作流會(huì)接收它,這些工作流清洗數(shù)據(jù)并按數(shù)據(jù)倉庫的格式轉(zhuǎn)換數(shù)據(jù)。數(shù)據(jù)處理區(qū)域還可以有多種職能:

      (1)兼顧SFlowR職能,減輕源的負(fù)荷;

      (2)也可承擔(dān)數(shù)據(jù)倉庫數(shù)據(jù)流監(jiān)控器(WFlowR)的職能(在數(shù)據(jù)倉庫無法處理源產(chǎn)生的數(shù)據(jù)流量的情形);

      (3)可以執(zhí)行諸如檢查點(diǎn)、準(zhǔn)備匯總和QoS管理等任務(wù)。傳入數(shù)據(jù)也可以暫存到適當(dāng)?shù)臅捍婺K,以使DPA能滿足所有工作流的吞吐量。

      一旦所有轉(zhuǎn)換流程結(jié)束,數(shù)據(jù)可向數(shù)據(jù)倉庫中裝載。WFlowR根據(jù)終端用戶提交查詢的工作負(fù)荷,以及對(duì)數(shù)據(jù)及時(shí)度、吞吐量、查詢響應(yīng)時(shí)間等QoS的要求,將DPA的數(shù)據(jù)編排并傳送到數(shù)據(jù)倉庫。

      數(shù)據(jù)倉庫(DW)由不同類型的元素構(gòu)成:

      (1)事實(shí)表(Fact),包含用戶主要關(guān)注的現(xiàn)實(shí)中事件或事實(shí)的記錄,

      (2)維度表(DIM),包含解釋事實(shí)不同方面信息的參考記錄,

      (3)各種類型的索引(INDX),用來加快查詢處理的速度,

      (4)物化視圖,包含最終提交給用戶的匯總信息。物化視圖允許抽取各類計(jì)算過一次的匯總信息,加以存儲(chǔ),以便進(jìn)行檢索、查詢和定期更新,并反映一個(gè)或多個(gè)事實(shí)表的當(dāng)前狀態(tài)。

      在理想狀況下,源,數(shù)據(jù)處理區(qū)和數(shù)據(jù)倉庫都能夠在給定的時(shí)間窗內(nèi)處理所有的數(shù)據(jù)。由于許多可能的原因,如用戶查詢頻率高,更新頻率高,轉(zhuǎn)換和清洗階段某些部分的開銷大,甚至是運(yùn)行過程中架構(gòu)內(nèi)某部分出現(xiàn)故障,使其在實(shí)際情況中不成立。于是,在實(shí)時(shí)ETL的情況下,為確保服務(wù)質(zhì)量,上述組件需要帶有輔助結(jié)構(gòu),來緩解數(shù)據(jù)頻繁刷新的工作負(fù)荷。為此,實(shí)時(shí)ETL架構(gòu)中增加了數(shù)據(jù)暫存節(jié)點(diǎn)。這些節(jié)點(diǎn)保留部分的傳輸數(shù)據(jù),以備后處理。故數(shù)據(jù)流監(jiān)控器中需要有一個(gè)簡(jiǎn)單的選擇機(jī)制來決定哪些數(shù)據(jù)要實(shí)時(shí)的被ETL工作流處理,哪些會(huì)進(jìn)入數(shù)據(jù)暫存,使其在數(shù)據(jù)倉庫的空閑期處理。

      出于這些考慮,設(shè)計(jì)了一個(gè)工作在脫機(jī)模式下的補(bǔ)償模式。規(guī)劃了數(shù)據(jù)暫存中的數(shù)據(jù)被處理并載入數(shù)據(jù)倉庫的過程。如圖2所示。

      3 實(shí)時(shí)ETL的技術(shù)選擇

      實(shí)時(shí)數(shù)據(jù)倉庫架構(gòu)中的各部件,如抽取器、SFlowR、DPFlowR、DPA、WFlowR、數(shù)據(jù)暫存,可以有不同的技術(shù)實(shí)現(xiàn)和部件間集成方式,可選擇的方法有:

      (1)企業(yè)應(yīng)用集成(EAI)方法,抽取器和SFlowR會(huì)提供一個(gè)適配器,數(shù)據(jù)倉庫WFlowR端也有相應(yīng)的適配器,由中間件中的代理來完成數(shù)據(jù)的交互。業(yè)務(wù)數(shù)據(jù)以消息的形式由適配器創(chuàng)建和執(zhí)行,代理根據(jù)發(fā)布/訂閱規(guī)則路由消息。EAI是一個(gè)“推”系統(tǒng),不適用于批傳輸。對(duì)實(shí)時(shí)性要求非常高的系統(tǒng),可以考慮使用EAI。不過在數(shù)據(jù)量大時(shí)EAI效率比較差,而且實(shí)現(xiàn)起來相對(duì)復(fù)雜。

      (2)微批處理(MB-ETL)方法,微批處理的方式和傳統(tǒng)的ETL處理方式很相似,但是處理的時(shí)間間隔要短,例如間隔一個(gè)小時(shí)處理一次,只針對(duì)實(shí)時(shí)性要求較高的一部分源數(shù)據(jù)。微批處理方法一般配合實(shí)時(shí)分區(qū)使用。該方法適用于中等數(shù)據(jù)量的數(shù)據(jù)倉庫系統(tǒng),和小時(shí)級(jí)別的延時(shí)容忍。

      (3)CTF(Capture, Transform and Flow)方法,CTF采用直接的數(shù)據(jù)庫對(duì)數(shù)據(jù)庫的連接方式,可提供秒級(jí)的數(shù)據(jù)。CTF只能進(jìn)行輕量級(jí)的數(shù)據(jù)整合。通常的處理方式是建立數(shù)據(jù)準(zhǔn)備區(qū)(或?qū)崟r(shí)分區(qū)),采用CTF工具在源數(shù)據(jù)庫和數(shù)據(jù)準(zhǔn)備區(qū)的數(shù)據(jù)庫之間相連接。捕獲到變化后,使變化數(shù)據(jù)進(jìn)入數(shù)據(jù)準(zhǔn)備區(qū),再經(jīng)過其他處理后遷移入數(shù)據(jù)倉庫。

      基于幾種技術(shù)及其組合,可實(shí)現(xiàn)ETL方案有,如表1所示。

      結(jié)合核電企業(yè)決策支持類應(yīng)用的數(shù)據(jù)復(fù)雜度,以及對(duì)數(shù)據(jù)實(shí)時(shí)性的要求,考慮現(xiàn)有軟件環(huán)境和對(duì)源系統(tǒng)性能影響,選擇“CTF + 實(shí)時(shí)分區(qū)”作為數(shù)據(jù)倉庫的實(shí)時(shí)ETL方案。即SFlowR使用CTF方法來獲得變更信息,并設(shè)置數(shù)據(jù)暫存;DPFlowR下屬的數(shù)據(jù)暫存承擔(dān)實(shí)時(shí)分區(qū)的作用;DPFlowR負(fù)責(zé)輪詢SFlowR,發(fā)現(xiàn)變更則加載入實(shí)時(shí)分區(qū),再視工作負(fù)荷將數(shù)據(jù)推入DPA;同時(shí),DPFlowR還要保存檢查點(diǎn),以保證ETL過程的健壯性。

      4 變化數(shù)據(jù)捕獲方法

      要進(jìn)行CTF,首先要實(shí)現(xiàn)變化數(shù)據(jù)捕獲(Change Data Capture,CDC),即在上次數(shù)據(jù)抽取完成后,將源系統(tǒng)中新插入或者發(fā)生更新的數(shù)據(jù)捕獲并抽取到數(shù)據(jù)倉庫中來。傳統(tǒng)的CDC方法有時(shí)間戳法、專用增量文件法、數(shù)據(jù)庫快照比對(duì)法等。傳統(tǒng)方法的變更獲取周期比較長,難以滿足對(duì)數(shù)據(jù)刷新頻率的要求。本文使用數(shù)據(jù)庫日志分析法。

      基于數(shù)據(jù)庫日志的CDC策略利用數(shù)據(jù)庫不斷向數(shù)據(jù)庫日志提交內(nèi)容修改信息以支持事物回滾的機(jī)制,不斷對(duì)數(shù)據(jù)庫日志分析從而獲取變化數(shù)據(jù)的信息供抽取程序使用。

      數(shù)據(jù)庫歸檔日志是針對(duì)數(shù)據(jù)庫事務(wù)操作所做的記錄,它可以記錄己經(jīng)提交的數(shù)據(jù)操作事務(wù)的任何信息。數(shù)據(jù)庫系統(tǒng)可運(yùn)行在非歸檔日志模式或歸檔日志模式。非歸檔模式下,重做日志(Redo Log)以循環(huán)的方式使用,當(dāng)重做日志被覆蓋后丟失以前的日志信息。歸檔日志模式下,重做日志寫滿后,系統(tǒng)自動(dòng)備份,并在控制文件中將日志文件的日志序列號(hào)歸檔,此模式下歸檔日志可完整的記錄數(shù)據(jù)系統(tǒng)的事務(wù)操作信息。

      數(shù)據(jù)庫一般都會(huì)提供專用的日志解析工具。Oracle提供一個(gè)名為Log Miner的API接口來實(shí)現(xiàn)對(duì)數(shù)據(jù)日志的解析。LogMiner進(jìn)行日志分析的時(shí)候會(huì)重構(gòu)等價(jià)的SQL語句和UNDO語句(這兩個(gè)語句分別被記錄在V$LOGMNR_CONTENTS視圖的SQL_REDO和SQL_UNDO中)。LogMiner重構(gòu)出的是由多個(gè)元操作構(gòu)成的等價(jià)SQL語句,可在V$LOGMNR_CONTENTS視圖中訪問到。在Oracle的Redo Log中記載的也并不是原始的名稱(如表及其列名),而是它們?cè)跀?shù)據(jù)庫中的編號(hào),這就需要調(diào)用DBMS_LOGMNR_ D.BUILD()來提取數(shù)據(jù)字典信息,將編號(hào)還原為名稱。

      數(shù)據(jù)庫雖然提供了相應(yīng)的日志解析接口,但要實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)捕獲還需要與該接口實(shí)現(xiàn)交互以獲得信息。InformaticaPWX已經(jīng)實(shí)現(xiàn)了此功能。

      5 使用Informatica PWC+PWX實(shí)現(xiàn)實(shí)時(shí)ETL

      Informatica PWX程序?qū)崿F(xiàn)與數(shù)據(jù)庫日志解析程序的實(shí)時(shí)交互。同時(shí)通過將數(shù)據(jù)的變化信息傳遞到ETL服務(wù)器端(PWC)供數(shù)據(jù)抽取工作流使用。對(duì)于Oracle源數(shù)據(jù)庫,基于數(shù)據(jù)庫日志分析的CDC抽取策略的實(shí)現(xiàn)如圖3所示。

      其中,Oracle日志(Redo Log)是數(shù)據(jù)庫日志分析的基礎(chǔ),被監(jiān)測(cè)數(shù)據(jù)庫須在存檔模式下運(yùn)行。LogMiner讀取Redo Log,使PWX能夠從指定的時(shí)間點(diǎn)抽取數(shù)據(jù),這些時(shí)間點(diǎn)由Oracle SCN(System Change Numbers)分隔?!安东@注冊(cè)”是用戶創(chuàng)建的變更捕獲注冊(cè)信息,定義了用戶需要實(shí)時(shí)監(jiān)測(cè)的數(shù)據(jù)。PWXCondense作業(yè)讀取“捕獲注冊(cè)”,獲取需要監(jiān)測(cè)的表和列信息,然后連接OracleLog Miner,確定應(yīng)該返回哪些變更記錄。PWXCondense作業(yè)會(huì)保證變化數(shù)據(jù)按照其提交的順序被依次處理,同時(shí)去除回滾的事務(wù)。PWX Condense作業(yè)將接收到的變化信息輸出到Condense文件。

      ETL的映射、會(huì)話和工作流在PWC中創(chuàng)建,當(dāng)PWC中的工作流被調(diào)用后,通過請(qǐng)求PWX的監(jiān)聽程序來獲得變化信息。“提取映射”定義了捕獲到的變化信息如何展現(xiàn)給PWC。PWC得到變化信息后,ETL進(jìn)程就會(huì)將變化的數(shù)據(jù)抽取過來加載到目標(biāo)表中,從而實(shí)現(xiàn)了數(shù)據(jù)的實(shí)時(shí)抽取。如果因?yàn)槟撤N原因停止了實(shí)時(shí)ETL,會(huì)生成一個(gè)檢查點(diǎn)(checkpoint)文件,該文件保存了ETL進(jìn)程停止時(shí)數(shù)據(jù)庫日志解析點(diǎn)的SCN值,當(dāng)下次程序啟動(dòng)時(shí)會(huì)從檢查點(diǎn)文件中讀取上次結(jié)束的位置,從而保證了數(shù)據(jù)抽取的連續(xù)性。

      6 總結(jié)

      本文探討了一種具有數(shù)據(jù)緩存機(jī)制的實(shí)時(shí)數(shù)據(jù)倉庫ETL架構(gòu),結(jié)合項(xiàng)目需要和相關(guān)軟件環(huán)境,選擇了CTF配合實(shí)時(shí)分區(qū)的方法實(shí)現(xiàn)實(shí)時(shí)ETL,通過Informatica PWX和PWC工具加以實(shí)現(xiàn),并模擬系統(tǒng)正常使用時(shí)的表更新頻率對(duì)ETL進(jìn)行了測(cè)試。在源系統(tǒng)和數(shù)據(jù)倉庫負(fù)載正常,網(wǎng)絡(luò)通暢的情況下,數(shù)據(jù)延遲情況如表2所示。

      方案實(shí)現(xiàn)了秒級(jí)的數(shù)據(jù)同步,能夠適應(yīng)突發(fā)大數(shù)據(jù)量,滿足了核電決策支持類應(yīng)用對(duì)數(shù)據(jù)實(shí)時(shí)性的要求。本方案在兼容性、完備性、性能和侵入性幾個(gè)方面的評(píng)估如表3所示。

      本文所述的實(shí)時(shí)ETL方案在數(shù)據(jù)庫和ETL工具兼容CDC,要求對(duì)源系統(tǒng)侵入性和性能影響較小的情況下是十分合適的,應(yīng)用本方案可實(shí)現(xiàn)一分鐘之內(nèi)的數(shù)據(jù)延遲和優(yōu)秀的抽取性能、完備性和健壯性。

      參考文獻(xiàn)

      [1]張春亮.基于ETL的企業(yè)數(shù)據(jù)交換平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[D].哈爾濱:哈爾濱工業(yè)大學(xué),2016.

      [2]林子雨,楊冬青,宋國杰等.實(shí)時(shí)主動(dòng)數(shù)據(jù)倉庫中面向需求的實(shí)時(shí)數(shù)據(jù)集成方法研究[J].計(jì)算機(jī)研究與發(fā)展,2007,44(s3):435-440.

      [3]霍卓群.基于實(shí)時(shí)資源狀況和代價(jià)分析的ETL動(dòng)態(tài)調(diào)整研究[J].南陽理工學(xué)院學(xué)報(bào),2015,7(06):40-42.

      [4]R.Kimball and J.Caserta.The Data Warehouse ETL Toolkit:Practical Techniques for Extracting,Cleanin,Conformingand Delivering Data[M]. Wiley Publishing,Inc,2004.

      [5]徐春艷.面向?qū)崟r(shí)數(shù)據(jù)倉庫的ETL研究[D].南京:南京航空航天大學(xué),2007,碩士.

      [6]龍曉泉.基于Oracle的實(shí)時(shí)數(shù)據(jù)倉庫技術(shù)研究與應(yīng)用[D].長沙:湖南大學(xué),2010,碩士.

      [7]Conceptual modeling for ETL processes.Vassiliadis,P,Simitsis,A,Skiadopoulos,S.5th ACM International Workshop on Data Warehousing and OLAP.2002

      作者簡(jiǎn)介

      王尉(1984-),男,內(nèi)蒙古自治區(qū)赤峰市人。碩士學(xué)位。現(xiàn)為核工業(yè)計(jì)算機(jī)應(yīng)用研究所工程師。研究方向?yàn)轫?xiàng)目管理、軟件工程、企業(yè)架構(gòu)。

      作者單位

      核工業(yè)計(jì)算機(jī)應(yīng)用研究所 北京市 100048

      大余县| 安徽省| 如皋市| 青岛市| 潞西市| 平乐县| 江西省| 邵阳县| 城口县| 盐城市| 元阳县| 山丹县| 长泰县| 汉川市| 明光市| 辛集市| 安义县| 福鼎市| 安福县| 台北县| 游戏| 林芝县| 车致| 濉溪县| 虹口区| 舟曲县| 浏阳市| 太仓市| 陇川县| 新巴尔虎右旗| 定西市| 仙桃市| 梁山县| 禄劝| 姚安县| 六安市| 涟水县| 左权县| 安陆市| 雅江县| 乌兰察布市|