Go 大數據生態迎來重要產品 CDS


項目地址:https://github.com/tal-tech/cds

ClickHouse是一個用於聯機分析(OLAP)的列式數據庫管理系統(DBMS)。它有着優異的性能,可以快速部署和運行。
不過要想使用ClickHouse搭建起數倉用於數據分析,一個重要的問題就是數據如何進入ClickHouse?
我們希望數據源的變化能夠自動實時地被同步到ClickHouse,而且支持方便的動態的添加新的數據源(新的數據庫,表),
能夠自動的生成對應數據源的schema。

go-zero 團隊使用go語言圍繞ClickHouse開發了一些方便的組件與服務。

我們得到了下面這樣的數據同步設計

該數據同步系統大致由以下三部分組成

  1. DM 全量同步服務 github.com/tal-tech/cds/dm
  2. RTU 實時增量同步服務 github.com/tal-tech/cds/rtu
  3. Galaxy 網頁控制台服務 github.com/tal-tech/cds/galaxy

流程如下:

  • 用戶可以在網頁控制台添加數據源,自動生成DDL,添加同步任務,該任務會被發送到etcd。
  • dm會收到全量同步的通知,執行歷史數據的全量同步工作。
  • 之后網頁控制台服務會指定connector開啟數據庫log監聽工作,數據會進入kafka。
  • 監聽etcd集群的RTU實時增量同步服務服務會發現有新的任務,RTU自動領取任務,到kafka消費數據並同步至ClickHouse。

上述服務的開發使用了go語言。借助於go-zero中的工具包,如goctl等,
我們快速實現了它。它還加入了支持自適應mongoDB結構變化,支持數據分表等。

我們相信這是go語言與ClickHouse探索大數據的一個不錯的起點,我們希望有更多的人能夠參與進來。

CDS項目地址:https://github.com/tal-tech/cds

go-zero項目地址:https://github.com/tal-tech/go-zero

歡迎大家 star 並加入微信社區 🤝

項目地址:
https://github.com/tal-tech/go-zero


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM