go-etl是一个集数据源抽取,转化,加载,同步校验的工具集,提供强大的数据同步,数据转化甚至数据校验的功能。
go-etl将提供的etl能力如下:
- 主流数据库的数据抽取以及数据加载的能力,在storage包中实现
- 类二维表的数据流的数据抽取以及数据加载的能力,在stream包中实现
- 类似datax的数据同步能力,在datax包中实现
- 以mysql sql语法为基础的数据筛选、转化能力,在transform包中实现
- 数据库间的数据校验能力,在libra包中实现 (目前计划中)
鉴于本人实在精力有限,欢迎大家来提交issue或者加QQ群185188648来讨论go-etl,让我们一起进步!
本数据数据同步工具以下数据源的同步能力
类型 | 数据源 | Reader(读) | Writer(写) | 文档 |
---|---|---|---|---|
关系型数据库 | MySQL/Mariadb/Tidb | √ | √ | 读、写 |
Postgres/Greenplum | √ | √ | 读、写 | |
DB2 LUW | √ | √ | 读、写 | |
SQL Server | √ | √ | 读、写 | |
Oracle | √ | √ | 读、写 | |
无结构流 | CSV | √ | √ | 读、写 |
XLSX(excel) | √ | √ | 读、写 |
使用go-etl用户手册开始数据同步
参考go-etl开发者文档来帮助开发
本包将提供类似于阿里巴巴DataX的接口去实现go的etl框架,目前主要实现了job框架内的数据同步能力,监控等功能还未实现.
- 实现关系型数据库的任务切分
- 实现监控模块
- 实现流控模块
- 实现关系型数据库入库断点续传
目前已经实现了数据库的基础集成,已有mysql和postgresql的实现,如何实现可以查看godoc文档,利用它能非常方便地实现datax数据库间的同步,欢迎大家来提交新的数据同步方式,可以在下面选择新的数据库来同步
主要用于字节流的解析,如文件,消息队列,elasticsearch等,字节流格式可以是cvs,json, xml等
暂无时间安排计划,欢迎来实现
暂无时间安排计划,欢迎来实现
主要用于类sql数据转化
- 引入tidb数据库的mysql解析能力
- 引入tidb数据库的mysql函数计算能力
- 运用mysql解析能力和mysql函数计算能力实现数据转化能力
工具集用于编译,新增许可证等
go generate ./...
发布命令,用于将由开发者开发的reader和writer插件注册到程序中的代码
另外,该命令也会把编译信息如软件版本,git版本,go编译版本和编译时间写入命令行中
数据源插件模板新增工具,用于新增一个reader或writer模板,配合发布命令使用,减少开发者负担
用于自动新增go代码文件中许可证
go run tools/license/main.go
主要用于数据库间数据校验