国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
面向數(shù)據(jù)集成的ETL技術(shù)研究

摘要:數(shù)據(jù)集成是把不同來源、格式和特點的數(shù)據(jù)在邏輯上或物理上有機地集中,從而為企業(yè)提供全面的數(shù)據(jù)共享,是企業(yè)商務(wù)智能、數(shù)據(jù)倉庫系統(tǒng)的重要組成部分。ETL是企業(yè)數(shù)據(jù)集成的主要解決方案。文章從ETL的概念出發(fā),簡要分析了當(dāng)前ETL中用到的一些基本技術(shù),為ETL系統(tǒng)的開發(fā)和ETL技術(shù)的應(yīng)用提供一些參考。

1.ETL簡介

  隨著企業(yè)信息化建設(shè)的發(fā)展,巨大的投資為企業(yè)建立了眾多的信息系統(tǒng),以幫助企業(yè)進行內(nèi)外部業(yè)務(wù)的處理和管理工作。但是隨著信息系統(tǒng)的增加,各自孤立工作的信息系統(tǒng)將會造成大量的冗余數(shù)據(jù)和業(yè)務(wù)人員的重復(fù)勞動。企業(yè)應(yīng)用集成(EAIEnterprise Application Integration)應(yīng)運而生。EAI通過建立底層數(shù)據(jù)交換平臺來聯(lián)系橫貫整個企業(yè)的異構(gòu)系統(tǒng)、應(yīng)用、數(shù)據(jù)源等,完成在企業(yè)內(nèi)部的ERP、CRMSCM、數(shù)據(jù)庫、數(shù)據(jù)倉庫,以及其它重要的內(nèi)部系統(tǒng)之間無縫地共享和交換數(shù)據(jù)的需要。數(shù)據(jù)集成是企業(yè)應(yīng)用集成的重要環(huán)節(jié),企業(yè)實現(xiàn)數(shù)據(jù)集成,可以使更多的人更充分地使用已有數(shù)據(jù)資源,減少資料收集、數(shù)據(jù)采集等重復(fù)勞動和相應(yīng)費用。

  但是,在實施數(shù)據(jù)集成的過程中,由于不同用戶提供的數(shù)據(jù)可能來自不同的途徑,其數(shù)據(jù)內(nèi)容、數(shù)據(jù)格式和數(shù)據(jù)質(zhì)量千差萬別,有時甚至?xí)龅綌?shù)據(jù)格式不能轉(zhuǎn)換或數(shù)據(jù)轉(zhuǎn)換格式后丟失信息等棘手問題,嚴(yán)重阻礙了數(shù)據(jù)在各部門和各應(yīng)用系統(tǒng)中的流動與共享。因此,如何對數(shù)據(jù)進行有效的集成管理已成為增強企業(yè)商業(yè)競爭力的必然選擇。ETL是實現(xiàn)數(shù)據(jù)集成的主要技術(shù)。

  ETL中三個字母分別代表的是ExtractTransform、Load,即抽取、轉(zhuǎn)換、加載。(1)數(shù)據(jù)抽取:從源數(shù)據(jù)源系統(tǒng)抽取目的數(shù)據(jù)源系統(tǒng)需要的數(shù)據(jù);(2)數(shù)據(jù)轉(zhuǎn)換:將從源數(shù)據(jù)源獲取的數(shù)據(jù)按照業(yè)務(wù)需求,轉(zhuǎn)換成目的數(shù)據(jù)源要求的形式,并對錯誤、不一致的數(shù)據(jù)進行清洗和加工。(3)數(shù)據(jù)加載:將轉(zhuǎn)換后的數(shù)據(jù)裝載到目的數(shù)據(jù)源。

  ETL原本是作為構(gòu)建數(shù)據(jù)倉庫的一個環(huán)節(jié),負責(zé)將分布的、異構(gòu)數(shù)據(jù)源中的數(shù)據(jù)如關(guān)系數(shù)據(jù)、平面數(shù)據(jù)文件等抽取到臨時中間層后進行清洗、轉(zhuǎn)換、集成,最后加載到數(shù)據(jù)倉庫或數(shù)據(jù)集市中,成為聯(lián)機分析處理、數(shù)據(jù)挖掘的基礎(chǔ)?,F(xiàn)在也越來越多地將ETL應(yīng)用于一般信息系統(tǒng)中數(shù)據(jù)的遷移、交換和同步。一個簡單的ETL體系結(jié)構(gòu)如圖1.1所示。


