成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

面向數據集成的ETL技術研究

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

一、ETL簡介

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

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

ETL中三個字母分別代表的是Extract、Transform、Load,即抽取、轉換、加載。

數據抽取:從源數據源系統(tǒng)抽取目的數據源系統(tǒng)需要的數據;

數據轉換:將從源數據源獲取的數據按照業(yè)務需求,轉換成目的數據源要求的形式,并對錯誤、不一致的數據進行清洗和加工。

數據加載:將轉換后的數據裝載到目的數據源。

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

二、ETL中的關鍵技術

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

1.數據抽取

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

(1)全量抽取

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

(2)增量抽取

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

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

b.時間戳:它是一種基于快照比較的變化數據捕獲方式,在源表上增加一個時間戳字段,系統(tǒng)中更新修改表數據的時候,同時修改時間戳字段的值。當進行數據抽取時,通過比較系統(tǒng)時間與時間戳字段的值來決定抽取哪些數據。有的數據庫的時間戳支持自動更新,即表的其它字段的數據發(fā)生改變時,自動更新時間戳字段的值。有的數據庫不支持時間戳的自動更新,這就要求業(yè)務系統(tǒng)在更新業(yè)務數據時,手工更新時間戳字段。同觸發(fā)器方式一樣,時間戳方式的性能也比較好,數據抽取相對清楚簡單,但對業(yè)務系統(tǒng)也有很大的傾入性(加入額外的時間戳字段),特別是對不支持時間戳的自動更新的數據庫,還要求業(yè)務系統(tǒng)進行額外的更新時間戳操作。另外,無法捕獲對時間戳以前數據的delete和update操作,在數據準確性上受到了一定的限制。

c.全表比對:典型的全表比對的方式是采用MD5校驗碼。ETL工具事先為要抽取的表建立一個結構類似的MD5臨時表,該臨時表記錄源表主鍵以及根據所有字段的數據計算出來的MD5校驗碼。每次進行數據抽取時,對源表和MD5臨時表進行MD5校驗碼的比對,從而決定源表中的數據是新增、修改還是刪除,同時更新MD5校驗碼。MD5方式的優(yōu)點是對源系統(tǒng)的傾入性較小(僅需要建立一個MD5臨時表),但缺點也是顯而易見的,與觸發(fā)器和時間戳方式中的主動通知不同,MD5方式是被動的進行全表數據的比對,性能較差。當表中沒有主鍵或唯一列且含有重復記錄時,MD5方式的準確性較差。

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

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

2.數據轉換和加工

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

數據的轉換和加工可以在ETL引擎中進行,也可以在數據抽取過程中利用關系數據庫的特性同時進行。

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

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

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

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

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

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

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

#p#

3.數據裝載

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

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

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

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

三、主流ETL工具

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

(1)Oracle Data Integrator(ODI)

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

ODI的主要功能特點有:

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

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

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

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

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

f.支持Web Service。

(2)SQL Server Integration Services(SSIS)

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

四、ETL工具的選擇

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

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

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

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

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

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

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

【編輯推薦】

  1. 關于航空公司信息整合和數據挖掘的一點思考
  2. 數據挖掘和知識發(fā)現的技術、方法及應用
  3. 數據挖掘技術在沃爾瑪的應用
  4. 空間數據挖掘主要方法
  5. 基于數據挖掘技術的客戶關系管理
  6. 深入探討數據倉庫緩慢變化維的解決方案
  7. Oracle中OSFA和數據倉庫簡介
  8. 建立數據倉庫的八條基本準則
責任編輯:楊鵬飛 來源: IT專家網
相關推薦

2011-05-30 17:21:58

軟件測試

2011-11-30 21:54:11

ibmdwDominoSAP

2023-06-19 07:08:22

結構化數據ChatGPT

2018-11-19 13:44:39

2017-07-03 15:22:51

達觀數據技術研究

2017-02-06 13:31:11

調度技術集群

2009-08-04 16:50:26

2020-10-29 12:59:57

國產生態(tài)網絡

2012-11-07 14:00:05

2010-01-18 22:54:40

2022-02-18 16:28:19

VR/AR交互互聯網

2022-07-27 08:25:13

語言操作系統(tǒng)日志

2019-04-26 05:33:47

IPv6網絡技術IPv4

2010-05-27 14:12:48

2022-07-28 13:18:48

系統(tǒng)日志編碼器

2013-07-22 14:56:33

5G關鍵技術4G

2018-09-27 14:35:56

2021-01-25 20:47:43

技術研發(fā)實踐

2009-10-22 09:55:31

php應用程序安全防范

2022-01-25 00:06:05

云計算安全技術
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成在线人视频免费视频 | 国产一区日韩在线 | 黄色在线免费播放 | 可以在线看的黄色网址 | 欧美精品一区二区在线观看 | 成人免费视频在线观看 | 亚洲一区二区 | 国产一区二区三区亚洲 | 亚洲第一色站 | 日本不卡视频 | 日本小电影网站 | 成人免费视频 | 欧美日韩网站 | 国产一区二区在线免费视频 | 国产日韩亚洲欧美 | 在线亚洲电影 | 欧美成人免费 | 国产精品一区二区三区四区五区 | 亚洲黄色av| 国产精品久久久久久久久久久久 | 老司机免费视频 | 日本福利视频免费观看 | 精精精精xxxx免费视频 | 最近最新中文字幕 | 久久国产欧美日韩精品 | 国产乱码精品一区二区三区忘忧草 | 国产视频亚洲视频 | 午夜在线观看视频 | 日韩一区二区在线免费观看 | 国产成人高清成人av片在线看 | 特级丰满少妇一级aaaa爱毛片 | 中文av网站 | 天天操网| 国产精品99久久久久久久vr | 国产精品久久久久久久久久久久久 | 成年人在线观看 | 久久精品成人热国产成 | 久久亚洲国产 | 午夜寂寞网站 | 免费v片 | 成人av网页 |