etl作業調度工具必備的10個功能屬性

概述

taskctl是一款國內開源的ETL工具,純C編寫,可以在Window、Linux、Unix上運行。

說白了就是,很有必要去理解一般ETL工具必備的特性和功能,這樣才更好的掌握taskctl的使用。

今天主要先描述ETL工具的通用功能。

 

ETL工具的功能之一:連接

任何ETL工具都應該有能力連接到類型廣泛的數據源和數據格式。對於最常用的關係型數據庫系統,還要提供本地的連接方式(如對於Oracle的OCI),ETL應該能提供下面最基本的功能:

 

  1. 連接到普通關係型數據庫並獲取數據,如常見的Orcal、MS SQL Server、IBM DB/2、Ingres、MySQL和PostgreSQL。還有很多很多
  2. 從有分隔符和固定格式的ASCII文件中獲取數據
  3. 從XML文件中獲取數據
  4. 從流行的辦公軟件中獲取數據,如Access數據庫和Excel電子表格
  5. 使用FTP、SFTP、SSH方式獲取數據(最好不用腳本)
  6. 還能從Web Services 或 RSS中獲取數據。如果還需要一些ERP系統裏的數據,如Oracle E-Business Suite、SAP/R3、PeopleSoft 或 JD/Edwards,ETL工具也應該提供到這些系統的連接。
  7. 還能提供Salesforce.com和SAP/R3的輸入步驟,但不是套件內,需要額外安裝。對於其他ERP和財務系統的數據抽取還需要其他解決方案。當然,最通用的方法就是要求這些系統導出文本格式的數據,將文本數據作爲數據源。

ETL工具的功能之二:平臺獨立

一個ETL工具應該能在任何平臺下甚至是不同平臺的組合上運行。一個32位的操作系統可能在開發的初始階段運行很好,但是當數據量越來越大時,就需要一個更強大的操作系統。另一種情況,開發一般是在Windows或 Mac機上運行的。而生產環境一般是Linux系統或集羣,你的ETL解決方案應該可以無縫地在這些系統間切換。

ETL工具的功能之三:數據規模

一般ETL能通過下面的3種方式來處理大數據。

  • 併發:ETL過程能夠同時處理多個數據流,以便利用現代多核的硬件架構。
  • 分區:ETL能夠使用特定的分區模式,將數據分發到併發的數據流中。
  • 集羣:ETL過程能夠分配在多臺機器上聯合完成。

Kettle是基於Java的解決方案,可以運行在任何安裝了Java虛擬機的計算機上(包括Windows、Linux和Mac)。轉換裏的每個步驟都是以併發的方式來執行,並且可以執行多次,這樣加快了處理速度。

Kettle在運行轉換時,根據用戶的設置,可以將數據以不同的方式發送到多個數據流中(有兩種幾本發送方式:分發和複製)。分發類似與分發撲克牌,以輪流的方式將每行數據只發給一個數據流,複製是將每行數據發給所有數據流。

爲了更精確控制數據,Kettle還使用了分區模式,通過分區可以將同一特徵的數據發送到同一個數據流。這裏的分區只是概念上類似於數據庫的分區。

Kettle並沒有針對數據庫分區有什麼功能。

ETL工具的功能之四:設計靈活性

一個ETL工具應該留給開發人員足夠的自由度來使用,而不能通過一種固定的方式來限制用戶的創造力和設計的需求。ETL工具可以分爲基於過程的和基於映射的。

基於映射的功能只在源數據和目的數據之間提供了一組固定的步驟,嚴重限制了設計工作的自由度。基於映射的工具一般易於使用,可快速上手,但是對於更復雜的任務,基於過程的工具纔是組好的選擇。

使用Kettle這樣基於過程的工具,根據實際的數據和也許需求,可以創建自定義的步驟和轉換。

ETL工具的功能之五:複用性

設計完的ETL轉換應該可以被複用,這是非常重要的。複製和粘貼已經存在的轉換步驟是最常見的一種複用,但這不是真正意義上的複用。

taskctl裏有一個映射(子轉換)步驟,可以完成轉換的複用,該步驟可以將一個轉換作爲其他轉換的子轉換。另外轉換還可以在多個作業裏多次使用,同樣作業也可以爲其他作業的子作業。

ETL工具的功能之六:擴展性

大家都知道,幾乎所有的ETL工具都提供了腳本,以編程的方式來解決工具本身不能解決的問題。另外,還有少數幾款ETL工具可以通過API或其他方式爲工具增加組件。使用腳本語言寫函數,函數可以被其他轉換或腳本調用。

Kettle提供了上述的所有功能。Java腳本步驟可以用來開發Java腳本,把這個腳本保存爲一個轉換,再通過映射(子轉換)步驟,又可以變爲一個標準的可以複用的函數。實際上,並不限於腳本,每個轉換都可以通過這種映射(子轉換)方式來複用,如同創建了一個組件。Kettle在設計上就是可擴展的,它提供了一個插件平臺。這種插件架構允許第三方爲Kettle平臺開發插件。

Kettle裏的所有插件,即使是默認提供的組件,實際上也都是插件。內置的第三方插件和Pentaho插件的唯一區別就是技術支持。假設你買了一個第三方插件(例如一個SugarCRM的連接),技術支持由第三方提供,而不是由Pentaho提供。

ETL工具的功能之七:數據轉換

ETL項目很大一部分工作都是在做數據轉換。在輸入和輸出之間,數據要經過校驗、連接、分隔、合併、轉置、排序、合併、克隆、排重、過濾、刪除、替換或者其他操作。

 

在不同機構、項目和解決方案裏,數據轉換的需求都大不相同,所以很難說清一個ETL工具最少應該提供哪些轉換功能。但是呢,常用的ETL工具(包括taskctl)都提供了下面一些最基本的整合功能:

  • 緩慢變更維度
  • 查詢值
  • 行列轉換
  • 條件分隔
  • 排序、合併、連接
  • 聚集

ETL工具的功能之八:測試和調試

測試通常分爲黑盒測試(也叫功能測試)和白盒測試(結構測試)

黑盒測試,ETL轉換就被認爲是一個黑盒子,測試者並不瞭解黑盒子的功能,只知道輸入和期望的輸出。

白盒測試,要求測試者知道轉換內部的工作機制並依此設計測試用例來檢查特定的轉換是否有特定的結果。

調試實際是白盒測試中的一部分,通過高度可以讓開發者或測試者一步一步地運行一個轉換,並找出問題的所在。

ETL工具的功能之九:血統分析和影響分析

任何ETL工具都應該有一個重要的功能:讀取轉換的元數據,它是提取由不同轉換構成的數據流的信息。

血統分析和影響分析是基於元數據的兩個相關的特性。

血統是一種回溯性的機制,它可以查看到數據的來源。

影響分析是基於元數據的另一種分析方法,可以分析源數據對隨後的轉換以及目標表的影響。

ETL工具的功能之十:日誌和審計

數據倉庫的目的就是要提供一個準確的信息源,因此數據倉庫裏的數據應該是可靠的、可信任的。爲了保證這陣可靠性,同時保證可以記錄下所有的數據轉換操作,ETL工具應該提供日誌和審計功能。

日誌可以記錄下在轉換過程中執行了哪些步驟,包括每個步驟開始和結束時間戳。

審計可以追蹤到對數據做的所有操作,包括讀行數、轉換行數、寫行數。

taskctl 6.0免費開源領用------關注公衆號 "taskctl" ----關鍵字回覆 "領取" 即可-----

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章