【Kettle】資料整合之FTP下載+本地照片檔案匯入Oracle資料庫

來源:互聯網
上載者:User

標籤:tp伺服器   跳轉   解析   bsp   bubuko   zip壓縮   tps   odi   inf   

一、資料整合業務情境

    1.1 背景

        因GA某系統進行調整,導致原先從該系統備份資料庫擷取的相應資料資源無法正常擷取,後續的資料統一由GA某系統每日將前一日的ZTRY照片資料壓縮後上傳到指定的FTP伺服器上,需要從該FTP上下載下來,解壓後將JPEG照片資料解析載入進入資料庫。

    1.2 目標

        需要建立作業可以定時從FTP下載伺服器將ZIP檔案下載到本地指定檔案夾,將ZIP檔案解壓後,獲得JPEG格式照片,通過Kettle轉換將照片進行解析,同時按照一定的規則將照片的名字等資訊解析拼接成唯一主鍵,以實現將本地照片檔案整合到資料庫中進行儲存,整合完畢後將ZIP壓縮檔轉移至備份檔案夾,同時將解壓後的檔案夾及照片檔案刪除。

    1.3 工具及組件

        工具:IDI(基於Kettle二次開發的ETL工具)

        組件:①轉換:輸入組件、輸出組件、

                  ②作業:

二、資料整合設計思路

    2.1 作業調度設計思路

        設計思路如流程所示:

        1、擷取時間變數

         作業啟動後調用時間變數轉換進行時間變數的捕獲,擷取經過格式化處理的昨日日期。

        2、檢查目錄情況

         進入本地指定下載檔案夾中進行查看,確認檔案夾中是否已經下載昨日日期的ZIP檔案。

        3、執行判斷

         若下載檔案夾中為空白,或不存在昨日日期的ZIP檔案,則跳轉進入FTP下載;反之,跳出作業停止,等待下一次作業啟動。

        4、FTP下載檔案

        根據日期從FTP上下載符合日期要求的ZIP檔案,並將其儲存在本地指定的下載檔案夾中。

         5、解壓縮ZIP檔案

        將ZIP檔案解壓縮到指定的解壓檔案夾。

         6、資料清洗整合

        調用資料清洗處理整合轉換,捕獲ZIP檔案中的資料並針對資料進行清洗、轉換、處理、載入。

         7、刪除目錄

        資料清洗轉換完成,資料正常載入進入資料庫後,將解壓縮產生的目錄和檔案刪除,釋放空間。

         8、移動檔案

         將ZIP檔案轉移到備份檔案夾進行儲存,以便後期資料出現問題進行恢複或者進行核查。

         9、結束

         結束整個作業,等待作業下一次啟動。

    2.2 轉換抽取設計思路

        2.2.1 捕獲時間變數

        設計思路如流程所示:

        1、擷取系統日期時間

        擷取當前系統的昨日零點時間,即若本日為2018年07月15日18時36分47秒,則捕獲的時間應為2018/07/14 00:00:00.000。

        2、日期時間格式化

        將上述2018/07/14 00:00:00.000格式化為20180714。

        3、設定時間變數

        將格式化的日期資料作為變數傳入變數中儲存。

        2.2.2 資料清洗整合

        設計思路如下所示:

        1、捕獲照片檔案名稱

        2、照片檔案解析

        將照片檔案解析成為位元據。

        3、照片資料清洗整合

        將資料流中的資料通過組件進行清洗、轉換,整合成目標資料流。

        4、資料載入

        將目標資料流載入進入資料庫中儲存。

三、資料整合解決方案

    3.1 作業調度模型

        3.1.1 作業調度流程

圖示:作業調度模型

        3.1.2 作業模型解析

           3.1.2.1 啟動

            3.1.2.2 調用時間變數轉換模型

            3.1.2.3 檢查目錄是否為空白

            3.1.2.4 跳出作業

            3.1.2.5 FTP下載

            3.1.2.6 解壓縮檔案

            3.1.2.7 調用資料清洗整合轉換模型

            3.1.2.8 刪除解壓縮目錄

            3.1.2.9 移動壓縮檔

            3.1.2.10 作業結束

    3.2 整合轉換模型

        3.2.1 整合轉換流程

圖示:捕獲時間變數轉換。

圖示:資料清洗整合轉換

        3.2.2 整合轉換流程解析

            3.2.2.1 捕獲時間變數轉換

               3.2.2.1.1 擷取系統日期時間

               3.2.2.1.2 日期時間格式化

//Script here


var SYS_DATE = date2str(TODAY,‘yyyyMMdd‘);

               3.2.2.1.3 設定時間變數

            3.2.2.2 資料清洗整合轉換

                3.2.2.2.1 擷取檔案名稱

                3.2.2.2.2 照片轉換二進位

/Script here

var file = new java.io.File(filename);

var fileInputStream = new java.io.FileInputStream(file);

var Content = org.pentaho.di.core.Const.createByteArray(file.length());

fileInputStream.read(Content,0,file.length());

fileInputStream.close();

                3.2.2.2.3 拆分欄位

                3.2.2.2.4 字串替換

                3.2.2.2.5 欄位選擇

                3.2.2.2.6 列轉行

                3.2.2.2.7 資料修改

//Script here

var zp01 = ZP_1;
var zp02 = ZP_2;
var zp03 = ZP_3;
var zp04 = ZP_4;
var zp05 = ZP_5;
var zp06 = ZP_6;

var zp01modifytime = ZP_1_LASTMODIFYTIME;
var zp02modifytime = ZP_2_LASTMODIFYTIME;
var zp03modifytime = ZP_3_LASTMODIFYTIME;
var zp04modifytime = ZP_4_LASTMODIFYTIME;
var zp05modifytime = ZP_5_LASTMODIFYTIME;
var zp06modifytime = ZP_6_LASTMODIFYTIME;

var zpscrq = replace(dirname,‘_ZP‘,‘‘);
var dirname1 = ‘ftp://10.78.1.30/‘+ dirname + ‘.zip‘;

if(zp01==null && zp02==null && zp03==null){
     zp01=zp04;
     zp02=zp05;
     zp03=zp06;
     zp01modifytime=zp04modifytime;
     zp02modifytime=zp05modifytime;
     zp03modifytime=zp06modifytime;

}

                3.2.2.2.8 擷取系統資訊

                3.2.2.2.9 欄位選擇

                3.2.2.2.10 過濾記錄

                3.2.2.2.11 插入更新

                3.2.2.2.12 拋棄無效資料

四、其他說明

    暫無。

【Kettle】資料整合之FTP下載+本地照片檔案匯入Oracle資料庫

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.