本次課程的邏輯是同步t1表資料到t2表,t1和t2表的表機構相同,都有id,name,createtime三個欄位。
CREATE TABLE `t1` ( `id` bigint NOT NULL AUTO_INCREMENT, `name` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL, `createtime` datetime DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci
1、之前的課程有介紹過單個轉換的全量和增量資料同步,今天我們一起學習下透過trans來實現將增量和全量合二為一。這裡面重點用到了執行Dynamic SQL步驟,如下圖所示:
2、查詢目標表t2中的表記錄總條數,若總條數為0表示沒有進行同步過,需要進行全量同步,否則進行增量同步。這裡增量同步的邏輯是透過兩個表的id進行比對,當然也可以透過業務時間欄位進行比對。
3、使用javascript指令碼步驟動態構建sql語句,根據maxId值進行編寫邏輯,如下圖所示:
4、使用執行Dynamic SQL步驟執行前面構建的sql語句。
1)SQL field name:動態sql語句欄位。
2)Template SQL:我個人理解就是欄位設定別名方便步驟後續使用。
5、表輸出步驟將資料寫入t2表。