Embulk开门篇
笔者之前在一些博客中给大家介绍过Linkedin开源的Gobblin,它也是一个通用的数据抽取框架,可以将很多数据源(大家可以访问http://gobblin.apache.org,查看到具体的数据源有哪些,有动画演示)抽取到Hadoop大数据平台上,而且也具备了一些企业级的功能,比如可扩展,容错,事务,统一资源管理等等。这里就不再对Gobbin进行过多的介绍和研究。
今天笔者给大家带来另外一个开源项目产品:Embulk。
Embulk的github地址为:https://github.com/embulk/embulk,主要使用Java和Ruby开发。
对于这个项目,笔者也是接触不久,大概有点了解。另外在N年前也参与过Ruby项目开发,后续将和读者一起学习。
不管开源的哪一款产品都有适合的场景,只要在不断的学习和研究过程中,我们才会一一发现优点或缺点。
俗话说,无图无真相,上图:
其实我们从这张图上就可以知道很多信息,下面就会给读者一一介绍。
1. 首先可以看出Embulk是一个并行的bulk data loader。
2. 既然是一个bulk data loader,那么自然涉及到数据传输,从图上看出支持不同的存储、数据库、NoSQL和云服务之间的数据传输。
3. 对于如今海量的数据集,Embulk支持并行分布式执行。
4. 针对很多“ETL”产品缺失的功能,Embulk支持事务控制,保证数据All或Nothing。
5. 另外还支持错误恢复机制和数据质量的校验。
另外我们从官网还了解到Embulk另外一些支持的特性:
1. 自动的输入文件格式匹配
2. 丰富的插件,基于RubyGems.org的插件发布
上面笔者只是给大家一个引子,一个稍微整体的认识,后续会针对细节进行介绍。