Pentaho Kettle Solutions数据处理纪要

背景

        公司项目代码落定后发现以往同步的数据存在异常,需要重新处理.期间用到kettle,遂特此纪要!

问题

        Pentaho Kettle Solutions能做什么?
        Pentaho Kettle Solutions的"表输入"能处理什么?
        Pentaho Kettle Solutions的"值映射"能处理什么?
        Pentaho Kettle Solutions的"Replace in string"字符串替换 能处理什么?
        Pentaho Kettle Solutions的"增加常量"能处理什么?
        Pentaho Kettle Solutions的"插入更新"能处理什么?

        Pentaho Kettle Solutions的如何创建数据来源?
        Pentaho Kettle Solutions的如何处理数据源?
        Pentaho Kettle Solutions的如何定向输出数据?
        Pentaho Kettle Solutions的如何定处理数据输出后的中文乱码问题?

说明

        Pentaho Kettle Solutions是一款功能和性能都可拓展的开源ETL和数据整合工具.

功用

Pentaho Kettle Solutions能做什么?

        Kettle是一款数据整合工具,可以解决常见的对数据处理的相关问题. 如: 数据整合和数据清洗等.

操作面板简介

下面是操作面板的概要理解(个人使用理解,或有不够精确于官方文档之处,谨慎借鉴),如下图: 

用例 

        下面简单的实现一个小功能,有一个mariadb数据库,其中有t1,t2表两张表,t2比t1多一个varchar属性,t1表有数据,t2是张空表. 现使用kettle链接到我们的这个库,
并且读取到t1表的数据, 进行内容处理(1. 将指定的内容替换为既定的值. 2. 初始化被写入的表指定列初始数据),处理后将数据写入到t2表中.

1> 连接数据库

        在"主对象树"面板中链接DB.

 2> 获取数据源

        这里要操作数据就要先获取数据,即现获取t1表中的数据.

        先在"核心对象"的组件列表中找到一个名为"表输入"的组件,利用他关联刚才的库,来查询需要的t1表. 备注一下这个当前步骤的名称,这个步骤就可以结束了.确定即可.

 3> 数据清洗 之 替换

        数据清洗过程中有一类比较常用的数据处理:文本替换. 举个例子,获取到的数据源里某个属性记录了某条流程的关闭状态,数据为0或1的数字表示,倘若这部分数据你不是直接落库到系统库,
而是作为展现层的清洗.那此时就需要对这类数据进行替换,替换为对于用户来说友好的内容,而不是0或1的进制数.
        下面就是对于此类清洗操作在kettle中的解决办法:

 上面主要的操作是将target属性中存在的"606","616","626"等数据进行转换.

4> 数据清洗 之 精确替换

        上面的替换是应对普通情况的数据来进行粗略的替换.但是面对一些需要特殊处理的字符数据时,可以通过转换组件中的"字符串替换"组件来解决这种问题. 如下图:

 5> 数据清洗 之 初始化既定列值

        有这样一种情况:数据清洗之后可能得到的数据是你想要的完整数据的一部分(也就是说只是一部分组合数据),那这部分数据对于你的预期数据来讲还处于不完整的状态.对于数据库设计者来讲如果你的数据要落库,一般情况是不希望某个属性列存在空或null值的.那么此时正在做数据清洗的你拿到的数据假设只有3列,而目标库(也就是你最终要落地数据的库)有5列属性列,你不管后期是否会有其他数据或其他人操作数据去填充剩下的两列属性列里对应的值,此时此刻的你就想把自己的屁股擦干净.那么,"增加常量"组件就是你为数不多的最佳之选.

        他可以帮助你在上一步数据源的基础上添加你想要的数据列进入到数据集中,然后等待后面的操作来读取数据. 具体的实现如下图:

 6> 数据落地

        经过上面的一系列数据清洗之后,数据就到了落地或利用展现的阶段.这个案例我们姑且以落地到具体的数据库为例.

        找到输出组件列表中的"插入/更新"组件,直接拖拽到工作空间.选择好落地的数据源后,继续选择对应的数据表(要落到哪张表).落地的数据条数可以手动的输入.基础的映射字段匹配一下.(不一致时手动匹配)

8> run 执行上面的组件集

        在执行组件集步骤之前可以通过设置"日志级别"来打印不同颗粒度的日志,最后在下面的日志面板中进行查看.

至此, kettle的简单数据处理Demo执行结束,数据成功从t1表处理后插入到t2表.

 异常解决

Pentaho kettle Solutions的如何定处理数据输出后的中文乱码问题?

        第一次执行数据清洗如果没有配置数据源变码,一般都会出现中文乱码的问题,下面是对应的解决办法. 如下图:

 总结

        上面的Demo只是最简单的数据处理,因此这篇纪要只是入门篇. 深耕里面更多的操作,可以在网上查阅文档!(我本是管杀管埋的性格,怎奈手上的资源因版权原因无法上传)


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值