概述
Delete(删除)此步骤从数据库中永久删除一行,以便清理数据。在删除步骤中,选择一个字段与另一个步骤的输入字段的值进行比较。当满足比较需求时,删除数据库行。如果有多行匹配,那么具有该值的所有行都将从数据库中删除。
选项
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连接。
然后选项连接类型为mysql,并维护相关的链接信息。
连接信息维护完之后,点击测试,测试连接是否成功。
2.获取字典表Code数据作为数据输入源。
添加一个表输入步骤,数据库连接上面创建的DB连接名称demo,然后从获取SQL查询语句中选择表Code,即可。
最后点击预览,预览结果数据。
2.添加删除输出步骤,并配置删除条件
添加一个输出中的删除步骤。并建立从表输入到删除的一个节点连接。
在删除步骤上配置数据库连接为上面创建的DB连接名称demo。目标表选择user。然后在查询值所需的字段中选择gender;比较符为:<> ,然后流里的字段选择为:code。
最后保存并点击运行。