閱讀完實踐一的小夥伴肯定心想,如果只是單表同步,那我直接mysql的主從即可,何必搞得這麼麻煩。
雖然otter可以加速同步,但是國內的環境很少有達到阿里的那個場景的啊。
這時,我們就要開始第二次實踐,體驗otter的高擴展性了。
還是以實踐一的場景爲例子,但是,我們做一些擴展:
假設我在同步的時候,把目標庫數據平臺當成數據倉庫,以後全國所有的倉庫都需要往數據平臺寫t_inventory_bin表數據,
同時,有些數量字段不需要,只需要保留總數即可。
此外,需要增加一個最後操作時間
此時,我們分析需求,得到如下幾點小結:
1.目標庫t_inventory_bin需要用warehouse_id字段來標識某條數據來源於某個倉庫
2.目前warehouse_id字段各個倉庫並沒有區分開,也就是說我們需要根據不同的倉庫,重新賦值warehouse_id
3.拋棄掉總數以外的其他數量字段
4.增加一個最後操作時間
那麼,我們該怎麼做呢?
一、修改目標表sql
源sql爲
修改後sql爲
可以看到,我們去除了無用字段,增加了一個更新時間
二、編寫自定義轉義代碼
otter的設計模型爲s\e\t\l,我們可以通過增加自定義處理代碼來實現高擴展性。詳見otter擴展性
廢話不多說,我們來看下如何通過轉義代碼來實現我們的需求
三、將我們的自定義代碼植入到otter中
1.找到我們之前配置的映射關係,點擊編輯,進入到映射關係第一頁。
EventProcessor類型選擇source,即源碼模式。然後將我們的自定義代碼黏貼到EventProcessor文本的文本框中,點擊保存即可
完成