雲時代,MySQL到ClickHouse資料同步產品對比推薦

NineData發表於2023-04-19

ClickHouse 在執行分析查詢時的速度優勢很好的彌補了 MySQL 的不足,但是對於很多開發者和DBA來說,如何將MySQL穩定、高效、簡單的同步到 ClickHouse 卻很困難。本文對比了 NineData、MaterializeMySQL(ClickHouse自帶)、Bifrost 三款產品,看看他們在同步時的差異。

對比結果概述

整體上,NineData(官網: )的資料複製功能在功能、效能表現最突出。其次是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:///)在功能上領先其他同步工具,特別是欄位型別的全面適配和增量複製期間DDL的支援度,並且在動態限流、資料對比、監控等能力上也支援的最完善。

所以,如果想把MySQL的資料實時同步到ClickHouse, 推薦使用NineData,不僅使用簡單(SaaS),並在滿足功能和效能的前提下,實現了欄位型別的無損轉換和資料的實時複製,很好的解決MySQL 同步資料到ClickHouse的問題。

補充說明

當前各個雲廠商雖然都提供ClickHouse託管服務,但是另一方面雲廠商又都在發展自己的數倉產品,在同步功能支援上通常僅對自家的數倉產品支援比較好,而對ClickHouse同步支援都很薄弱。此外,開源工具Canal也因為不能很好的支援結構同步,使用和維護起來並不方便。



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70024772/viewspace-2946766/,如需轉載,請註明出處,否則將追究法律責任。

相關文章