今天在写定时任务job的问题,涉及到了kettle 就是所谓的数据设计器 帮助我们进行数据转换,数据清洗。

话不多说 简要上一个教程 教大家使用kettle

我这个是我们公司自己设计的

设计器是一款ETL工具,纯java编写,可以在Windows、Linux、Unix上运行,数据抽取高效、稳定、便捷。龙云设计器这个ETL工具集,它允许你管理来自不同数据库的不同数据,通过提供一个图形化的用户环境来描述你想做什么。设计器中有两种脚本:transformation和job,transformation完成针对数据的基础转换(生成转换会在目录下生成一个后缀名为ktr的转换文件),job则完成对整个工作流的控制(生成job会在目录下生成一个后缀名为kjb的作业文件)。

kettle基本都一样的

1.1连接资源仓库步骤:

注:红体字为设计器部分按钮,数据库连接时一定注意填写数据编码格式为utf-8,即图2.0.5操作

1.1.1选择菜单栏    工具     下拉选择 资源库      点击右侧 连接资源库 选项(或快捷键CTRL+R)看到如下图2.0.1

图2.0.1

1.1.2新建一个资源库连接,点击号可看到如图2.0.2,有两种创建的资源仓库类型,分别为数据库类型和文件类型,本文选择数据库类型,打开如图2.0.3所示界面,开始新建数据库连接 点击 新建 弹出数据库信息界面图2.0.4 进行逐项填写(就是连接数据库的操作)本文连接的为本机的MySql数据库

      

               图2.0.2                                            图2.0.3

图2.0.4

本步骤数据库连接值得注意的是 防止中文乱码问题 需手动设置一下统一为utf-8编码格式 点击 选项 输入如图2.0.5所示

图2.0.5

输入完毕后点击 测试 如图2.0.6,测试连接正常点击 确认 即成功连接数据库 回到如图2.0.7填写资源库其他信息

图2.0.6

图2.0.7

    

                 图2.0.8

点击创建或更新后显示如图2.0.8则表示创建设计库成功,点击完此对话框的确定按钮后还需点击图2.0.7的确定按钮,不然你之前的一系列操作就枉费了,成功创建完设计库,选择我们刚创建好的设计库 填写资源库的用户名和密码(此用户名和密码向负责人请求即可)如图2.0.9

图2.0.9

 

图2.1.0

填写完毕点击确定按钮看到如图2.1.0所示即表示连接资源库成功了

2.1设计设计器基本作业和转换案例及说明

2.1.1

简易案例一之新增转换将Excel文件­­­­的数据插入到数据库(Transformation):

转换要求:

a.准备Excel表数据如图3.0.0所示(Sheet1表)

b.准备数据库的接收表图3.0.1所示(本文使用mysql,具体根据你的需求进行选择性使用)

图3.0.0

图3.0.1

转换步骤a选择输入的文件:

点击如图2.1.0所示的新增转换(蓝体字)创建新的转换 打开左侧的核心对象状态栏,双击输入目录里的控件Excel输入,可看到控件移入右边的主菜单中(也可对控件进行拖拽,这样方便你将控件放置在菜单中合适的位置上,本文就使用拖拽控件)如图3.0.2所示,双击已经移入右边主菜单的Excel输入控件 可编辑此控件的属性信息如图3.0.3所示:

图3.0.2

图3.0.3

按照图片提示进行选择 文件      选择工作表(图3.0.4)     选择内容(图3.0.5)       选择字段(图3.0.6)

图3.0.4

图3.0.5

图3.0.6

转换步骤b:选择输出的表

选择核心对象目录       输出        表输出控件拖拽至右侧主菜单中,双击表输出控件编辑其属性如图3.0.7所示

图3.0.7

编辑完主选项后如图3.0.7所示后,开始编辑数据库字段设置如图3.0.8所示

 

图3.0.8

然后我们按住Shift键拖拽剪头从Excel输入表输出,这里我们就完成了一个简单转换 可是遇到问题了,我们的输入数据中存在重复的数据(图3.0.9),那么我们不做处理,输出也会存在,可是这不是我们想要的最终结果 那我们便要对数据进行一系列处理

图3.0.9

转换步骤c:增加数据处理转换

选择核心对象目录      转换      排序记录控件拖拽至右侧主菜单编辑其属性如图3.1.0

(注:有人提疑问为什么直接不选择去除重复记录控件,注意一下 去除重复记录控件的处理前提是相邻记录行,所以我们要先对数据排序)

图3.1.0

完成后点击确定,再选择去除重复记录控件 编辑其属性如图3.1.1

图3.1.1

编辑结束过后按照顺序进行流程连接如图3.1.2所示

图3.1.2

再运行转换前要先保存哦!到此一个从文件到库的转换成功完成,让我们看看数据库test表是否已经是我们需要的数据了如图3.1.3所示

图3.1.3

2.1.2

简易案列二之新增转换将数据库的数据导入至文件中(Transformation)

转换要求:

a:准备一个输入表数据如图3.2.0所示

图3.2.0

b:准备要接收数据的文件目录(不需要创建文件,只需要路径即可,系统会自动创建文件的)我们这里就确定目录为下:

\E:\longclound\longcloud-DTDesigner\Folder\file.txt

转换步骤a:

选择核心对象      输入      表输入控件拖拽至右侧菜单编辑控件属性如图3.2.1所示

图3.2.1

编辑完毕 点击确定

转换步骤b:将蔬菜的单价和数量相乘获取总价

选择核心对象       转换         计算器控件编辑如图3.2.2所示

编辑完点击确定按钮

再选择核心对象      输出     文本文件输出控件如图3.2.2所示

图3.2.2

文件路径个扩展名选择完毕后选择内容如图3.2.3所示

图3.2.3

内容编辑完点击确定选择字段按钮进行编辑如图3.2.4所示

图3.2.4

 

编辑完毕点击确定开始进行流程连接如图所3.2.5所示,保存转换进行调试运行,

成功后即可看见文件如图3.2.6所示

图3.2.6

那么到此从库到文件的简单输出转换就完成了

简单转换案列到此结束

好了 ,陆续后期上难的数据转换和作业!!!

Logo

更多推荐