kettle多個表一起遷移-通過配置文件配置需要同步的字段,非全字段同步


kettle多個表一起遷移-通過配置文件配置需要同步的字段,非全字段同步

歡迎關注博主公眾號「Java大師」, 專注於分享Java領域干貨文章, 關注回復「999」獲取本例源文件, 免費領取全網最熱的kettle實戰視頻教程 http://www.javaman.cn/kettle/kettle-column

本文主要講解將列配置在excel配置文件中,只同步所需要的字段,不需要進行表的全部字段同步!!

一、創建如下4張表,kettle結尾的表為目標表,非kettle結尾的表為源表

t_user2和t_user3兩張為待抽取的源數據表;t_user2_kettle和t_user3_kettle為目標表

-- Create table
create table T_USER_2
(
  id       NUMBER(5),
  name     NVARCHAR2(20),
  password NVARCHAR2(30),
  sex      CHAR(2),
  gxsj     DATE
)
tablespace TEST
  pctfree 10
  initrans 1
  maxtrans 255
  storage
  (
    initial 64K
    next 1M
    minextents 1
    maxextents unlimited
  );
  
  -- Create table
create table T_USER_2_KETTLE
(
  id       NUMBER(5),
  name     NVARCHAR2(20),
  password NVARCHAR2(30),
  sex      CHAR(2),
  gxsj     DATE
)
tablespace TEST
  pctfree 10
  initrans 1
  maxtrans 255
  storage
  (
    initial 64K
    next 1M
    minextents 1
    maxextents unlimited
  );
  -- Create table
create table T_USER_3
(
  id       NUMBER(5),
  name     NVARCHAR2(20),
  password NVARCHAR2(30),
  sex      CHAR(2),
  gxsj     DATE
)
tablespace TEST
  pctfree 10
  initrans 1
  maxtrans 255
  storage
  (
    initial 64K
    next 1M
    minextents 1
    maxextents unlimited
  );
  
  -- Create table
create table T_USER_3_KETTLE
(
  id       NUMBER(5),
  name     NVARCHAR2(20),
  password NVARCHAR2(30),
  sex      CHAR(2),
  gxsj     DATE
)
tablespace TEST
  pctfree 10
  initrans 1
  maxtrans 255
  storage
  (
    initial 64K
    next 1M
    minextents 1
    maxextents unlimited
  );

二、整個作業流程如下圖所示:

下圖為整個作業的流程:包含start、獲取文件和循環處理表數據的作業流程

作業流程

三、獲取文件.ktr

該轉換包含兩個控件:excel輸入控件和復制記錄到結果控件,將excel的數據讀取出來,放入復制記錄到結果中

1、獲取excel文件,復制記錄到結果中去

讀取excel

2、excel表的第一列為表頭:souce代表需要同步的表,target代表目標表,column代表同步的字段;第2行和第3行為需要同步的表數據;

設置變量

四、循環處理.kjb

循環處理的作業流程如下:包含獲取表名和插入表兩個轉換;將步驟三的表名獲取出來放入循環處理.kjb的步驟中

此處需要注意鼠標左鍵雙擊循環處理.kjb,進入【高級】選項,勾選上【對每個輸入執行一次】的選項,點擊確定

![插入表image

1、點擊鼠標右鍵,進入作業內部,可以看到作業包含兩個轉換,如下圖

image

2、鼠標左鍵選中2-1獲取表名,鼠標右鍵進入具體的步驟控件中,下面包含兩個控件:從結果獲取記錄和設置變量。
將獲取第一步的表名,設置到source、target和column變量中

設置變量

變量

2、2-2插入表.ktr

整個插入表的轉換如下圖,包含獲取源數據同步數據(實際是表輸入)和目標數據插入(表輸出),兩個控件

目標表插入

2.1、將變量替換到sql語句當中

輸入下圖中的sql語句,勾選上替換sql語句里的變量,點擊確定

該步驟是將上一步的結果放入變量中,進行變量替換,即達到讀取配置文件的目的

運行

2.2、雙擊鼠標左鍵,進入目標數據庫數據插入控件內部,將變量替換到目標表當中,下圖中的{target}為步驟三中獲取到的target,用花括號擴起來,否則不起作用,點擊確定進行保存

設置目標表

2.3、運行整個點擊執行,查看運行結果

運行結果

運行結果

3、運行結果查看

相應的數據同步到具體的表中,根據excel文件的配置可以看到user2和user3兩張表配置的字段不同,同步到目標表的數據就不相同

image
image

根據上述表查看,發現所選字段數據已經同步到表中,該表並非全表同步!


免責聲明!

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



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