1、什么是kettle
Kettle是一款开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定。
ETL,是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。
kettle 的中文含义是水壶,数据从一端输入,从另外一端输出。
2、kettle应用场景
1、数据抽取分类
数据抽取分为离线抽取和实时抽取。
离线抽取,应用场景是对短时间内的更新不敏感,只关心一段时间后的最终状态,一般是固定周期定时抽取。抽取方法,可以采用快照的方式,对整个表做全表快照;或者是采用基于时间字段的增量抽取,但是需要对这个字段的更新场景非常了解,一般采用定时批量的方式。
实时抽取,通常的应用场景是对数据的最新状态非常敏感,当有新数据插入或者旧数据更新时,需要及时抽取。抽取方法有很多,其中常用的一种是基于消费数据库binlog/logminer的方式,如阿里开源的canal、cdc-oracle 等。
2、应用场景
应用A、应用B是两个生成环境跑的服务,应用C是一个新服务,依赖应用A和应用B的数据,但是应用A和应用B不提供接口对接,且应用C的表结构和应用A、应用B完全不一样。这里就涉及到异构数据的同步问题了,需要借助ETL工具解决,kettle便是ETL工具之一。
离线抽取
实时抽取