隨筆-35  評論-33  文章-0  trackbacks-0

                  一般的業務開發,不會涉及到多種數據庫類型的操作。因為,無論是對于開發,還是運維,成本都是非常高的。如果是ORACLE數據庫到MYSQL的數據備份,目前我所了解的開源解決方案有2種:

          A:基于linkedin的databus方案(低延時變化數據捕獲系統)https://github.com/linkedin/databus

          B:使用阿里的yugong項目(數據庫遷移 (目前主要支持oracle -> mysql/DRDS))https://github.com/alibaba/yugong

                  由于時間關系,databus的我沒有花時間研究(道聽途說是目前性能最強的),主要學習了yuyong,總體來說,簡單易懂。

                架構如下



          說明:

          1 一個Jvm Container對應多個instance,每個instance對應于一張表的遷移任務

          2 instance分為三部分

            a.  extractor  (從源數據庫上提取數據,可分為全量/增量實現)

            b.  translator  (將源庫上的數據按照目標庫的需求進行自定義轉化)

            c.  applier  (將數據更新到目標庫,可分為全量/增量/對比的實現)

          以上,是它官網的說明。如果你還不明白,我來簡單用另外一個圖來解釋一下。


          其實,你仔細看的話,實際上就是對我們真正要如何做數據遷移進行了抽象,所以,有了這個認識之后,你再去理解這個東西,就會上手快一些。實際上,真正需要寫代碼的地方就在translator這一塊。有且僅在你的源表與目標表字段,名稱,類型不一致的時候。比如像這樣。

          1 字段名稱不一樣


          2 類型不一樣



          3 新增字段



          小提示:

          1 表名與類的映射定義

          yugong.table.white=t_sync_ee_122jq

          類名就是這樣:TSyncEe122jqDataTranslator

          2 數據轉換的類得放在com.taobao.yugong.translator下面,源碼里面會讀這個包下面的類文件。



          我的微信公眾號,歡迎溝通學習。
          posted on 2016-12-15 13:33 alexcai 閱讀(1242) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 邯郸县| 原平市| 电白县| 陆丰市| 安顺市| 罗定市| 临湘市| 榆社县| 平乐县| 邻水| 瑞丽市| 余庆县| 阳山县| 南溪县| 海南省| 沙洋县| 海阳市| 彭水| 高尔夫| 宁河县| 河曲县| 梁河县| 盱眙县| 额尔古纳市| 鄂托克前旗| 大洼县| 元谋县| 洮南市| 航空| 禹城市| 化隆| 厦门市| 乳山市| 崇州市| 巴里| 九寨沟县| 延庆县| 舟曲县| 磐安县| 萍乡市| 宁国市|