當前位置:
首頁 > 知識 > 數據增量同步 最佳實踐 數據集成(同步)用戶指南

數據增量同步 最佳實踐 數據集成(同步)用戶指南

SyncNavigator 做數據同步時所支持的資料庫類型:

支持sqlserver 2000-2014所有版本,全兼容,和MYsql 4.x 、MYsql 5.x 、MYsql 6.x版本。

來源資料庫和目標資料庫可以版本不同,比如:來源資料庫是sqlserver 2012 目標資料庫是mysql 5.5 ,都是可以的, SyncNavigator 支持跨資料庫版本,無縫傳輸數據。

只需要能連接上資料庫, SyncNavigator 可以安裝在第三方電腦上,來源資料庫和目標資料庫電腦上可以不用安裝程序。

需要同步的兩種數據

把需要同步的數據,根據數據寫入後是否會發生變化,分為不會發生變化的數據(一般是日誌數據)和會變化的數據(人員表,比如說人員的狀態會發生變化)。

示例說明

針對以上兩種數據場景,需要設計不同的同步策略。這裡以把業務RDS資料庫的數據同步到MaxCompute為例做一些說明,其他的數據源的道理是一樣。

根據等冪性原則(一個任務多次運行的結果一樣,則該任務支持重跑調度,因此該任務若出現錯誤,清理臟數據會比較容易),每次導入數據都是導入到一張單獨的表/分區里,或者覆蓋裡面的歷史記錄。

本文定義任務測試時間是2016-11-14,全量同步是在14號做的,同步歷史數據到ds=20161113這個分區里。至於本文涉及的增量同步的場景,配置了自動調度,把增量數據在15號凌晨同步到ds=20161114的分區里。數據里有一個時間欄位optime,用來表示這條數據的修改時間,從而判斷這條數據是否是增量數據。

不變的數據進行增量同步

這個場景,由於數據生成後就不會發生變化,因此可以很方便地根據數據的生成規律進行分區,較常見的是根據日期進行分區,比如每天一個分區。

數據準備

drop table if exists oplog;

create table if not exists oplog(

optime DATETIME,

uname varchar(50),

action varchar(50),

status varchar(10)

);

Insert into oplog values(str_to_date("2016-11-11","%Y-%m-%d"),"LiLei","SELECT","SUCCESS");

Insert into oplog values(str_to_date("2016-11-12","%Y-%m-%d"),"HanMM","DESC","SUCCESS");

這裡有2條數據,當成歷史數據。需先做一次全量數據同步,將歷史數據同步到昨天的分區。

操作步驟

步驟一:創建MaxCompute表

--創建好MaxCompute表,按天進行分區

create table if not exists ods_oplog(

optime datetime,

uname string,

action string,

status string

) partitioned by (ds string);

步驟二:配置同步歷史數據的任務:

因為只需要執行一次,所以只需操作一次測試即可。測試成功後,到」數據開發」模塊把任務的狀態改成暫停(最右邊的調度配置里)並重新提交/發布,避免任務自動調度執行。

查看MaxCompute表的結果:

數據增量同步 最佳實踐 數據集成(同步)用戶指南

打開今日頭條,查看更多精彩圖片

步驟三:往RDS源頭表裡多寫一些數據作為增量數據:

insert into oplog values(CURRENT_DATE,"Jim","Update","SUCCESS");

insert into oplog values(CURRENT_DATE,"Kate","Delete","Failed");

insert into oplog values(CURRENT_DATE,"Lily","Drop","Failed");

步驟四:配置同步增量數據的任務。注意,通過配置「數據過濾」,在15號凌晨進行同步的時候,把14號源頭表全天新增的數據查詢出來,並同步到目標表增量分區里。

數據增量同步 最佳實踐 數據集成(同步)用戶指南

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 程序員小新人學習 的精彩文章:

dubbo+zipkin調用鏈監控
MongoDB的聚合查詢(兩種方式)附項目源碼 轉

TAG:程序員小新人學習 |