基于Kettle的数据采集
本文围绕Kettle是什么,用来做什么,怎么用这三个基本问题
网上的资料是真的匮乏,好难受,都是讲到点上的,但是对于新手来说,需要一个来自面的介绍。自己边学边写,很有可能会有问题,也欢迎指点我的错误,但是为了让自己有动力学下去,持续更新中。。。(2021年12月7日补充,原来网上的资料好多,只是我没有找到,就这样了,就当学习记录)
一、Kettle是什么
Kettle 是一款国外开源的 ETL 工具,纯 Java 编写,可以在Windows、Linux和Unix上运行,数据抽取高效稳定,通过提供一个图形化的用户环境来描述你想做什么,而不是你想怎么做,它的数据抽取高效稳定(数据迁移工具)。
一个简单的Kettle实例,作用是获取数据的来源,并调用相应的存储过程,进行映射的处理。
二、Kettle用来做什么
作用:
可以说凡是有数据整合、转换、迁移的场景都可以使用Kettle,他代替了完成数据转换任务的手工编码,降低了开发难度。
同时,我们可以在自己实际业务里,使用它来实现数据的剖析、清洗、校验、抽取、转换和加载等各类常见的ETL类工作。
比如,除了ODS/DW类比较大型的应用外,Kettle实际还可以为中小企业提供灵活的数据抽取和数据处理的功能。Kettle除了支持各种关系型数据库,HBase MongoDB这样的NoSQL数据源外,它还支持Excel、Access这类小型的数据源。并且通过这些插件扩展,kettle可以支持各类数据源。
另外,Kettle的数据处理功能也很强大,除了选择、过滤、分组、连接和排序这些常用的功能外,Kettle里的Java表达式、正则表达式、java脚本、Java类等功能都非常灵活而强大,都非常适合于各种数据处理功能。
应用场景:
- 表视图模式:这种情况我们经常遇到,就是在同一网络环境下,我们对各种数据源的表数据进行抽取、过滤、清洗等,例如历史数据同步、异构系统数据交互、数据对称发布或备份等都归属于这个模式;传统的实现方式一般都要进行研发(一小部分例如两个相同表结构的表之间的数据同步,如果sqlserver数据库可以通过发布/订阅实现),涉及到一些复杂的一些业务逻辑如果我们研发出来还容易出各种bug;
- 前置机