數據同步的方式:mysql
- 直連同步:經過ODBC/JDBC等接口直連數據庫,對源系統性能影響較大。
- 數據文件同步:簡單,實用,鬆耦合,可加密、可壓縮。
- 數據庫日誌解析同步:好比oracle的ogg,對源系統影響小。
數據同步須要解決的問題:sql
- 支持異構庫同步,例如 mysql -> oracle,oracle -> mysql,mysql -> mysql等
- 支持跨機房同步
- 支持文件同步,例如日誌文件
- 支持限速、限流,避免每日大量的同步任務同時執行時,影響主要業務的訪問
- 支持增量同步、全量同步
- 支持容錯、降級機制,防止同步出錯時,影響後續的任務
- 支持雙向同步
- 支持大數據量同步,至少TB級別數據拉取
- 支持二次開發,畢竟每一個同步工具都不能徹底知足各自公司的業務場景,特殊需求時仍是要可以二次開發
- 可以自帶管理系統,或者可以支持在系統化管理
- 具有報警和監控功能
幾個經常使用的同步工具數據庫
Apache Sqoop
優勢:segmentfault
- 基於 MapReduce 實現,容易並行和利用現有集羣的計算資源
- 和 Hive 兼容性好,支持 Parquet,ORC 等格式
- 支持自動遷移 Schema
- 社區強大,遇到的問題容易解決
缺點oracle
- 支持的數據源不算太豐富(好比 ES),擴展難度大
- 不支持限速,容易對 MySQL 形成壓力
阿里DataX
優勢:工具
- 支持的數據源豐富尤爲是支持從非關係型數據庫到關係型數據庫的同步
- 支持限速
- 擴展方便,插件開發難度低
缺點oop
- 須要額外的運行資源,當任務比較多的時候費機器
- 沒有原生支持導出到 Hive,須要作不少額外的工做才能知足需求
- 考慮到同步自己要消耗很多的計算和帶寬資源,Sqoop 能夠更好的利用 Hadoop 集羣的資源,並且和 Hive 適配的更好,最終選擇了 Sqoop 做爲數據同步的工具。
歡迎訂閱「K叔區塊鏈」 - 專一於區塊鏈技術學習
博客地址:
http://www.jouypub.com
簡書主頁:
https://www.jianshu.com/u/756c9c8ae984
segmentfault主頁:
https://segmentfault.com/blog/jouypub
騰訊雲主頁:
https://cloud.tencent.com/developer/column/72548