告别复杂配置!这款开源可视化 ETL 工具 etl-go,让你数据集成快如闪电
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. 核心优势总结
-
解放双手:通过可视化操作代替手工编写同步代码。
-
降低门槛:非专业后端同学也能通过 UI 配置简单的数据清洗流程。
-
易于维护:所有的任务定义、执行历史、日志都在一个平台上闭环。
7. 结语
etl-go 是一款非常懂开发者痛点的工具。它将 Go 语言的轻量特性与 Web 可视化的便捷性结合得恰到好处。无论你是想做简单的数据库同步,还是想搭建一套企业级的数据集成平台,它都是一个非常好的起点。
-
GitHub 仓库:https://github.com/BernardSimon/etl-go
如果你觉得这个项目不错,欢迎去 GitHub 给作者点个 Star!有任何问题也可以在评论区一起讨论。
更多推荐
所有评论(0)