Go 大資料生態迎來重量級產品 CDS

kevwan發表於2020-11-26

本專案地址: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 並加入微信社群 ?

Go 大資料生態迎來重量級產品 CDS

更多原創文章乾貨分享,請關注公眾號
  • Go 大資料生態迎來重量級產品 CDS
  • 加微信實戰群請加微信(註明:實戰群):gocnio

相關文章