1. 程式人生 > >資料同步這點事,SyncNavigator資料庫同步軟體

資料同步這點事,SyncNavigator資料庫同步軟體

WWW.SyncNavigator.CN    資料同步的軟體

SyncNavigator是一款專門用於SqlServer、Mysql資料同步的軟體,由國內頂級開發團隊開發完成,經歷8年逐步完善,目前具備強大的資料同步功能,國內很多大型連鎖超市,企業,公司都在用SyncNavigator資料同步軟體進行著資料同步服務。

它可以為我們提供智慧化資料同步,對您重要的資料庫進行實時同步操作,也可以設定定時任務傳輸,即使您的來源資料庫和目標資料庫版本不一樣,表結構不一樣,甚至是欄位不一樣,SyncNavigator也可以輕鬆幫您實現高效傳輸同步。

如果來源資料庫和目標資料庫表結構,欄位一樣,那麼全部保持預設設定即可,如果是異構資料庫,只需要動動滑鼠,輕鬆繫結來源資料庫表名和欄位,一一匹配,就能完成異構資料庫實時同步。

SyncNavigator可將資料庫同步到不同版本的資料庫上,無論你的資料庫是SqlServer 2000、還是SqlServer2008,還是SqlServer2014等,或者Mysql ,SyncNavigator都能輕鬆在他們之間無縫同步。

SyncNavigator資料庫同步軟體支援斷點續傳同步功能,第一次安裝配置好基本引數之後,就完全不用管,系統會在後臺執行,開關機也不影響資料同步,系統會在下次聯網的時候繼續上次未完成的作業,在資料庫同步的過程中出現故障,也能繼續同步資料庫,並確保資料完整性。

SyncNavigator同步是採用增量資料完成的,所以同步效率很高,每次只同步新資料或者新修改的資料,實時同步基本響應速度是毫秒級的,能迅速將源資料庫產生的新資料,或者修改的資料同步到目標資料庫上,確保資料完整性。

SyncNavigator有完善的日誌、報告郵件傳送功能,能保留每一步同步的步驟,供使用者查閱,郵件提醒功能能實時提醒傳輸進度。

SyncNavigator資料庫傳輸工具可以設定每張表的傳輸順序,以免有些表對別的邊的依賴性,先傳輸導致錯誤。

SyncNavigator資料庫傳輸工具可以設定傳輸開始或者結束後執行指定指令碼或者程式碼,能實現複雜的互動功能,讓使用者更靈活的實現自己需求。

支援分散式資料同步,可以把多個數據庫資料傳輸過來進行整合,也可以同時執行多個傳輸程序。

功能特色
SyncNavigator資料庫同步軟體特點:
1.能夠快速,持續,穩定的同步所需資料庫資料。在來源資料庫資料增加,修改或者刪除後自動同步到目標資料庫。
2.完整支援 Microsoft SQL Server。完整支援 Microsoft SQL Server 2000 2005 2008 2012 2014資料庫型別。並能在不同資料庫版本之間相互穩定高效同步資料,而不會出現問題。
3.完美支援 Mysql 4.1 以上版本。支援 Mysql 4.1 5.0 5.1 5.4 5.5   6.X。並能在不同資料庫版本之間相互同步資料,也可以將SqlServer 資料庫和Mysql資料庫之間進行同步,支援同構,異構資料庫同步。
4.只需要建立一個執行計劃就能在指定時間自動進行資料庫同步。輕鬆管理同步時間以及頻率,可以按天,或者按周,實時同步等,輕鬆設定,一鍵無憂。
5.不編寫SQL語句,不使用資料庫管理工具。與同類產品相比所需資料庫經驗知識最少,傻瓜式的同步設定,大多數情況下只需要設定來源資料庫地址,帳號密碼,目標資料庫地址,帳號密碼,然後其他保持預設,點選開始同步,就能完美完成資料同步需求。

最近一段時間,在做資料ETL相關的事,結合實踐以及自己的思考,記錄下來,以做參考。

 

概述

 一般來說,資料團隊自己是很少生產資料的,一般都是對業務線的資料進行分析加工,從而讓資料產生價值。一方面,業務線的資料會存到關係資料(如mysql),磁碟(日誌)等儲存介質;另一方面,基於大資料的分析一般會將資料儲存到hdfs,hbase,es。因此,不可避免地我們需要在這些不同的儲存介質間同步資料。
從同步時效性來說,可以分為離線同步和實時同步。離線同步,相當於某個時候對源資料做一個快照。而實時同步,一般是通過監控源資料變更操作,通過在目標端實時重放操作,從而達到實時同步的目的(如通過Binlog,EditLog)。

離線同步

 離線資料同步目前已經有開源的實現,比較流行的主要是sqoop和datax,關於她們的歷史,這裡不做介紹。本文主要說一下使用sqoop和datax以及自研的一些實踐。

背景

組裡最原始的資料同步主要由以下部分組成:
1,用sqoop從mysql匯入到hdfs。
2,用自研的工具從hdfs匯出到mysql(至於為什麼不用sqoop?主要是匯出需要做一些ETL處理,sqoop不能滿足需求)。
3,另一套自研的工具從分庫mysql匯出到hbase。
通過這個三個獨立的系統,基本能夠滿足日常的資料同步需求。但是存在一些問題:
a, 工具太分散,好幾套獨立的系統不太好維護。
b, 擴充套件性很差,當初設計時,沒有考慮考慮擴充套件性,字眼的系統嵌入到了排程系統,很難抽象出來,作為獨立的服務。
c, 服務服務:告警監控不完善等。

 

改造

隨著處理資料量以及任務的越來越大,越來越多,針對以上問題,決定基於開源的datax做深度定製。從而將資料同步服務統一起來。主要的改造點如下:
1,將匯入匯出服務統一到datax,包括對失敗任務重試,刪除增量刪除等。
2,監控指標和日誌統一接入資料平臺。
3,資料質量處理:髒資料告警,預設的型別轉換。
4,schema檢驗等。

實時同步

目標

實現可配置實時同步

設計

輸入和輸出變化很大,但是實時資料同步的核心卻只有兩個問題:
a, 資料不能丟失
b, 對資料亂序進行處理,不能出現舊的資料把新的資料覆蓋了

設計思路主要基於以下兩點:
1,針對不通的輸入和輸出,則必須和核心的處理單元進行解耦,因此源端和目標端因不同的系統,差異很大,所以提供各自的實現。但是必須通過定義好的介面和訊息格式,實現統一。
2,核心處理引擎,主要基於storm,然後通過外部儲存系統來儲存中間狀態。

小結

總的來說,基於datax改造還是蠻順利的,簡單有效。而基於實時同步系統的設計,可以說也藉助了離線同步系統的開源設計思想,通過source和sink分離,核心引擎共享的設計來實現。目前兩套系統已經成功上線,並且效果不錯。