2.ETL中的關(guān)鍵技術(shù)

  ETL過程中的主要環(huán)節(jié)就是數(shù)據(jù)抽取、數(shù)據(jù)轉(zhuǎn)換和加工、數(shù)據(jù)裝載。為了實現(xiàn)這些功能,各個ETL工具一般會進行一些功能上的擴充,例如工作流、調(diào)度引擎、規(guī)則引擎、腳本支持、統(tǒng)計信息等。

2.1 數(shù)據(jù)抽取

  數(shù)據(jù)抽取是從數(shù)據(jù)源中抽取數(shù)據(jù)的過程。實際應(yīng)用中,數(shù)據(jù)源較多采用的是關(guān)系數(shù)據(jù)庫。從數(shù)據(jù)庫中抽取數(shù)據(jù)一般有以下幾種方式。

(1)全量抽取

  全量抽取類似于數(shù)據(jù)遷移或數(shù)據(jù)復(fù)制,它將數(shù)據(jù)源中的表或視圖的數(shù)據(jù)原封不動的從數(shù)據(jù)庫中抽取出來,并轉(zhuǎn)換成自己的ETL工具可以識別的格式。全量抽取比較簡單。

(2)增量抽取

  增量抽取只抽取自上次抽取以來數(shù)據(jù)庫中要抽取的表中新增或修改的數(shù)據(jù)。在ETL使用過程中。增量抽取較全量抽取應(yīng)用更廣。如何捕獲變化的數(shù)據(jù)是增量抽取的關(guān)鍵。對捕獲方法一般有兩點要求:準(zhǔn)確性,能夠?qū)I(yè)務(wù)系統(tǒng)中的變化數(shù)據(jù)按一定的頻率準(zhǔn)確地捕獲到;性能,不能對業(yè)務(wù)系統(tǒng)造成太大的壓力,影響現(xiàn)有業(yè)務(wù)。目前增量數(shù)據(jù)抽取中常用的捕獲變化數(shù)據(jù)的方法有:

   a.觸發(fā)器:在要抽取的表上建立需要的觸發(fā)器,一般要建立插入、修改、刪除三個觸發(fā)器,每當(dāng)源表中的數(shù)據(jù)發(fā)生變化,就被相應(yīng)的觸發(fā)器將變化的數(shù)據(jù)寫入一個臨時表,抽取線程從臨時表中抽取數(shù)據(jù),臨時表中抽取過的數(shù)據(jù)被標(biāo)記或刪除。觸發(fā)器方式的優(yōu)點是數(shù)據(jù)抽取的性能較高,缺點是要求業(yè)務(wù)表建立觸發(fā)器,對業(yè)務(wù)系統(tǒng)有一定的影響。

    b.時間戳:它是一種基于快照比較的變化數(shù)據(jù)捕獲方式,在源表上增加一個時間戳字段,系統(tǒng)中更新修改表數(shù)據(jù)的時候,同時修改時間戳字段的值。當(dāng)進行數(shù)據(jù)抽取時,通過比較系統(tǒng)時間與時間戳字段的值來決定抽取哪些數(shù)據(jù)。有的數(shù)據(jù)庫的時間戳支持自動更新,即表的其它字段的數(shù)據(jù)發(fā)生改變時,自動更新時間戳字段的值。有的數(shù)據(jù)庫不支持時間戳的自動更新,這就要求業(yè)務(wù)系統(tǒng)在更新業(yè)務(wù)數(shù)據(jù)時,手工更新時間戳字段。同觸發(fā)器方式一樣,時間戳方式的性能也比較好,數(shù)據(jù)抽取相對清楚簡單,但對業(yè)務(wù)系統(tǒng)也有很大的傾入性(加入額外的時間戳字段),特別是對不支持時間戳的自動更新的數(shù)據(jù)庫,還要求業(yè)務(wù)系統(tǒng)進行額外的更新時間戳操作。另外,無法捕獲對時間戳以前數(shù)據(jù)的deleteupdate操作,在數(shù)據(jù)準(zhǔn)確性上受到了一定的限制。
 
 c.全表比對:典型的全表比對的方式是采用MD5校驗碼。ETL工具事先為要抽取的表建立一個結(jié)構(gòu)類似的MD5臨時表,該臨時表記錄源表主鍵以及根據(jù)所有字段的數(shù)據(jù)計算出來的MD5校驗碼。每次進行數(shù)據(jù)抽取時,對源表和MD5臨時表進行MD5校驗碼的比對,從而決定源表中的數(shù)據(jù)是新增、修改還是刪除,同時更新MD5校驗碼。MD5方式的優(yōu)點是對源系統(tǒng)的傾入性較?。▋H需要建立一個MD5臨時表),但缺點也是顯而易見的,與觸發(fā)器和時間戳方式中的主動通知不同,MD5方式是被動的進行全表數(shù)據(jù)的比對,性能較差。當(dāng)表中沒有主鍵或唯一列且含有重復(fù)記錄時,MD5方式的準(zhǔn)確性較差。

   d.日志對比:通過分析數(shù)據(jù)庫自身的日志來判斷變化的數(shù)據(jù)。Oracle改變數(shù)據(jù)捕獲(CDC,Changed Data Capture)技術(shù)是這方面的代表。CDC 特性是在Oracle9i數(shù)據(jù)庫中引入的。CDC能夠幫助你識別從上次抽取之后發(fā)生變化的數(shù)據(jù)。利用CDC,在對源表進行insert、update delete等操作的同時就可以提取數(shù)據(jù),并且變化的數(shù)據(jù)被保存在數(shù)據(jù)庫的變化表中。這樣就可以捕獲發(fā)生變化的數(shù)據(jù),然后利用數(shù)據(jù)庫視圖以一種可控的方式提供給目標(biāo)系統(tǒng)。CDC體系結(jié)構(gòu)基于發(fā)布者/訂閱者模型。發(fā)布者捕捉變化數(shù)據(jù)并提供給訂閱者。訂閱者使用從發(fā)布者那里獲得的變化數(shù)據(jù)。通常,CDC系統(tǒng)擁有一個發(fā)布者和多個訂閱者。發(fā)布者首先需要識別捕獲變化數(shù)據(jù)所需的源表。然后,它捕捉變化的數(shù)據(jù)并將其保存在特別創(chuàng)建的變化表中。它還使訂閱者能夠控制對變化數(shù)據(jù)的訪問。訂閱者需要清楚自己感興趣的是哪些變化數(shù)據(jù)。一個訂閱者可能不會對發(fā)布者發(fā)布的所有數(shù)據(jù)都感興趣。訂閱者需要創(chuàng)建一個訂閱者視圖來訪問經(jīng)發(fā)布者授權(quán)可以訪問的變化數(shù)據(jù)。CDC分為同步模式和異步模式,同步模式實時的捕獲變化數(shù)據(jù)并存儲到變化表中,發(fā)布者與訂閱都位于同一數(shù)據(jù)庫中。異步模式則是基于Oracle的流復(fù)制技術(shù)。

  ETL處理的數(shù)據(jù)源除了關(guān)系數(shù)據(jù)庫外,還可能是文件,例如txt文件、excel文件、xml文件等。對文件數(shù)據(jù)的抽取一般是進行全量抽取,一次抽取前可保存文件的時間戳或計算文件的MD5校驗碼,下次抽取時進行比對,如果相同則可忽略本次抽取。

