數據抽取平臺pydatax介紹

   緣起一:

        公司現有數據倉庫,是通過kettle從mysql抽取到目標庫,運行多年,主要有以下問題,

            1,效率低:kettle抽取行數少 

            2,容錯性差:一個表抽取出錯就導致後續計算會出問題,

            3,擴展性差: 對多庫多表等支持不好

     近300張表抽取,再加上計算,每天都算到7點,還有2個巨大的計算要等到10點左右才能算完。

    上一任數倉開發者,使用datax來替換kettle,將數據通過datax抽取到新的greeplum中,效率很高,而且穩定,但每個表一個shell文件,300個表要300個shell文件,每次修改都要登陸到linux修改,太麻煩了。但遷移了部分表又沒有全部遷移。

     自從2022年11月接下這套數據倉庫系統,就想怎麼優化這數倉系統。

  緣起二:

       2023年10月開始,公司接了幾個關於數據指標系統計算的大單。經濟形勢不好,經濟上開始開源節流,我們這些維護人員轉做項目,當項目確定後,和另一個開發人員一起做個數據倉庫系統。這個數據倉庫的ETL抽取層任務交給我,因爲以前設計和實現過下面2個系統:

        1、SSIS數據同步系統

        2,用ELK分析每天4億多條騰訊雲MySQL審計日誌(1)--解決過程   

   借鑑2個系統的思路,就想,是否可以通過程序調用datax,做個閉環的基於datax的系統,不用再寫很多shell文件,將其元數據都配置化,提高開發效率。

 方法:

      市面上是有datax_web這個可視化配置平臺,自己測試,和自己想要的不一樣,思考了一下,要麼用linux的shell或者python3來寫這個datax的配置調度,將其需要的數據都配置化:

       1,測試了linux的shell,在讀取mysql表數據字段數據時,進行多字段數據讀取,字段數據讀出後,不能很好分割出,有空格的會作爲一個新字段。不可用

       2,因datax也是python開發的,支持python2,想用python3程序開發,實現配置化,通過測試,發現是可以直接在python3程序調用datax,而且很方便。 可用

  目標:   簡化datax的開發,其配置等數據都數據庫表配置化

        經過1個多月的開發和測試,達到了上面的2個要求,同時可以記錄執行過程等相關信息(如抽取時間,抽取速度,抽取行數等),執行錯誤記錄相關錯誤信息,不用再登陸到linux去看日誌文件信息。

        這個小系統,被命名爲pydatax抽取系統,和以前用kettle和單個文件datax相比,有很大優勢: 簡單,實用和高效

     pydatax新系統帶來巨大便利:

    1.   抽取表等相關信息數據全部可配置化
    2.   抽取出錯信息直接表中查看
    3.   新加和修改直接修改表數據即可完成,極大提高效率
    4.   抽取歷史數據和錯誤數據可單獨執行
    5.   有抽取的歷史記錄日誌等信息

 

       

 

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