HData——ETL 数据导入/导出工具

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

HData

【HData特性】

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

二、跨平台独立运行;数据库

三、数据传输过程全内存操做,不读写磁盘;缓存

四、插件式扩展。框架

HData Design

【HData设计】

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

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

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

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

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

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

 

项目地址:https://github.com/stuxuhai/HData

相关文章
相关标签/搜索