2.2 數(shù)據(jù)轉(zhuǎn)換和加工

  從數(shù)據(jù)源中抽取的數(shù)據(jù)不一定完全滿足目的庫的要求,例如數(shù)據(jù)格式的不一致、數(shù)據(jù)輸入錯誤、數(shù)據(jù)不完整等等,因此有必要對抽取出的數(shù)據(jù)進行數(shù)據(jù)轉(zhuǎn)換和加工。

數(shù)據(jù)的轉(zhuǎn)換和加工可以在ETL引擎中進行,也可以在數(shù)據(jù)抽取過程中利用關(guān)系數(shù)據(jù)庫的特性同時進行。

(1)ETL引擎中的數(shù)據(jù)轉(zhuǎn)換和加工

  ETL引擎中一般以組件化的方式實現(xiàn)數(shù)據(jù)轉(zhuǎn)換。常用的數(shù)據(jù)轉(zhuǎn)換組件有字段映射、數(shù)據(jù)過濾、數(shù)據(jù)清洗、數(shù)據(jù)替換、數(shù)據(jù)計算、數(shù)據(jù)驗證、數(shù)據(jù)加解密、數(shù)據(jù)合并、數(shù)據(jù)拆分等。這些組件如同一條流水線上的一道道工序,它們是可插拔的,且可以任意組裝,各組件之間通過數(shù)據(jù)總線共享數(shù)據(jù)。

