使用Golang构建数据集成系统:架构设计与选型指南

发表时间: 2022-12-18 14:27
 golang 打造一个数据集成系统,提供数据孤岛解决方案,享受从 0  1 的过程和乐趣。

架构图:

大道至简,数据集成本质是从数据源采集数据,然后写入到目标存储,其他任务调度、容量管理等都是为了更好的数据采集及同步。

功能:

主要功能:

  1. 数据采集: 支持全量采集、批量采集、增量采集,支持流式数据接入,支持API数据接入
  2. 任务调度: 实现类似 airflow 的任务调度机制,实现分布式调度
  3. 容量管理: 支持基于 k8s 部署,实现计算任务的动态管理
  4. 后台管理: 基于开源 ruoyi-ui 后台管理系统进行扩展,支持流程的可视化编辑,支持过程监控
  5. 插件管理: 实现Connector的插件化管理,便于后续的快速扩展
  6. 其他功能: 数据类型转换、数据源管理等

技术栈:

后端服务全部采用 golang 实现,主要涉及:

  1. 实现微服务框架,用 consul 作为服务发现,vault 来存储密码(后续支持云平台的 KMS )
  2. 基于 mysql 、rabbitmq 实现分布式的任务调度机制,支持任务编排
  3. 基于 golang 实现 cdc connector,主要支持 mysql、mongo ,后续再支持其他

部署方式:

支持单机部署、集群部署,集群方式支持动态扩容

未来

数据处理全流程包含:

1. 数据系统规划

2. 数据采集

3. 数据清洗与治理

4. 数据存储

5. 数据建模

6. 数据分析

7. 数据可视化

必将逐渐细分。