複製鏈接
請複製以下鏈接發送給好友

數據抽取

鎖定
數據抽取是從數據源中抽取數據的過程,主要有全量抽取、增量抽取兩種形式。
中文名
數據抽取
功    能
頁抽出功能
要    求
準確性
方    式
全量抽取

數據抽取關係數據庫

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

數據抽取全量抽取

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

數據抽取增量抽取

增量抽取指抽取自上次抽取以來數據庫中要抽取的表中新增、修改、刪除的數據。在ETL使用過程中。增量抽取較全量抽取應用更廣。如何捕獲變化的數據是增量抽取的關鍵。對捕獲方法一般有兩點要求:準確性,能夠將業務系統中的變化數據準確地捕獲到;性能,儘量減少對業務系統造成太大的壓力,影響現有業務。增量數據抽取中常用的捕獲變化數據的方法有:
a.觸發器:在要抽取的表上建立需要的觸發器,一般要建立插入、修改、刪除三個觸發器,每當源表中的數據發生變化,就被相應的觸發器將變化的數據寫入一個臨時表,抽取線程從臨時表中抽取數據。觸發器方式的優點是數據抽取的性能較高,缺點是要求在業務數據庫中建立觸發器,對業務系統有一定的性能影響。
b.時間戳:它是一種基於遞增數據比較的增量數據捕獲方式,在源表上增加一個時間戳字段,系統中更新修改表數據的時候,同時修改時間戳字段的值。當進行數據抽取時,通過比較系統時間與時間戳字段的值來決定抽取哪些數據。有的數據庫的時間戳支持自動更新,即表的其它字段的數據發生改變時,自動更新時間戳字段的值。有的數據庫不支持時間戳的自動更新,這就要求業務系統在更新業務數據時,手工更新時間戳字段。同觸發器方式一樣,時間戳方式的性能也比較好,數據抽取相對清楚簡單,但對業務系統也有很大的傾入性(加入額外的時間戳字段),特別是對不支持時間戳的自動更新的數據庫,還要求業務系統進行額外的更新時間戳操作。另外,無法捕獲對時間戳以前數據的delete和update操作,在數據準確性上受到了一定的限制。
c.全表比對:典型的全表比對的方式是採用MD5校驗碼。ETL工具事先為要抽取的表建立一個結構類似的MD5臨時表,該臨時表記錄源表主鍵以及根據所有字段的數據計算出來的MD5校驗碼。每次進行數據抽取時,對源表和MD5臨時表進行MD5校驗碼的比對,從而決定源表中的數據是新增、修改還是刪除,同時更新MD5校驗碼。MD5方式的優點是對源系統的傾入性較小(僅需要建立一個MD5臨時表),但缺點也是顯而易見的,與觸發器和時間戳方式中的主動通知不同,MD5方式是被動的進行全表數據的比對,性能較差。當表中沒有主鍵或唯一列且含有重複記錄時,MD5方式的準確性較差。
d.日誌對比:通過分析數據庫自身的日誌來判斷變化的數據。Oracle的改變數據捕獲(CDC,Changed Data Capture)技術是這方面的代表。CDC 特性是在Oracle9i數據庫中引入的。CDC能夠幫助你識別從上次抽取之後發生變化的數據。利用CDC,在對源表進行insert、update或 delete等操作的同時就可以提取數據,並且變化的數據被保存在數據庫的變化表中。這樣就可以捕獲發生變化的數據,然後利用數據庫視圖以一種可控的方式提供給目標系統。CDC體系結構基於發佈者/訂閲者模型。發佈者捕捉變化數據並提供給訂閲者。訂閲者使用從發佈者那裏獲得的變化數據。通常,CDC系統擁有一個發佈者和多個訂閲者。發佈者首先需要識別捕獲變化數據所需的源表。然後,它捕捉變化的數據並將其保存在特別創建的變化表中。它還使訂閲者能夠控制對變化數據的訪問。訂閲者需要清楚自己感興趣的是哪些變化數據。一個訂閲者可能不會對發佈者發佈的所有數據都感興趣。訂閲者需要創建一個訂閲者視圖來訪問經發布者授權可以訪問的變化數據。CDC分為同步模式和異步模式,同步模式實時的捕獲變化數據並存儲到變化表中,發佈者與訂閲都位於同一數據庫中。異步模式則是基於Oracle的流複製技術。

數據抽取非關係數據庫

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

數據抽取通用程序庫

DMCTextFilter 是HYFsoft開發的純文本抽出通用程序庫,本產品可以從各種各樣的文檔格式的數據中或從插入的OLE對象中,完全除掉特殊控制信息,快速抽出純文本數據信息。便於用户實現對多種文檔數據資源信息進行統一管理,編輯,檢索和瀏覽。
DMCTextFilter採用了先進的多語言、多平台、多線程的設計理念,支持多國語言(英語,中文簡體,中文繁體,日本語,韓國語),多種操作系統(Windows,Solaris,Linux,IBM AIX,Macintosh,HP-UNIX),多種文字集合代碼(GBK,GB18030,Big5,ISO-8859-1,KS X 1001,Shift_JIS,WINDOWS31J,EUC-JP,ISO-10646-UCS-2,ISO-10646-UCS-4,UTF-16UTF-8等)。提供了多種形式的API功能接口(文件格式識別函數,文本抽出函數,文件屬性抽出函數,頁抽出函數,設定User Password的PDF文件的文本抽出函數等),便於用户方便使用。用户可以十分便利的將本產品組裝到自己的應用程序中,進行二次開發。通過調用本產品的提供的API功能接口,實現從多種文檔格式的數據中快速抽出純文本數據。本產品在國內外得到了廣泛的應用,在產品性能和質量上都得到了用户高度的好評。
1. 文件格式自動識別功能
本產品通過解析文件內部的信息,自動識別生成文件的應用程序名和其版本號,不依賴於文件的擴展名,能夠正確識別文件格式和相應的版本信息。可以識別的文件格式如下: 支持Microsoft Office、RTFPDF、Visio、Outlook EML和MSG、Lotus1-2-3、HTML、AutoCAD DXF和DWG、IGES、PageMaker、ClarisWorks、AppleWorks、XML、WordPerfect、Mac Write、Works、Corel Presentations、QuarkXpress、DocuWorks、WPS、壓縮文件的LZH/ZIP/RAR以及一太郎、OASYS等文件格式
2. 文本抽出功能
即使系統中沒有安裝作成文件的應用程序,可以從指定的文件或插入到文件中的OLE中抽出文本數據。
3. 文件屬性抽出功能
從指定的文件中,抽出文件屬性信息。
4. 頁抽出功能
從文件中,抽出指定頁中文本數據。
5. 對加密的PDF文件文本抽出功能
從設有打開文檔口令密碼的PDF文件中抽出文本數據。
6. 流(Stream)抽出功能
從指定的文件、或是嵌入到文件中的OLE對象中向流裏抽取文本數據。
7. 支持的語言種類
本產品支持以下語言:英語,中文簡體,中文繁體,日本語,韓國語
8. 支持的字符集合的種類
抽出文本時,可以指定以下的字符集合作為文本文件的字符集(也可指定任意特殊字符集,但需要另行定製開發):GBK,GB18030,Big5,ISO-8859-1,KS X 1001,Shift_JIS,WINDOWS31J,EUC-JP,ISO-10646-UCS-2,ISO-10646-UCS-4,UTF-16UTF-8等。 [1] 
參考資料