ETL数据导入/导出工具 HData

GPL 3.0
Java
跨平台
2016-07-08
Jayer

HData是一个异构的ETL数据导入/导出工具,致力于使用一个工具解决不同数据源(JDBC、Hive、HDFS、HBase、MongoDB、FTP、Http、CSV、Excel、Kafka等)之间数据交换的问题。HData在设计上同时参考了开源的Sqoop、DataX,却与之有不同的实现。HData采用“框架+插件”的结构,具有较好的扩展性,框架相当于数据缓冲区,插件则为访问不同的数据源提供实现。


【HData特性】

1、异构数据源之间高速数据传输;

2、跨平台独立运行;

3、数据传输过程全内存操作,不读写磁盘;

4、插件式扩展。

【HData设计】

  • 配置文件:XML格式,配置Reader、Writer的参数(如:并行度、数据库连接地址、账号、密码等);

  • Reader:数据读取模块,负责从数据源读取数据并写入RingBuffer;

  • Splitter:根据配置文件中Reader的并行度构造相应数据的ReaderConfig对象供Reader使用,以实现数据的并行读取;

  • RingBugffer:来自Disruptor的高性能环形数据缓冲区,基于事件监听模式的异步实现,采用无锁方式针对CPU缓存优化,在此用于Reader和Writer的数据交换;

  • Writer:数据写入模块,负责从RingBuffer中读取数据并写入目标数据源。

HData框架通过配置读取解析、RingBugffer 缓冲区、线程池封装等技术,统一处理了数据传输中的基本问题,并提供Reader、Splitter、Writer插件接口,基于此可以方便地开发出各种插件,以满足各种数据源访问的需求。

【编译&运行】

  • 编译

    执行 ./bin/package-hdata.sh 命令,执行成功后将会生成压缩包 ./buildhdata.tar.gz ,然后解压即可。

  • 运行

    ./bin/hdata --reader READER_NAME -Rk1=v1 -Rk2=v2 --writer WRITER_NAME -Wk1=v1 -Wk2=v2

READER_NAME、WRITER_NAME分别为读/写插件的名称,例如:jdbc、hive Reader插件的参数配置以-R为前缀,Writer插件的参数配置以-W为前缀。

配置参数请参考:https://github.com/stuxuhai/HData

加载中

评论(16)

ding_0910
ding_0910
尝试了mysql抽取数据到oracle,很多问题,没成功!!! mysql到mysql没有问题
Jayer
Jayer 软件作者
@石岩 配置文件中支持变量的,使用方式${key} 外部命令传入-Dkey=value #HData#
石岩
石岩
可以版本更新中加入配置文件参数的动态支持,比如在where条件支持中日期=<动态参数> #HData#
低调的浮躁
低调的浮躁
是只支持一次性导数据,还是说可以一直导数据类似于定时 #HData#
Jayer
Jayer 软件作者
@引鸩怼孑 支持jdbc的数据库都可以,不只是mysql #HData#
Jayer
Jayer 软件作者
@小飞鹤 README.md已更新,添加了配置demo #HData#
小飞鹤
小飞鹤
没有看到 demo 配置例子啊。 #HData#
nickyxy
nickyxy
收藏了 #HData#
金贞花
金贞花
mark #HData#
引鸩怼孑
引鸩怼孑
仅支持mysql吗? #HData#

暂无资讯

8
回答
HData通过Maven时出现错误

@Jayer 你好,想跟你请教个问题:在使用Maven编译时出现如下错误,请求解答。

2016/08/04 09:21

没有更多内容

加载失败,请刷新页面

没有更多内容

用C写有面向对象特点的程序

转载自:陈皓http://blog.csdn.net/haoel/archive/2003/04/02/2864.aspx 比如在一个项目中,有大量的数据结构,他们都是双向链表,但又想共用一套对链表的操作算法,这怎么做到呢,C中又没有...

2014/01/29 13:44
9
0
idea的licence server无效了

今天一直用的好好的licence server无效了,无奈只能再次上午去查找可以用的licence server。记得当时查找这个licence server是费了一些心力的。今天百度了一下发现好多。 http://intellij.ma...

2017/11/27 09:20
39
0
c# 调用win32 api

Win32的API函数是微软自己的东西,可以直接在C#中直接调用,在做WinForm时还是很有帮助的。有时候我们之直接调用Win32 的API,可以很高效的实现想要的效果。 using System; using System.Col...

2012/11/28 15:44
126
0
hbase安装与运行

简单安装配置hbase

2016/06/08 16:59
17
0
C#调用Win32 api学习总结

Win32 API可以直接控制Microsoft Windows的核心,因为API(Application Programming Interface)本来就是微软留给我们直接控制Windows的接口。 一. 基础知识 Win32 API是C语言(注意,不是C...

2016/12/28 11:19
446
0

没有更多内容

加载失败,请刷新页面

没有更多内容

返回顶部
顶部