1. 前言:为什么数据集成总是很头疼?

在日常开发中,我们经常面临从 MySQL 同步数据到 Doris、清洗 CSV 文件并入库、或者定时执行数据处理任务的需求。传统的 DataX 虽好但配置繁琐且没有原生 GUI,自研脚本又难以维护和监控。

今天向大家正式介绍一款基于 Go 语言开发的开源、开箱即用、带可视化界面的 ETL 利器——etl-go


2. 项目核心亮点

相比于其他 ETL 工具,etl-go 的优势非常明显:

  • 开箱即用(Out-of-the-box):内置了常用的数据库(MySQL, PG, Doris)和文件(CSV, JSON)组件。

  • 可视化配置:告别枯燥的 JSON/YAML 配置,通过 Web UI 即可完成任务编排、参数设置和执行监控。

  • 插件化架构:基于接口设计,开发者可以极低成本扩展自己的数据源或处理逻辑。

  • 全功能支持:不仅支持数据搬运,还支持变量管理(SQL 动态参数)、前后置脚本执行以及定时任务调度

  • 轻量高性能:Go 语言原生并发优势,内存占用极低。


3. 技术架构:前后端分离

etl-go 的底层设计非常扎实,它基于 go-pocket-etl 核心进行二次开发:

  • 后端:Go + Gin + GORM + Sqlite(内置数据库,无需额外安装)+ Zap 日志。

  • 前端:Vue3 + Ant Design Vue,界面简洁现代。

  • 核心理念:数据流以 Record 为单位在 Source -> Processor -> Sink 之间流转。


4. 强大的功能版块

根据官方文档,etl-go 目前已内置了非常丰富的官方插件:

4.1 数据源与输入输出
  • 数据库支持:MySQL, PostgreSQL, SQLite。

  • 大数据摄入:支持 Doris 快速输出 (stream_load),这对于构建数仓非常友好。

  • 文件格式:支持 CSV 和 JSON 的双向读写。

4.2 数据处理(Processor)

在数据传输过程中,你可以直接在 Web 界面配置以下处理逻辑:

  • 类型转换 (convertType)

  • 行过滤 (filterRows):支持自定义条件。

  • 数据脱敏 (maskData):内置 MD5、SHA256 等算法。

  • 字段重命名/选择 (renameColumn / selectColumns)。

4.3 自动化与监控
  • 任务调度:内置 Cron 表达式,支持定时执行。

  • 变量系统:支持 SQL 查询变量,让任务更灵活。

  • 实时监控:在界面直观查看任务运行记录和日志,分析执行性能。


5. 如何快速开始?

5.1 获取程序

你可以直接在 下载页面 下载针对不同操作系统的已构建安装包。

5.2 源码启动(开发模式)

如果你想进行二次开发,也非常简单:

# 获取源码
git clone https://github.com/BernardSimon/etl-go.git

# 进入目录并运行
go mod tidy
go run main.go

启动后访问 http://localhost:8080 即可进入可视化管理后台。


6. 核心优势总结

  1. 解放双手:通过可视化操作代替手工编写同步代码。

  2. 降低门槛:非专业后端同学也能通过 UI 配置简单的数据清洗流程。

  3. 易于维护:所有的任务定义、执行历史、日志都在一个平台上闭环。

7. 结语

etl-go 是一款非常懂开发者痛点的工具。它将 Go 语言的轻量特性与 Web 可视化的便捷性结合得恰到好处。无论你是想做简单的数据库同步,还是想搭建一套企业级的数据集成平台,它都是一个非常好的起点。


如果你觉得这个项目不错,欢迎去 GitHub 给作者点个 Star!有任何问题也可以在评论区一起讨论。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