欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

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

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

1.ETL簡(jiǎn)介

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

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

  ETL中三個(gè)字母分別代表的是Extract、Transform、Load,即抽取、轉換、加載。(1)數據抽?。簭脑磾祿聪到y抽取目的數據源系統需要的數據;(2)數據轉換:將從源數據源獲取的數據按照業(yè)務(wù)需求,轉換成目的數據源要求的形式,并對錯誤、不一致的數據進(jìn)行清洗和加工。(3)數據加載:將轉換后的數據裝載到目的數據源。

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


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

  ETL過(guò)程中的主要環(huán)節就是數據抽取、數據轉換和加工、數據裝載。為了實(shí)現這些功能,各個(gè)ETL工具一般會(huì )進(jìn)行一些功能上的擴充,例如工作流、調度引擎、規則引擎、腳本支持、統計信息等。

2.1 數據抽取

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

(1)全量抽取

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

(2)增量抽取

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

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

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

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

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

2.2 數據轉換和加工

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

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

(1)ETL引擎中的數據轉換和加工

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

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

(2)在數據庫中進(jìn)行數據加工

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

 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引擎中進(jìn)行數據轉換和加工,直接在SQL語(yǔ)句中進(jìn)行轉換和加工更加簡(jiǎn)單清晰,性能更高。對于SQL語(yǔ)句無(wú)法處理的可以交由ETL引擎處理。

2.3 數據裝載

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

  (1)直接SQL語(yǔ)句進(jìn)行insert、update、delete操作。

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

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

  3.主流ETL工具

ETL工具從廠(chǎng)商來(lái)看分為兩種,一種是數據庫廠(chǎng)商自帶的ETL工具,Oracle warehouse builder、Oracle Data Integrator。另外一種是第三方工具提供商,如Kettle。開(kāi)源世界也有很多的ETL工具,功能各異,強弱不一。

(1)Oracle Data IntegratorODI

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

 ODI的主要功能特點(diǎn)有:

  a.使用CDC作為變更數據捕獲的捕獲方式。

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

  c.完善的權限控制、版本管理功能。

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

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

  f.支持Web Service。

(2)SQL Server Integration ServicesSSIS

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

4.ETL工具的選擇

  在數據集成中該如何選擇ETL工具呢?一般來(lái)說(shuō)需要考慮以下幾個(gè)方面:

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

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

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

  (4)數據轉換和加工的功能強不強。

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

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

參考文獻

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

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

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


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

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久