日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

ETL工具的功能和kettle如何來提供這些功能

 遠方 2019-06-29

不多說,直接上干貨!

 

  大家會有一個疑惑,本系列博客是Kettle,那怎么扯上ETL呢?

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

 

  說白了就是,很有必要去理解一般ETL工具必備的特性和功能,這樣才更好的掌握Kettle的使用。我這里啊,先描述ETL工具的通用功能,再來描述作為ETL工具其中的一種(Kettle)是如何來提供這些功能的(圖文詳解)

 

 

ETL工具的功能之一:連接

  任何ETL工具都應(yīng)該有能力連接到類型廣泛的數(shù)據(jù)源和數(shù)據(jù)格式。對于最常用的關(guān)系型數(shù)據(jù)庫系統(tǒng),還要提供本地的連接方式(如對于Oracle的OCI),ETL應(yīng)該能提供下面最基本的功能:

  (1)連接到普通關(guān)系型數(shù)據(jù)庫并獲取數(shù)據(jù),如常見的Orcal、MS SQL Server、IBM DB/2、Ingres、MySQL和PostgreSQL。還有很多很多

 ?。?)從有分隔符和固定格式的ASCII文件中獲取數(shù)據(jù)

 ?。?)從XML文件中獲取數(shù)據(jù)

 ?。?)從流行的辦公軟件中獲取數(shù)據(jù),如Access數(shù)據(jù)庫和Excel電子表格  

 ?。?)使用FTP、SFTP、SSH方式獲取數(shù)據(jù)(最好不用腳本)

 ?。?)還能從Web Services 或 RSS中獲取數(shù)據(jù)。如果還需要一些ERP系統(tǒng)里的數(shù)據(jù),如Oracle E-Business Suite、SAP/R3、PeopleSoft 或 JD/Edwards,ETL工具也應(yīng)該提供到這些系統(tǒng)的連接。

   (7)還能提供Salesforce.com和SAP/R3的輸入步驟,但不是套件內(nèi),需要額外安裝。對于其他ERP和財務(wù)系統(tǒng)的數(shù)據(jù)抽取還需要其他解決方案。當然,最通用的方法就是要求這些系統(tǒng)導(dǎo)出文本格式的數(shù)據(jù),將文本數(shù)據(jù)作為數(shù)據(jù)源。

 

 

 

 

 

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

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

 

 

 

 

 ETL工具的功能之三:數(shù)據(jù)規(guī)模

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

  并發(fā):ETL過程能夠同時處理多個數(shù)據(jù)流,以便利用現(xiàn)代多核的硬件架構(gòu)。

  分區(qū):ETL能夠使用特定的分區(qū)模式,將數(shù)據(jù)分發(fā)到并發(fā)的數(shù)據(jù)流中。

  集群:ETL過程能夠分配在多臺機器上聯(lián)合完成。

 

 

 

 

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

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

  為了更精確控制數(shù)據(jù),Kettle還使用了分區(qū)模式,通過分區(qū)可以將同一特征的數(shù)據(jù)發(fā)送到同一個數(shù)據(jù)流。這里的分區(qū)只是概念上類似于數(shù)據(jù)庫的分區(qū)。

   Kettle并沒有針對數(shù)據(jù)庫分區(qū)有什么功能。

   至于Kettle的擴展集群,這個很簡單理解,不多贅述。

 

 

 

 

 

 ETL工具的功能之四:設(shè)計靈活性

  一個ETL工具應(yīng)該留給開發(fā)人員足夠的自由度來使用,而不能通過一種固定的方式來限制用戶的創(chuàng)造力和設(shè)計的需求。ETL工具可以分為基于過程的和基于映射的。

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

   使用Kettle這樣基于過程的工具,根據(jù)實際的數(shù)據(jù)和也許需求,可以創(chuàng)建自定義的步驟和轉(zhuǎn)換。

 

 

 

 

 

  ETL工具的功能之五:復(fù)用性

  設(shè)計完的ETL轉(zhuǎn)換應(yīng)該可以被復(fù)用,這是非常重要的。復(fù)制和粘貼已經(jīng)存在的轉(zhuǎn)換步驟是最常見的一種復(fù)用,但這不是真正意義上的復(fù)用。

  Kettle里有一個映射(子轉(zhuǎn)換)步驟,可以完成轉(zhuǎn)換的復(fù)用,該步驟可以將一個轉(zhuǎn)換作為其他轉(zhuǎn)換的子轉(zhuǎn)換。另外轉(zhuǎn)換還可以在多個作業(yè)里多次使用,同樣作業(yè)也可以為其他作業(yè)的子作業(yè)。

 

 

 

 

 

 

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

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

  Kettle提供了上述的所有功能。Java腳本步驟可以用來開發(fā)Java腳本,把這個腳本保存為一個轉(zhuǎn)換,再通過映射(子轉(zhuǎn)換)步驟,又可以變?yōu)橐粋€標準的可以復(fù)用的函數(shù)。實際上,并不限于腳本,每個轉(zhuǎn)換都可以通過這種映射(子轉(zhuǎn)換)方式來復(fù)用,如同創(chuàng)建了一個組件。Kettle在設(shè)計上就是可擴展的,它提供了一個插件平臺。這種插件架構(gòu)允許第三方為Kettle平臺開發(fā)插件。

  大家要清楚,Kettle里的所有插件,即使是默認提供的組件,實際上也都是插件。內(nèi)置的第三方插件和Pentaho插件的唯一區(qū)別就是技術(shù)支持。

  假設(shè)你買了一個第三方插件(例如一個SugarCRM的連接),技術(shù)支持由第三方提供,而不是由Pentaho提供。

 

 

 

 

 

 ETL工具的功能之七:數(shù)據(jù)轉(zhuǎn)換

   ETL項目很大一部分工作都是在做數(shù)據(jù)轉(zhuǎn)換。在輸入和輸出之間,數(shù)據(jù)要經(jīng)過校驗、連接、分隔、合并、轉(zhuǎn)置、排序、合并、克隆、排重、過濾、刪除、替換或者其他操作。在不同機構(gòu)、項目和解決方案里,數(shù)據(jù)轉(zhuǎn)換的需求都大不相同,所以很難說清一個ETL工具最少應(yīng)該提供哪些轉(zhuǎn)換功能。但是呢,常用的ETL工具(包括Kettle)都提供了下面一些最基本的整合功能:

    緩慢變更維度    

    查詢值

    行列轉(zhuǎn)換

    條件分隔

    排序、合并、連接

    聚集

 

 

 

