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

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

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

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

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

                架構(gòu)如下



          說明:

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

          2 instance分為三部分

            a.  extractor  (從源數(shù)據(jù)庫上提取數(shù)據(jù),可分為全量/增量實現(xiàn))

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

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

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


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

          1 字段名稱不一樣


          2 類型不一樣



          3 新增字段



          小提示:

          1 表名與類的映射定義

          yugong.table.white=t_sync_ee_122jq

          類名就是這樣:TSyncEe122jqDataTranslator

          2 數(shù)據(jù)轉(zhuǎn)換的類得放在com.taobao.yugong.translator下面,源碼里面會讀這個包下面的類文件。



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

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


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 鹰潭市| 蓝山县| 深圳市| 班玛县| 新建县| 成安县| 牙克石市| 万盛区| 安顺市| 东莞市| 四子王旗| 泰宁县| 濮阳市| 塔城市| 鄯善县| 渝中区| 双峰县| 蒲江县| 尤溪县| 大丰市| 会同县| 搜索| 岗巴县| 无棣县| 出国| 博爱县| 巴里| 同心县| 扶沟县| 故城县| 武夷山市| 柳林县| 潍坊市| 新兴县| 民和| 崇明县| 蒙城县| 砀山县| 广河县| 定西市| 吉木萨尔县|