ETL工具Kettle的使用

之前因为公司旧项目的报表以及数据导入新项目涉及到的数据清洗和统计, 所以用到了kettle这个工具, 刚开始用的时候踩了无数坑, 现在闲下来写这篇博客, 希望多多少少能给读者有点帮助.

我用这个工具的主要目的就是写报表和数据清洗,迁移.

百科:

ETL 是Extract-Transform-Load三个单词的简称,即抽取、转换、加载。ETL工具常用于建立数据仓库,但不仅限于这一领域。换句话话说,使用ETL 工具我们可以完成从目标数据源进行数据抽取,经过一系列的数据转换,最终形成需要的数据模型并加载到数据仓库中。

Kettle是一款采用纯JAVA实现的开源ETL工具,属于开源商务智能软件Pentaho的一个重要组成部分。Kettle提供一系列的组件用于完成各种上面所说的抽取、转换、加载的工作。正如Kettle一词的中文意思水壶一样,Kettle的开发人员希望使用kettle处理数据就像从水壶中倒水出来一样--把各种数据放到一个壶里,然后以一种指定的格式流出
基本使用:

kettle的两个核心,分别是转换(transformation)和作业(job):

转换: 个人理解就是使用kettle的各种组件, 对指定的数据进行处理操作, 得到最后的结果集.

作业: 用来调度设计好的作业, 处理多个转换, 成整个工作流的控制.














新建转换, 使用表输入、表输出、合并排序组件合并多个表数据到一个表:

1. 新建转换, 使用其组件"表输入"从数据库获取数据源, 双击表输入(以下使用图文, 方便读者容易理解)



完成之后, 可以看到数据库中的kettle_order表中有6条数据, 并根据时间升序的, kettle_order表中的数据就是根据两个表输入组件中的数据, 进行合并后, 在表输出组件中完成的



常用组件的使用

Excel输入: 顾名思义,就是通过excel文件, 从里面读取数据, 传入流中.

插入/更新: 本质上和表输入区别不大, 都是把数据输出到指定db的表, 不过该组件会根据你指定的条件更新掉数据表中相同条件的数据

排序记录: 指定流中的数据按指定字段排序

执行SQL脚本: 执行执行的sql脚本(ddl,dml)

java代码: 运行java脚本, 该组件可以获取流中的数据, 进行转换后再输出

JavaScript代码: 跟java代码一样, 运行js脚本, 用于处理数据中的逻辑业务, 也可以新增字段传入流中


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值