工具比对:
Kettle(传统的ETL工具)
特性:纯Java编写
优点:可在Windows、linux、Unix上执行;数据抽取高效稳定;子组件spoon有丰富的Steps可以开发复杂业务逻辑场景,方便实现全量、增量同步;
缺点:通过定时运行,实时性较差;
组成部分:
Spoon:允许使用图形化界面实现ETL数据转换过程
Pan:批量运行Spoon数据转换过程
Chef:job(有状态,可以监控到是否执行、执行的速度等)
Kitchen:批量运行chef
Sqoop(用的较少)
特点:主要用于HDFS和关系型数据库之间数据的转换;
Datax(阿里使用的离线数据统计工具,已开源):
特点:实现不同类型数据源(包含关系型数据库、分布式文件系统等)之间的数据同步;
优点:操作简单,只有2步,一是创建作业的配置文件;二是启动配置文件作业;
缺点:缺乏增量更新的支持,但可以自己写shell脚本等方式实现增量同步;
Job:一道数据同步作业Splitter:作业切分模块,将一个大任务与分解成多个可以并发的小任务.Sub-job:数据同步作业切分后的小任务Reader(Loader):数据读入模块,负责运行切分后的小任务,将数据从源头装载入DataXStorage:Reader和Writer通过Storage交换数据Writer(Dumper):数据写出模块,负责将数据从DataX导入至目的数据地
DataX框架内部通过双缓冲队列、线程池封装等技术,集中处理了高速数据交换遇到的问题,提供简单的接口与插件交互,插件分为Reader和Writer两类,基于框架提供的插件接口,可以十分便捷的开发出需要的插件
。
StreamSets(目前使用的较为广泛)
特点:轻量级,强大的引擎,可实现实时流数据抽取;开发人员可以轻松构建批处理和流式数据流,而且代码少
组件:
Data Collector:路由和处理数据
管道: