ETL:kettle根据源表只更新不插入目标表指定字段数据

环境配置

window环境下下载kettle解压之后可通过双击根目录下的Spoon.bat文件运行。
注意:kettle需要安装jdk,并且有的需要jdk版本高于1.7。如果双击之后报错,先排除jdk是否正确安装、jdk版本是否是1.8及以上。

操作目的

SQL Server类型数据库中有目标表A表,A表有目标字段(fieldA字段),需要从PostgreSQL库中的源数据表B表中,同步B表的fieldA字段值过来。更新条件为A表的fieldC字段等于B表的fieldC字段。

伪代码:
update A a set a.fieldA = b.fieldA where a.fieldC = b.fieldC

新建转换

  1. 新建一个转换文件
    在这里插入图片描述
  2. 在该转换下建立要抽取数据的数据库连接(源头数据库、目标数据库)
    在这里插入图片描述
  3. 根据数据来源选择输入类型。这里源头数据是从数据库的数据表查询出来的,所以选择“表输入”。
    在这里插入图片描述
  4. 选择输出方式。这里操作目的是只根据源表的数据更新不插入,所以选择“更新”。
    在这里插入图片描述
  5. 连接输入与输出
    在这里插入图片描述
  6. 设置表输入。双击表输入
    在这里插入图片描述
  7. 设置更新。双击更新节点
    在这里插入图片描述
    注意:记得勾选忽略查询失败。不然执行时会出现错误:
    在这里插入图片描述
    错误原因是:源数据表B表中存在A表中没有的数据,所以在A表中查询不到对应要更新的数据记录,就会出现上图中的错误。勾选了忽略查询失败之后,将会忽略更新这些在A表中没有对应数据的数据。这样就实现了,对A表只更新不插入,并且只更新FieldA字段。对于B表中有而A表中没有的数据,将会被忽略。
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Kettle是一种高效的数据集成工具,它可以根据时间戳插入更新目标。在这个过程中,Kettle使用了一种称为增量加载的技术。 首先,Kettle会通过连接源数据目标,以便能够获取最新的数据并将其插入目标中。接下来,Kettle会检查源数据中的每条记录的时间戳。如果该记录的时间戳在目标中不存在,那么Kettle会将该记录插入目标中。 而如果该记录的时间戳在目标中已经存在,Kettle会进行更新操作。这意味着Kettle会根据源数据中的新值来更新目标中对应记录的值,以保持数据的一致性和准确性。 总的来说,Kettle根据时间戳插入更新目标的过程如下: 1. 连接源数据目标; 2. 获取源数据的最新记录; 3. 检查源数据记录的时间戳; 4. 如果时间戳在目标中不存在,则将该记录插入目标; 5. 如果时间戳在目标中已经存在,则更新目标中对应记录的值。 使用Kettle进行根据时间戳插入更新的操作可以有效地处理海量数据,提高数据插入更新效率,并确保数据的准确性和一致性。 ### 回答2: kettle是一款强大的数据集成工具,它可以根据时间戳来插入更新目标。在使用kettle时,我们可以通过以下步骤来实现这一功能。 首先,我们需要在kettle中配置源表目标的连接信息。确保我们可以成功连接到这两个。 接下来,在kettle中创建一个转换,用于处理源表数据,并将其插入更新目标。在这个转换中,我们可以使用"Table Input"步骤来读取源表数据。在这个步骤中,我们可以指定来源的字段数据源。 然后,我们需要使用"Insert/Update"步骤来将源表中的数据插入更新目标中。在这个步骤中,我们可以选择"Update"或"Insert"操作,并配置相应的条件和字段映射。在这个步骤中,我们需要设置"更新目标的条件",以及"源字段"和"目标字段"之间的对应关系。 最后,我们可以使用"Table Output"步骤将更新后的数据写入目标。 通过以上步骤,我们可以实现根据时间戳来插入更新目标的功能。在kettle中,我们可以根据具体的业务需求来配置不同的条件和字段映射,以满足数据处理的要求。 ### 回答3: Kettle是一种数据集成工具,可以用于数据抽取、转换和加载(ETL)等工作。当需要根据时间戳插入更新目标时,我们可以使用Kettle提供的功能来实现。 首先,我们需要在Kettle中创建一个转换(Transformation)来处理数据插入更新操作。在这个转换中,我们可以使用“Table Output”等步骤来连接目标,并根据时间戳进行插入更新操作。 对于插入操作,我们可以使用“Table Output”步骤中的“Insert”选项。该选项可以将源数据的新记录插入目标中。我们可以通过元数据中的时间戳字段来确定哪些记录是新记录,并将其插入目标中。 对于更新操作,我们可以使用“Table Output”步骤中的“Update”选项。该选项可以根据时间戳字段更新目标中已存在的记录。我们可以通过元数据中的时间戳字段来匹配源数据目标中的记录,并将源数据字段更新目标中。 在创建转换时,我们可以使用Kettle提供的条件判断步骤(如“Filter Rows”)来根据时间戳字段过滤源数据,只选择需要插入更新的记录。这样可以提高数据处理的效率,并减少对目标的操作。 最后,我们可以通过Kettle提供的调度功能来定期执行这个转换,根据时间戳插入更新目标。可以选择每天、每周或每月等不同的时间间隔来执行转换,以确保数据的实时性和准确性。 总之,使用Kettle可以根据时间戳插入更新目标数据。通过合理设置转换和使用Kettle提供的功能,我们可以高效地处理数据,并确保目标中的数据与源数据保持一致。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值