1.Kettle转换
转换里面有个DB连接,新建连接之后共享这个连接。
1.1输入控件
csv文件输入
文本文件输入
Excel输入
XML输入
JSON输入
表输入
勾选裁剪表:相当于先清空表truncate table csv ; 再插入 insert into csv values(…)
1.2输出控件
Excel输出
文本文件输出
SQL文件输出
表输出
更新&插入/更新
更新
需要更新emp1表,必须保证两张表的数据行数相同,根据id作比较进行更新
插入/更新
需要更新emp1表,两张表的数据行数可以不相同,更新字段添加id,把Y改成N
删除
需求:删除emp1表格中emp表里面已经有的数据(按照emp表对emp1表数据进行去重)
emp表里面已经有的数据,emp1表要删除; 一般根据主键id去重
1.3转换控件
Concat filelds
name就是拼接后新增得字段
下面获取得两个字段就是需要拼接的字段
值映射
添加常量&增加序列
字段选择
字段选择是从数据流中选择字段,改变名称,修改数据类型
选择和修改:可以随意修改字段名称,长度
移除:只保留想要删除的字段
元数据:随意修改数据类型等
计算器
字符串剪切&替换&操作
排序记录
用于表连接时只保留重复的记录字段,意思是根据这个字段进行排序或连接,类似于两表之间得关联字段id
类似于根据id主键进行升序降序
去除重复记录
去除重复记录要结合排序记录一起使用
表输入 → 排序记录 → 去除重复记录
唯一行(哈希值)
相当于去除重复记录 一般获取id主键
拆分字段
【注意】根据空格拆分,拆分字段之后源字段name就失效了,取而代之得是firstname,lastname
拆分为多行
行扁平化
把同一组数据得多行数据合并为一行,理解为:拆分多行得逆向操作
【注意】使用之前需要对数据进行排序
每个分组的数据条数要保证一致,否则会有错乱
【注意】拆分出来3列了,如果想要把3列合并为一列,需要使用Conncat filelds拼接控件
列转行
【注意】列转行之前数据流必须按照分组字段进行排序,否则数据会错乱
1.关键字段:从数据内容变成列名的字段
2.分组字段:列转行,转变以后的分组字段
3.目标字段:增加的列的列名字段
4.数据字段:目标字段的数据字段
5.关键值字段:数据字段查询时的关键字段,也可以理解为key; 相当于源数据字段的值
行转列
1.Key字段:行转列,生成的列名字段
2.字段名称:原本数据流中的字段名
3.Key值:Key字段的值,跟前面的字段名称一样
4.Value字段:对应的Key值的数据列的列名
1.4应用控件
替换null值
写日志
调试的时候使用,可以将数据流的每行数据打印到控制台,方便我们调试整个程序
1.选择日志级别
2.可以输入自定义输出的语句
3.选择要输出打印的字段
1.5流程控件
Switch/case
过滤记录
和Switch/case做对比的话,过滤记录相当于if-else,可以自定义输入一个判断条件,然后将数据流中的数据一路分为两路。
空操作
空操作,什么也不做,此控件一般作为数据流的终点
中止
中止是数据流的终点,如果有数据流到此处,整个转换程序将中止,并且在控制台输出报错信息。此控件一般用来校验数据或者调试程序。
1.6查询控件
数据库查询
一般用于左连接,表输入是左表
流查询
1.7连接控件
合并记录
用于将两个不同来源的数据合并,这两个来源数据分别为旧数据和新数据,将旧数据和新数据按照指定的关键字匹配,比较,合并。
【注意】旧数据和新数据需要先按照关键字段排序,并且旧数据和新数据要有相同的字段名称。
记录集连接
对两个步骤中的数据进行左连接,右连接,内连接,外连接;使用此控件之前需要对记录集的数据进行排序,排序的字段一定是两个表关联的字段,否则数据错乱,出现null值
1.8统计控件
分组
类似于group by,按照一个或几个分组之后其余字段可以按照聚合函数进行合并计算
【注意】在进行分组之前,数据最好先进行排序(按照分组的字段排序)
1.9映射控件
映射
1.10脚本控件
执行SQL脚本
2.Kettle作业
2.1作业项
2.2作业跳
3.Kettle转换案例
3.1通配符
需求:把D盘下的000001.csv、000002.csv等所有文件传入数据库的同一张表CSV里面
【注意】csv文件输入首先要找到绝对路径获取文件名,之后在连接节点,最后把csv文件输入中的绝对路径文件名改为filename
3.2合并
需求:把DALIAN01数据库中student、score两张表合并导入ODS数据库中
需求:把D盘下a、b、c这三个excel文件合并到数据库的一张表中
3.3分流
需求:把数据库中StudentScore表分别拆分为学生表Student、成绩表Score
3.4列转行
需求:把数据库中成绩表score进行列转行(原字段:sid、cid、score;转换成:sid、语文、数学、英语)
【注意】列转行组件的关键字段和关键字段值是对应的; 列转行组件分组字段代表行,目标字段代表新增的列,目标字段里面的数据就是成绩,每个成绩对应的关键字值就是关键字段的CID的值
3.5行转列
需求:把数据库中成绩表score01进行行转列(原字段:sid、语文、数学、英语;转换成:SID、成绩、科目)
【注意】行转列组件的Key字段和Key值是对应的; 合并新增的字段:key字段 科目,对应的数据是 Value字段
3.6数据同步
【注意】里面的数据同步必须要注意列数相同,根据关键字段eid进行匹配然后同步数据,旧数据源就是旧表 需要同步的表,新数据源就是新表 被依据的表
合并记录组件 旧数据源:emp表需要修改,emp表就是旧数据源 【要改谁 谁就是旧数据源】
需求:旧表数据emp1,新表数据emp2,需要将新表emp2的数据同步到旧表emp1中 那么emp1就是旧数据源
数据同步
3.7追加流
【注意】同一个excel选择相同的姓名字段:姓名、项目A;姓名、项目B,然后项目A、项目B改为相同的字段名,最后追加流就可以了
4.Kettle作业案例
作业可以定时 在企业中,kettle每周或者每隔一段时间需要执行一次,在这里就需要使用kettle的定时调度
双击start开始就可以设置定时任务
4.1发送邮件
163
勾选邮箱验证,并且填写发件人邮箱,填写密码
【注意】这里的 密码是163自带的授权码,需要在邮箱里面开启授权设置密码
4.2写日志
4.3windows定时计划
5.Kettle⭐
数据同步 全量更新 全删全插
插入/更新 增量更新 插入 更新 删除