ClickHouse 在執行分析查詢時的速度優勢很好的彌補了 MySQL 的不足,但是對于很多開發者和DBA來說,如何將MySQL穩定、高效、簡單的同步到 ClickHouse 卻很困難,本文對比了 NineData、MaterializeMySQL(ClickHouse自帶)、Bifrost 三款產品,看看他們在同步時的差異,
對比結果概述
整體上,NineData(官網:https://www.ninedata.cloud/ )的資料復制功能在功能、性能表現最突出,其次是Bifrost和ClickHouse自帶的MaterializeMySQL,NineData在增量DDL的處理、欄位映射的準確性、無主鍵表、以及功能豐富度上最強(資料校驗、過濾、限流等),詳細的對比如下圖:
MySQL到ClickHouse資料同步產品對比結果概述
結構映射對比
在做了詳細對比之后,對于基礎型別,只有NineData考慮的更加完整,例如MySQL的datetime需要映射到ClickHouse的DateTime64,否則則可能出現資料丟失,如果使用Biforst或MaterializeMySQL等其他產品均映射到datetime可能會造成一定程度的資料精度丟失,
此外,在對比了MySQL全部資料型別之后,發現NineData支持更完整,例如對JSON型別、幾何資料、地理資訊僅NineData支持,此外,對于基礎型別,也只有NineData考慮更加細致,使用Biforst或MaterializeMySQL等其他產品則可能導致精度丟失,從而造成資料丟失,
詳細的對比如下圖:
無主鍵表支持
NineData對記錄做了特殊的標記處理,所以很好的支持了無主鍵表的資料同步,而MaterializeMySQL、Biforst均不支持,
詳細的對比如下圖:
無主鍵表支持情況
增量DDL
對于資料增量同步,支持好各種型別的DDL是保障同步鏈路持續穩定的關鍵,NineData在無主鍵表DDL支持、欄位洗掉、欄位名修改等特殊操作均做了適配處理,可以很好的保障復制鏈路的問題,同時,NineData還提供了可視化的錯誤修復和跳過功能,可以最大限度的保障鏈路持續穩定,
詳細的對比如下圖:
增量DDL對比結果
限流、對比、過濾等
除了前面介紹的一般功能之外,為了提升資料質量、保障穩定,NineData還支持了包括資料對比、運行中的限流、資料過濾等功能,具體的說明如下:
增量DDL 限流、對比、過濾等對比結果
同步性能對比
這里使用 sysbench工具生成了5000萬行記錄進行全量性能對比,再生成約1800萬次DML(約5GB Binlog)進行增量性能對比,
對比中,全量同步 NineData 性能為36.2W RPS(每秒同步記錄數)為最高;增量同步則是 ClickHouse 自帶的同步工具 MaterializeMySQL 最高,需要注意,MaterializeMySQL 在錯誤處理上比較簡單,如果報錯則需要全部重新同步,
詳細的對比如下:
- 全量同步
通過sysbench生成10張表,每張表500W記錄(5000W行),資料檔案大小約為12G:
同步性能對比
- 增量同步
通過sysbench生成5G大小的BinLog日志(約1800W次DML),再進行增量同步:
增量同步
總結
NineData(https://www.ninedata.cloud/)在功能上領先其他同步工具,特別是欄位型別的全面適配和增量復制期間DDL的支持度,并且在動態限流、資料對比、監控等能力上也支持的最完善,
所以,如果想把MySQL的資料實時同步到ClickHouse,推薦使用NineData,不僅使用簡單(SaaS),并在滿足功能和性能的前提下,實作了欄位型別的無損轉換和資料的實時復制,很好的解決MySQL 同步資料到ClickHouse的問題,
補充說明
當前各個云廠商雖然都提供ClickHouse托管服務,但是另一方面云廠商又都在發展自己的數倉產品,在同步功能支持上通常僅對自家的數倉產品支持比較好,而對ClickHouse同步支持都很薄弱,此外,開源工具Canal也因為不能很好的支持結構同步,使用和維護起來并不方便,
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/550602.html
標籤:其他
上一篇:sql陳述句優化
下一篇:sql陳述句優化