exlsx中定义名称步骤_Kettle(PDI)转换中输出之删除详解

本文详细介绍了如何在Kettle(PDI)转换中使用Delete步骤从数据库中删除数据。内容包括删除步骤的概述、选项设置、示例及其具体操作。删除步骤允许通过比较字段值来定位并移除数据库中的行,如在用户表中删除性别代码不符合预期的用户记录。
摘要由CSDN通过智能技术生成

概述

Delete(删除)此步骤从数据库中永久删除一行,以便清理数据。在删除步骤中,选择一个字段与另一个步骤的输入字段的值进行比较。当满足比较需求时,删除数据库行。如果有多行匹配,那么具有该值的所有行都将从数据库中删除。

选项

99b26166dfe844b618fd73cf7a25dcd6.png

删除

Delete(删除)步骤有以下选项:

Step name(步骤名称):在画布上指定Delete(删除)步骤的唯一名称。您可以自定义名称或将其保留为默认名称。

Connection(数据库连接):从下拉列表中选择已连接数据库的名称。或者您可以:单击“编辑”修改当前的数据库连接;单击“新建”以建立新的数据库连接;单击Wizard,使用向导打开新的数据库连接。

Target schema(目标模式):指定要从数据库加载表的模式。

Target table(目标表):指定数据库中要删除数据的表的名称。

Commit size(提交记录数量):指定提交批处理的大小。大小是在向数据库发送COMMIT命令之前要执行的DELETE语句的数量。根据所连接的数据库,提交大小可能会影响性能。如果为空或设置为0,则由数据库决定大小。默认值是100。

  • 查询值所需的关机键包含如下选项

下面的列定义了用于映射要删除的行的键。

Table field(表字段):从填充目标表列的列表中指定要与之比较的字段名。

Comparator(比较符):指定要使用的比较符。注意,根据连接的数据库和目标表,可以进行区分大小写的比较。你可以选择以下其中一个作为比较符:=、<>、、>=、LIKE、BETWEEN、IS NULL、IS NOT NULL。

Stream field 1(流里的字段1):从传入流中指定字段的名称,该字段包含要用于与表字段值进行比较的行。

Stream field 2(流里的字段2):指定来自传入流的字段的名称,该字段包含您希望用于与流里字段1进行比较的行。

Get fields(获取字段):选择此按钮来填充转换中前面步骤中的流里字段1和流里字段2。

例如,如果QUANTITYORDERED的查找值小于或等于min_quantityordered,并且PRODUCTLINE值相等地映射,然后从STG_SALES_DATA表中删除该QUANTITYORDERED行。

示例

示例采用代码表与用户表,代码表里存放用户性别代码跟名称,用户里面存放用户跟用户的性别代码。为了演示,sql语句很简化,不可以作为实际业务场景,其表sql语句如下。

/*代码表*/

DROP TABLE IF EXISTS `code`;

CREATE TABLE `code` (

`code` varchar(10) NOT NULL,

`name` varchar(20) DEFAULT NULL,

PRIMARY KEY (`code`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

insert into `code`(`code`,`name`) values ('1','男');

insert into `code`(`code`,`name`) values ('2','女');

/*用户表 */

DROP TABLE IF EXISTS `user`;

CREATE TABLE `user` (

`username` varchar(20) NOT NULL,

`truename` varchar(50) DEFAULT NULL,

`gender` varchar(50) DEFAULT NULL,

PRIMARY KEY (`username`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

insert into `user`(`username`,`truename`,`gender`) values ('hanmeimei','韩梅梅','2');

insert into `user`(`username`,`truename`,`gender`) values ('lisi','李四','3');

insert into `user`(`username`,`truename`,`gender`) values ('zhangsan','张三','1');

演示效果是保留用户表中非法性别的用户信息。

1.建立数据库连接对象

示例采用mysql数据库作为示例,首先下载mysql驱动https://mvnrepository.com/artifact/mysql/mysql-connector-java/5.1.47,然后放在在文件夹data-integrationlib下。然后重启Spoon。如果已经添加过mysql驱动,则可由忽略此步骤。

切换至主对象树,双击DB连接。

38142dc7a4f1790d98ccb78307ca3662.png

添加DB连接

然后选项连接类型为mysql,并维护相关的链接信息。

0726f87771ec14bbdac3fcdb076075e6.png

维护数据库连接

连接信息维护完之后,点击测试,测试连接是否成功。

2.获取字典表Code数据作为数据输入源。

添加一个表输入步骤,数据库连接上面创建的DB连接名称demo,然后从获取SQL查询语句中选择表Code,即可。

f55fe635d4b9c6d77b090e84479917f8.png

最后点击预览,预览结果数据。

6cd9f1960648804a7694a2993296495c.png

结果数据

2.添加删除输出步骤,并配置删除条件

添加一个输出中的删除步骤。并建立从表输入到删除的一个节点连接。

9590fa61bbc45da41a721bd3072cd962.png

在删除步骤上配置数据库连接为上面创建的DB连接名称demo。目标表选择user。然后在查询值所需的字段中选择gender;比较符为:<> ,然后流里的字段选择为:code。

c29adb39f775a4b04768746b8ae82070.png

最后保存并点击运行。

84d06317288fe0a3a4c2557bef427e94.png

运行结果

0856fbe7c0eb6d43a2138af55076a344.png

查询的数据结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值