經(jīng)常會(huì)遇到將Table從一個(gè)DB同步到另一個(gè)DB的需求,不同需求下,可使用的處理方式會(huì)有不同:
1. 使用特定的Processor
比如Upsert或自行開發(fā)的Processor
2. 在Nifi流程中自行構(gòu)建SQL及其綁定參數(shù)
比如借用ConvertJsonToSQL的二次加工
3. RouteOnAttribute的分支
最多能分出Delete,Update是無(wú)能為力的,而且還要考量資料順序
4. 僅新增 + DB層面的二次處理。這個(gè)其實(shí)是可以適用于所有情況,Nifi流程賊簡(jiǎn)單,但DB上的東西就多了
. 在收方加多一張tmp表,結(jié)構(gòu)與正式表一致,但就是沒有key。Nifi同步資料指到tmp表
. 在tmp表上加多Trigger,在這里面Coding去控制Insert、Update和Delete. Trigger里面除了不能Truncate Table,其它啥都能搞
. 加多一個(gè)Job或Event,定時(shí)去清tmp表,防止它爆炸
1. 使用特定的Processor
比如Upsert或自行開發(fā)的Processor
2. 在Nifi流程中自行構(gòu)建SQL及其綁定參數(shù)
比如借用ConvertJsonToSQL的二次加工
3. RouteOnAttribute的分支
最多能分出Delete,Update是無(wú)能為力的,而且還要考量資料順序
4. 僅新增 + DB層面的二次處理。這個(gè)其實(shí)是可以適用于所有情況,Nifi流程賊簡(jiǎn)單,但DB上的東西就多了
. 在收方加多一張tmp表,結(jié)構(gòu)與正式表一致,但就是沒有key。Nifi同步資料指到tmp表
. 在tmp表上加多Trigger,在這里面Coding去控制Insert、Update和Delete. Trigger里面除了不能Truncate Table,其它啥都能搞
. 加多一個(gè)Job或Event,定時(shí)去清tmp表,防止它爆炸