有些ETL工具還提供了腳本支持,使得用戶可以以一種編程的方式定制數(shù)據(jù)的轉(zhuǎn)換和加工行為。

(2)在數(shù)據(jù)庫中進行數(shù)據(jù)加工

  關(guān)系數(shù)據(jù)庫本身已經(jīng)提供了強大的SQL、函數(shù)來支持數(shù)據(jù)的加工,如在SQL查詢語句中添加where條件進行過濾,查詢中重命名字段名與目的表進行映射,substr函數(shù),case條件判斷等等。下面是一個SQL查詢的例子。

 select ID as USERID, substr(TITLE, 1, 20) as TITLE, case when REMARK is null then ' ' else REMARK end as CONTENT from TB_REMARK where ID > 100;

  相比在ETL引擎中進行數(shù)據(jù)轉(zhuǎn)換和加工,直接在SQL語句中進行轉(zhuǎn)換和加工更加簡單清晰,性能更高。對于SQL語句無法處理的可以交由ETL引擎處理。

2.3 數(shù)據(jù)裝載

  將轉(zhuǎn)換和加工后的數(shù)據(jù)裝載到目的庫中通常是ETL過程的最后步驟。裝載數(shù)據(jù)的最佳方法取決于所執(zhí)行操作的類型以及需要裝入多少數(shù)據(jù)。當(dāng)目的庫是關(guān)系數(shù)據(jù)庫時,一般來說有兩種裝載方式:

  (1)直接SQL語句進行insertupdate、delete操作。

  (2)采用批量裝載方法,如bcp、bulk、關(guān)系數(shù)據(jù)庫特有的批量裝載工具或api。

  大多數(shù)情況下會使用第一種方法,因為它們進行了日志記錄并且是可恢復(fù)的。但是,批量裝載操作易于使用,并且在裝入大量數(shù)據(jù)時效率較高。使用哪種數(shù)據(jù)裝載方法取決于業(yè)務(wù)系統(tǒng)的需要。

  3.主流ETL工具

ETL工具從廠商來看分為兩種,一種是數(shù)據(jù)庫廠商自帶的ETL工具,Oracle warehouse builderOracle Data Integrator。另外一種是第三方工具提供商,如Kettle。開源世界也有很多的ETL工具,功能各異,強弱不一。

