乐趣区

关于golang: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

退出移动版