dzwvip / go-etl

go-etl是一个集数据源抽取,转化,加载,同步校验的工具集,提供强大的数据同步,数据转化甚至数据校验的功能。

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

go-etl

LICENSE Language Build Go Report Card GitHub release GitHub release date Coverage Status GoDoc

go-etl是一个集数据源抽取,转化,加载,同步校验的工具集,提供强大的数据同步,数据转化甚至数据校验的功能。

go-etl将提供的etl能力如下:

  1. 主流数据库的数据抽取以及数据加载的能力,在storage包中实现
  2. 类二维表的数据流的数据抽取以及数据加载的能力,在stream包中实现
  3. 类似datax的数据同步能力,在datax包中实现
  4. 以mysql sql语法为基础的数据筛选、转化能力,在transform包中实现
  5. 数据库间的数据校验能力,在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

本包将提供类似于阿里巴巴DataX的接口去实现go的etl框架,目前主要实现了job框架内的数据同步能力,监控等功能还未实现.

plan

  • 实现关系型数据库的任务切分
  • 实现监控模块
  • 实现流控模块
  • 实现关系型数据库入库断点续传

storage

database

目前已经实现了数据库的基础集成,已有mysql和postgresql的实现,如何实现可以查看godoc文档,利用它能非常方便地实现datax数据库间的同步,欢迎大家来提交新的数据同步方式,可以在下面选择新的数据库来同步

stream

主要用于字节流的解析,如文件,消息队列,elasticsearch等,字节流格式可以是cvs,json, xml等

file

mq

plan

暂无时间安排计划,欢迎来实现

elasticsearch

plan

暂无时间安排计划,欢迎来实现

transform

主要用于类sql数据转化

plan

  • 引入tidb数据库的mysql解析能力
  • 引入tidb数据库的mysql函数计算能力
  • 运用mysql解析能力和mysql函数计算能力实现数据转化能力

tools

工具集用于编译,新增许可证等

datax

build
go generate ./...

发布命令,用于将由开发者开发的reader和writer插件注册到程序中的代码

另外,该命令也会把编译信息如软件版本,git版本,go编译版本和编译时间写入命令行中

plugin

数据源插件模板新增工具,用于新增一个reader或writer模板,配合发布命令使用,减少开发者负担

license

用于自动新增go代码文件中许可证

go run tools/license/main.go

libra

主要用于数据库间数据校验

About

go-etl是一个集数据源抽取,转化,加载,同步校验的工具集,提供强大的数据同步,数据转化甚至数据校验的功能。

License:Apache License 2.0


Languages

Language:Go 99.8%Language:Makefile 0.1%Language:Batchfile 0.0%Language:Shell 0.0%