Go 大数据生态迎来重量级产品 CDS


本项目地址:https://github.com/tal-tech/cdsgit

ClickHouse 是一个用于联机分析 (OLAP) 的列式数据库管理系统 (DBMS)。它有着优异的性能,能够快速部署和运行。不过要想使用 ClickHouse 搭建起数仓用于数据分析,一个重要的问题就是数据如何进入 ClickHouse?咱们但愿数据源的变化可以自动实时地被同步到 ClickHouse,并且支持方便的动态的添加新的数据源 (新的数据库,表), 可以自动的生成对应数据源的 schema。github

go-zero团队使用 go 语言围绕 ClickHouse 开发了一些方便的组件与服务。golang

咱们获得了下面这样的数据同步设计数据库



该数据同步系统大体由如下三部分组成微信

  1. DM 全量同步服务 github.com/tal-tech/cds/dm工具

  2. RTU 实时增量同步服务 github.com/tal-tech/cds/rtu性能

  3. Galaxy 网页控制台服务 github.com/tal-tech/cds/galaxy大数据

流程以下:.net

  • 用户能够在网页控制台添加数据源,自动生成 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/cds

欢迎你们 star 并加入微信社区 🤝



本文分享自微信公众号 - GoCN(golangchina)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。

相关文章
相关标签/搜索