(1)Oracle Data IntegratorODI

  ODI前身是Sunopsis Active Integration Platform,在2006年底被Oracle收購,重新命名為Oracle Data Integrator,主要定位于在ETL和數(shù)據(jù)集成的場景里使用。ODIOracle原來的ETL工具OWB相比有一些顯著的特點,比如和OWB一樣是ELT架構(gòu),但是比OWB支持更多的異構(gòu)的數(shù)據(jù)源,ODI提供了call web service的機制,并且ODI的接口也可以暴露為web service,從而可以和SOA環(huán)境進行交互。ODI能夠檢測事件,一個事件可以觸發(fā)ODI的一個接口流程,從而完成近乎實時的數(shù)據(jù)集成。

 ODI的主要功能特點有:

  a.使用CDC作為變更數(shù)據(jù)捕獲的捕獲方式。

  b.代理支持并行處理和負載均衡。

  c.完善的權(quán)限控制、版本管理功能。

  d.支持數(shù)據(jù)質(zhì)量檢查,清洗和回收臟數(shù)據(jù)。

  e.支持與JMS消息中間件集成。

  f.支持Web Service。

(2)SQL Server Integration ServicesSSIS

  SSISSQL Server 2005的新成員,在SQL Server的早期版本中,其實就已經(jīng)有了它的雛形,那時的名稱叫做數(shù)據(jù)轉(zhuǎn)換服務(wù)(DTS)。在SQL Server 2005的前兩個版本SQL Server 7.0SQL Server 2000中,DTS主要集中于提取和加載。通過使用DTS,可以從任何數(shù)據(jù)源中提取數(shù)據(jù)以及將數(shù)據(jù)加載到任何數(shù)據(jù)源中。在SQL Server 2005中,對DTS進行了重新設(shè)計和改進形成了SSIS。SSIS提供了數(shù)據(jù)相關(guān)的控制流、數(shù)據(jù)流、日志、變量、event、連接管理等基礎(chǔ)設(shè)施??刂屏饕卜Q為工作流或者任務(wù)流,它更像工作流,在工作流中每個組件都是一個任務(wù)。這些任務(wù)是按預(yù)定義的順序執(zhí)行的。在任務(wù)流中可能有分支。當(dāng)前任務(wù)的執(zhí)行結(jié)果決定沿哪條分支前進。數(shù)據(jù)流是新的概念。數(shù)據(jù)流也稱為流水線,主要解決數(shù)據(jù)轉(zhuǎn)換的問題。數(shù)據(jù)流由一組預(yù)定義的轉(zhuǎn)換操作組成。數(shù)據(jù)流的起點通常是數(shù)據(jù)源(源表);數(shù)據(jù)流的終點通常是數(shù)據(jù)的目的地(目標(biāo)表)??梢詫?shù)據(jù)流的執(zhí)行認為是一個流水線的過程,在該過程中,每一行數(shù)據(jù)都是裝配線中需要處理的零件,而每一個轉(zhuǎn)換都是裝配線中的處理單元。 

4.ETL工具的選擇

  在數(shù)據(jù)集成中該如何選擇ETL工具呢?一般來說需要考慮以下幾個方面:

  (1)對平臺的支持程度。

  (2)對數(shù)據(jù)源的支持程度。

  (3)抽取和裝載的性能是不是較高,且對業(yè)務(wù)系統(tǒng)的性能影響大不大,傾入性高不高。

  (4)數(shù)據(jù)轉(zhuǎn)換和加工的功能強不強。

  (5)是否具有管理和調(diào)度功能。

  (6)是否具有良好的集成性和開放性。

參考文獻

  [1]張寧,賈自艷,史忠植。數(shù)據(jù)倉庫中ETL 技術(shù)的研究。計算機工程與應(yīng)用,2002(24)。

  [2]王詠梅。ETL及其在數(shù)據(jù)倉庫創(chuàng)建中的重要作用。

  [3] Kamal Hathi。SQL Server 2005集成服務(wù)簡介。


本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
ETL數(shù)據(jù)抽取方案簡介
Oracle Golden Gate實時數(shù)據(jù)集成
在SQL Server數(shù)據(jù)庫中成批導(dǎo)入數(shù)據(jù)四種方法
如何將DB2數(shù)據(jù)庫轉(zhuǎn)換成Oracle數(shù)據(jù)庫,這一篇告訴你
OracleDI實時數(shù)據(jù)集成簡介
OGG12.1(LINUX) for 11G R2 RAC classical install 經(jīng)典抽取模式單項同步配置OGG12.1
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服