kettle开发篇-插入更新

简介: 笔记

image.png

前言:


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


一、什么是插入更新


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

1、插入更新案例解析

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

2.png

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

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

image.png


二、扩展


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


相关文章
|
数据库
kettle开发篇-合并记录
kettle开发篇-合并记录
665 0
|
调度
kettle开发篇-写日志
kettle开发篇-写日志
1037 0
|
XML 存储 网络协议
kettle开发篇-Http client
kettle开发篇-Http client
1242 0
|
SQL 前端开发 JavaScript
kettle开发-超好用自定义数据处理组件
kettle开发-超好用自定义数据处理组件
522 0
|
SQL 关系型数据库 MySQL
ETL工具 Kettle 中怎么通过变量传参
ETL工具 Kettle 中怎么通过变量传参
948 0
|
人工智能 数据处理
kettle开发-AI分流之case/switch
kettle开发-AI分流之case/switch
488 0
|
SQL XML JSON
大数据ETL开发之图解Kettle工具(入门到精通)
ETL (Extract-Transform-Load 的缩写,即数据抽取、转换、装载的过程),对于企业或行业应用来说,我们经常会遇到各种数据的处理,转换,迁移,所以了解并掌握一种ETL工具的使用,必不可少。
6410 0
大数据ETL开发之图解Kettle工具(入门到精通)
|
SQL 关系型数据库 MySQL
实时计算 Flink版操作报错之遇到MySQL服务器的时区偏移量(比UTC晚18000秒)与配置的亚洲/上海时区不匹配,如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
机器学习/深度学习 算法 安全
药品不良反应智能监测,不良反应(ADR)智能监测系统源码
药物不良反应智能监测系统是一套用于监测和收集药品在使用过程中发生的不良反应的系统。它基于医院临床数据中心,运用信息技术实现药品不良反应的智能监测、报告管理、知识库查询、统计分析等功能。    不良反应(ADR)智能监测系统由系统管理、规则管理、监测报告三个大的功能模块组成,方便药师维护监测规则知识库,以及监测主题库。
256 3
药品不良反应智能监测,不良反应(ADR)智能监测系统源码