ETL工具的功能之八:測試和調(diào)試

  這個很簡單,不多贅述,后續(xù)博客有實戰(zhàn)。

 

 

 

 

 

 

ETL工具的功能之九:血統(tǒng)分析和影響分析

  任何ETL工具都應(yīng)該有一個重要的功能:讀取轉(zhuǎn)換的元數(shù)據(jù),它是提取由不同轉(zhuǎn)換構(gòu)成的數(shù)據(jù)流的信息。

  血統(tǒng)分析和影響分析是基于元數(shù)據(jù)的兩個相關(guān)的特性。

  血統(tǒng)是一種回溯性的機制,它可以查看到數(shù)據(jù)的來源。

  影響分析是基于元數(shù)據(jù)的另一種分析方法,可以分析源數(shù)據(jù)對隨后的轉(zhuǎn)換以及目標表的影響。

 

 

 

 

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

   數(shù)據(jù)倉庫的目的就是要提供一個準確的信息源,因此數(shù)據(jù)倉庫里的數(shù)據(jù)應(yīng)該是可靠的、可信任的。為了保證這陣可靠性,同時保證可以記錄下所有的數(shù)據(jù)轉(zhuǎn)換操作,ETL工具應(yīng)該提供日志和審計功能。

     日志可以記錄下在轉(zhuǎn)換過程中執(zhí)行了哪些步驟,包括每個步驟開始和結(jié)束時間戳。

     審計可以追蹤到對數(shù)據(jù)做的所有操作,包括讀行數(shù)、轉(zhuǎn)換行數(shù)、寫行數(shù)。

 

 

  更多深入,見這套系列博客。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多