etlgr是什么服务器_ETL是指什么 - 金融行业 - ITPUB论坛-中国专业的IT技术社区
ETL 簡介??frim??www
ETL是建置或更新數據倉儲中的內容時,對于所需之數據進行數據擷取、轉換、加載的過程,由字面上即能得知它是由三個環環相扣的步驟所組成:Extract - 數據擷取、Transform - 數據轉換與Load - 數據加載 。
ETL ( Extract-Transform-Load ) 是建置或更新數據倉儲 ( Data Warehouse ) 中的內容時,對于所需之數據進行數據擷取、轉換、加載的過程,由字面上即能得知它是由下述三個環環相扣的步驟所組成:
?? ? ? ? Extract — 資料擷取:從數據源處擷取所需之數據數據。
?? ? ? ? Transform — 數據轉換:針對所擷取出之數據數據,依照商業邏楫的需求,針對數據數據作適當的轉換。
?? ? ? ? Load — 數據加載:最后將已作適當轉換過的數據數據加載到目的地。
以下分別說明。
Extract
大多數的數據倉儲項目,包含著必須從各個不同的數據源系統來擷取所需之數據數據,來源系統可能位于不同的組織、部門,以各自不同的架構、格式、方法儲存數據數據。不論是自行撰寫程序,或購買工具來執行數據擷取的工作,都必須注意到程序或工具對于擷取接口的可擴充性及多樣性。一般常見的數據源為文本文件格式和關系數據庫系統,而非關系數據庫系統和特殊數據格式內容的系統或文件格式,如:VSAM、ISAM、Excel、Http Web Page、XML、PDF、binary data ...等也極有可能是數據源。這些源數據具有下列特性:通常為距現在時間較近、較實時的交易性數據;因為需要能夠將數據較快速地反應給前端的使用者,通常都已經針對數據結構進行過優化的微調;數據可能己進行過正規化或反正規化的過程。
在這個階段通常還會針對資料做二件事:
?? ? ? ? 數據格式轉換 ( convert data type )
由于可能有各式各樣的數據源和不同的數據格式,在利用程序語言開發或使用現有工具時,有必要把源數據轉換成共同數據格式,例如一個程序語言內部使用的數據格式( 在 Java 中的UTF-8 數據格式 ) 或者現有ETL工具內部使用的數據格式 ( 在Informatica PowerCenter中的UCS-2數據格式 )。藉由共同數據格式,在下一個步驟“數據轉換”中,數據彼此之間就可以作相對應的轉換和比較。
?? ? ? ? 初步資料核驗 ( parsing )
針對所擷取出來的數據,比對其格式和結構是否符合所需,例如:是固定字段長度內容的數據、還是用區隔符號定義的數據,亦或區隔符號是否為所定義的。如果不符合,則依照相對應的游戲規則以決定該采取何種反應,如:停止整個ETL流程;或者將有問題的部份數據另外紀錄起來并發出警告,但整個ETL流程仍持續進行。
Transform
不論是因數據散落在各個不同的部門,對于相同商業意涵的數據,以各自不同的格式、方法儲存數據數據,故而需要整合;還是基于商業邏楫上的需求,必須依照應用程序數據的特性來分類、匯歸、轉換數據型態;亦或是把經年累月所聚積的歷史資料來作合并、統計、分折及計算;前述這些需求都必須經由“數據轉換”的動作。由于可能有各式各樣千奇百怪的轉換需求,因此ETL工具中關于數據轉換的組成組件通常是最多元、最豐富的,往往也是決定ETL產品的重要考慮之一。原則上數據轉換就是將所擷取出之數據數據 ( 流 ),交給這些數據轉換組件,一個一個的、循序地依照所設計好的規則去做數據的轉換,通常會包含下列動作:
?? ? ? ? 過濾出某些想要的數據,清除掉某些筆不需要的數據,或是按照設定的邏楫規則去驗證數據;
?? ? ? ? 轉換或設定部份字段的數據值,或是經由各式各樣的文字或數值運算產出新字段的數據值;
?? ? ? ? 針對數據的某些字段作排序、分組,或是數據分組后作加總之類的數據運算以產出新字段的數據值;
?? ? ? ? 同質或異類數據來源的數據作關連 ( Join ) 或合并 ( Union ) 之數據運算;
?? ? ? ? 利用組件去產出序列值 ( Sequence number ) 或是獨特的辨識值 ( Unique ID );
?? ? ? ? 依照部份字段的數據值來分割數據流,或將多個數據流統合成單一數據流;
?? ? ? ? 呼叫使用外部的函數或組件 ( 呼叫 Stored Procedure, Web Services, ... );
?? ? ? ? 資料的倒置 ( Transpose or Pivot )
等等。
Load
相同于“數據擷取”階段,程序或工具對于加載接口的可擴充性及多樣性,也是一個要考慮的重點。在這個階段,數據最后加載的目的地通常是數據倉儲或是數據市集 ( Data Mart )。但常常因為數據的安全性、商業邏輯流程上的考慮,希望數據永不遺失,或是在任何ETL過程 ( process ) 出錯時,能夠在其中某一階段重新開始執行部份流程,而不需要全部重新開始,故通常會把數據先加載到暫存 ( Temp ) 或階段區 ( Stage )。之后可能等到所有所需的數據都己到位,或是所排定的行程 ( Schedule ) 觸發后,才由另外的ETL過程,來把數據加載到數據倉儲或是數據市集中。這些被加載數據具有下列特性:通常為距現在時間較遠、歷史性的數據,而常常都是依照某一個時間區間的歷史數據,所計算加總后出來的數據值,也因此相對的影響到ETL過程,將數據更新或加載到目的地的頻率及時間。
ETL工具的選擇考慮
在自行開發或購買商用ETL工具時,基本上需考慮系列因素:
?? ? ? ? 成本及時效性
技術人員的能力,項目的成本及時程,后續維護及監控管理的難易與人力,未來擴充的成本。
?? ? ? ? 工具的支持能力
是否支持現有的軟硬件平臺,可否讀取現有的數據庫系統及文件格式,是否有搭配的程序開發工具包 ( SDK ),未來擴充的能力。
?? ? ? ? 數據轉換的復雜性 數據轉換的內容愈復雜,愈適合購買一套ETL工具。
?? ? ? ? 數據清理的需要性
在加載數據倉儲或是數據市集前,是否需要繁復的數據清理 ( Cleaning )?
?? ? ? ???數據數據量的大小
現有的商業ETL工具,都有各自特殊的技術來提升搬移大量資料的效能。
由此作出正確的選擇,以銜接數據源與數據倉儲系統,充分支持商業智能的應用。
總結
以上是生活随笔為你收集整理的etlgr是什么服务器_ETL是指什么 - 金融行业 - ITPUB论坛-中国专业的IT技术社区的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 人工智能之基于face_recognit
- 下一篇: 麻省理工18年春软件构造课程阅读03“测