kettle开发篇-插入更新

简介: 笔记

image.png

前言:


时间真快,转眼一年又从我们身边溜走了,从今天开始决定每天只讲一个知识点,将对应知识仔细解剖了,这样形成小颗粒的蛋白质,便于消费吸收,也便于自己的提高,一个东西你以为他懂,也只有你写出来,别人看懂了才是真的懂了。好了,废话不多说,上课。


一、什么是插入更新


插入更新的主要作用就是根据条件来检索数据,如果说相同更新记录,不相同增加记录。此时不懂的小明就会问了,里面的条件是指啥?是where条件嘛?插入更新里面的条件一般指需要更新或者插入的数据与现有表中数据的对比值,一般就是我们俗称的主键,这里面的主键分别单个主键和联合主键,但是不管是单个主键还是唯一主键,都必须满意一个原则,就是唯一性

1、插入更新案例解析

如下图所示,我们将抽取过来的CSV文件的数据,插入更新至我们的表里面,前面我们提到CSV文件的数据,是保持至类似EXCEl的文件中,用户随时会手动删除,也会因为行数的限制,必须删除不需要的历史数据,因此我们不能采用全量更新来更新数据,因此我们需要通过插入更新来更新数据,但是我们从CSV文件里面的数据来看,没有唯一性的字段,因此此时我们需要通过多个字段组合来获取唯一性的值,如通过日期+样品名称+记录编号来保持了数据的唯一性。

2.png

2、在使用插入更新的时候我们需要注意什么

如图所示插入更新包括两个部分,一个部分是“用来查询的关键字”,另外一部分是更新字段。 第一部分我在前面已经详细说明了,需要注意的是第二部分,里面有个更新字段里面有Y和N的选择值,默认是Y。我们不要随便去把字段的更新Y改成N,因为改成N后,就不会进行更新操作,直接变成了插入了。

image.png


二、扩展


当我们数据量很大,或者目标表的数据超过1千万时,此时不建议采用插入更新来更新数据,因为此时的转换要比较的数据太多导致插入更新的运行时间会很长。我们可以将插入更新的操作拆为先删除需要更新的数据,再插入需新增的数据,如需插入更新一天的数据,我们先删除一天的数据,再插入一天的数据,也可以达到插入更新的效果,且效率更高哦,


相关文章
|
7月前
|
数据库
kettle开发篇-合并记录
kettle开发篇-合并记录
263 0
|
7月前
|
Oracle 前端开发 关系型数据库
kettle开发篇-更新
kettle开发篇-更新
204 1
|
3月前
|
SQL NoSQL Shell
03 MongoDB文档的各种增加、更新、删除操作总结
文章总结了MongoDB中文档的增删改操作,包括插入文档、更新现有文档以及删除文档的具体方法和示例。
113 0
|
6月前
|
关系型数据库 MySQL API
实时计算 Flink版操作报错合集之同步MySQL数据到另一个MySQL数据库,第一次同步后源表数据发生变化时目标表没有相应更新,且Web UI中看不到运行的任务,该怎么解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
191 0
|
6月前
|
NoSQL 安全 MongoDB
MongoDB 数据精简指南:删除文档操作详解
MongoDB 数据精简指南:删除文档操作详解
|
7月前
|
SQL Oracle 关系型数据库
实时计算 Flink版产品使用合集之flinkcdc回撤流如果更新之前的数据,会把先前的数据删除,再插入更新的数据吗
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStreamAPI、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
流计算
Flink CDC-sql怎样导数据使starrocks支持主键模型delete的配置吗?目前只能更新和插入,但是删除不行
Flink CDC-sql怎样导数据使starrocks支持主键模型delete的配置吗?目前只能更新和插入,但是删除不行
250 1
|
编译器 应用服务中间件 数据库连接
解决C#运行程序修改数据后数据表不做更新的问题
解决C#运行程序修改数据后数据表不做更新的问题
128 0
|
SQL 关系型数据库 MySQL
【解决方案 二十四】如何对MySQL数据表批量执行操作
【解决方案 二十四】如何对MySQL数据表批量执行操作
209 0
|
存储 关系型数据库 MySQL
MySql基础-笔记4 -数据表创建、删除和数据插入、查询等操作
MySql基础-笔记4 -数据表创建、删除和数据插入、查询等操作
136 0
MySql基础-笔记4 -数据表创建、删除和数据插入、查询等操作