ETL增量單表同步簡述_根據dateTime增量
ETL增量單表同步簡述
1. 實現需求
當原數據庫的表有新增、更新、刪除操作時,將改動數據同步到目標庫對應的數據表。
2. 設計思路
設計總體流程圖如下:
步驟簡單說明:
1、設置job的執行屬性,如下圖:
2、根據要同步的表名,更新同步配置表synConfig的endTime。
3、獲取同步時間段並將beginTime和endTime設置到變量中。
4、獲取beginTime>= and <endTime,根據比較原表和目標表數據的差異性,進行更新/插入數據到目標表。
5、根據比較原表和目標表數據的差異性,進行刪除目標表的數據。一般通過id進行比較,故與4步驟分開處理。
6、更新提取的開始時間和結束時間,將上次提取的結束時間更新到開始時間。此步驟與4步驟配合。
3. 必備條件
1、目標數據庫的表結構與原數據庫相同;
2、同步的表要有syncTime字段,且數據類型和同步配置表synConfig的beginTime、endTime的數據類型相同。
3、當原表有新增、更新操作時要更新synTime字段。
4. 具體實現
4.1. 同步配置表設計
創建同步配置表synConfig,如圖所示:
字段說明如下:
?name:要同步的數據表名字。
beginTime:同步開始時間。
endTime:同步結束時間。
如下圖表示數據表table3開始同步的時間為
建表sql如下:
create table synConfig(
name nvarchar(64) not null,
beginTime datetime,
endTime datetime,
);
4.2. 軟件安裝
1、Jdk
2、Kettle同步工具
說明:
kettle7版本要求jdk必須為1.8以上。
詳細可參考官網:http://community.pentaho.com/projects/data-integration/
ETL增量單表同步簡述_根據dateTime增量