ETL-kettle 核心執行邏輯


一、大數據下的ETL工具是否還使用Kettle

      kettle 作為通用的ETL工具,非常成熟,應用也很廣泛,這里主要講一下 目前我們如何使用kettle的?

     在進行大數據處理時,ETL也是大數據處理的主要場景之一。 針對大數據下的ETL, 在大數據研究之初,曾經花費很大精力去尋找大數據下比較成熟的ETL工具,但是不多。主要分類如下:

    •       開源的圖形界面 類似 kettle 的nifi 
    •       命令形式的 如 sqoop、DataX
    •      還有使用Spark 自定義開發ETL框架的

大數據下的ETL處理過程和傳統關系型數據庫下的ETL處理過程,我的理解本質還是一樣的,要說區別 可能是大數據下需要ETL處理的數據速度足夠快,這就要求可以充分利用分布式的能力,比如利用分布式的資源進行分布式的的計算。

基於使用經驗和產品成熟度,在大數據下我們針對一些對數據處理速度不是非常之高的場景,我們仍然使用kettle。 這里我為什么不說數據量,因為對於一個ETL過程,說數據量是無意義的,好的ETL工具的核心引擎一定是一個類似現在的流式計算

也就是說數據向水一樣的流動,流動的過程中做數據處理。也可kettle本身的含義類似。

 基於個人的理解,任務kettle的優勢主要體現在以下幾點

  1.  設計時:
    • 提供了成熟的圖形界面,相比命令行形式的etl工具,更容易被推廣應用
    • 提供了豐富的各種數據庫類型的插件,數據轉換插件,涵蓋場景眾多

2.運行時

  • 控制流和數據流的設計思想的划分
  • 真正意義的數據流驅動的數據處理引擎,這一點也認為是同ESB等控制流產品不同的地方
  • 通過多線程執行插件實例和分布式執行,提升執行速度
  • 和目前大數據主流的數據庫進行集成,當然這個地方主要還是集成調用

3.可擴展性

    • 良好的插件架構,保證了設計時和運行時的可擴展性

4.待完善點

  • kettle 任務定義多了,當數據結構發生變化時,需要修改較多,最好有統一的數據對象管理
  • kette的圖形化設計器雖然好用,但是web 化的設計器更容易多人使用,提升設計效率 

 目前kettle 的定位:

    • 傳統關系型數據庫和大數據庫之間數據導入導出
    • 基於關系型數據庫和大數據庫由數據驅動的簡單數據流任務
    目前針對kettle做的擴展開發
           插件開發
      • 基於ES的sdk 開發ES的 input和output插件
      • 封裝支撐Druid 數據導出的input 插件
      • 封裝支持redis的插件
      • 封裝支持調用Kylin build job的插件
      • 封裝支持調用Tidb sql的插件
      • 優化基於Azure wasb存儲的hbase input 和output 插件
    • 調度集成
      • 大數據下的調度主要使用的Ooize,界面上主要使用HUE,通過擴展開發HUE 的插件的形式 調用Kettle的web服務進行調度集成
    • 待完善點
      • kettle的商業版中包含了元數據管理,下一步需要將kettle中使用的表和字段,和大數據的數據治理集成
      • kettle處理日志通過ELK將日志采集到ES進行進一步的分析
      • kettle web 提高kettle任務的定義效率
  • 二、核心執行邏輯
         kettl的數據流處理過程,充分體現了其引擎對數據的流式處理過程。這里主要通過展現kettle 源碼序列圖的方式進行體現,希望大家可以通過這里的序列圖了解其執行的基本原理,也就方便進行插件的擴展開發和日常問題的解決。 
    2.2 數據流處理核心邏輯

    2.2  數據流處理的核心序列
        2.2.1 任務的執行頂層序列

  • 2.2.2步驟的初始化

          

 

  • 2.2.3  步驟的執行
      

           每個步驟隊列的分配過程
        

        數據放入隊列
          

     

     

  • 2.2.4  具體步驟 -table input

 

   2.2.5 table out put
       

以上 是kettle 核心數據流處理的核心過程。分享給大家 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM