《Kettle实操案例一(全量/增量更新与邮件发送)》

目录

      • 一、场景描述:
      • 二、要求:
      • 三、思路
      • 四、整体作业
      • 五、各部分详细配置
        • 1、Start
        • 2、转换-获取执行开始时间
        • 3、获取目标表抽取前行数
        • 4、检验字段的值
        • 5、增量更新
        • 6、全量更新
        • 7、获取目标表抽取后行数
        • 8、获取执行结束时间
        • 9、日志写入数据库
        • 10、写日志
        • 11、发送数据抽取完成邮件
      • 六、最终效果

一、场景描述:

有两张数据表,tableA(源表),tableB(目标表),存在不同的数据库中,现在需使用kettle作为ETLI具将tableA里的数据抽取至tableB里并记录日志信息。

二、要求:

(1)目标表无数据时,使用全量更新实现数据抽取;
(2)目标表有数据时,使用增量更新实现数据抽取;
(3)将转换名称、执行日期(单位/天),转换执行时长(单位/秒),目标表抽取前行数,目标表抽取后行数,执行开始时间,执行结束时间插入日志表;
(4)执行结果发送到指定邮箱

三、思路

  • 判断目标表是否有数据,可以通过检验字段的值组件,将目标表抽取前行数传入用于判断
  • 全量更新只需要表输入和插入/更新组件
  • 增量更新需要定义一个变量用于获取目标表最大的时间,以便插入增量数据
  • 因为需要记录将转换名称、执行日期(单位/天),转换执行时长(单位/秒),目标表抽取前行数,目标表抽取后行数,执行开始时间,执行结束时间等日志信息,可以通过获取系统信息、表输入组件获取,转换执行时长(单位/秒)可以通过计算器计算执行开始时间,执行结束时间的差值,最后写入数据库

四、整体作业

在这里插入图片描述

五、各部分详细配置

1、Start

按需要配置定时任务
在这里插入图片描述

2、转换-获取执行开始时间

在这里插入图片描述
获取系统日期作为变量${execution_date}
在这里插入图片描述

3、获取目标表抽取前行数

在这里插入图片描述
获取目标表的记录数,存入${target_table_rows_before}参数
在这里插入图片描述

4、检验字段的值

判断目标表记录数${target_table_rows_before}是否大于0
在这里插入图片描述

5、增量更新

在这里插入图片描述

获取转换的名称,存入${transformation_name}变量
在这里插入图片描述
获取源表记录时间在目标表最大记录时间之后的记录,插入目标表
在这里插入图片描述

6、全量更新

在这里插入图片描述
获取转换的名称,存入${transformation_name}变量
在这里插入图片描述
通过表输入步骤获取源表所有的记录后,导入目标表
在这里插入图片描述

7、获取目标表抽取后行数

在这里插入图片描述
将抽取后目标表记录数存入${target_table_rows_after}参数中
在这里插入图片描述

8、获取执行结束时间

在这里插入图片描述
将系统时间存入${execution_end_date}变量,因为这个步骤在抽取之后,此时的系统时间可视为抽取结束时间
在这里插入图片描述

9、日志写入数据库

在这里插入图片描述
获取转换名称、执行日期(单位/天),目标表抽取前行数,目标表抽取后行数,执行开始时间,执行结束时间,并通过计算器计算得到转换执行时长(单位/秒)后,存入日志表
在这里插入图片描述

10、写日志

打印日志,确认变量正确
在这里插入图片描述

11、发送数据抽取完成邮件

配置收/发件人等信息
在这里插入图片描述

六、最终效果

1、作业执行前,目标表为空
在这里插入图片描述
2、执行作业后,导入数据到目标表成功
在这里插入图片描述
3、全量更新日志已插入
在这里插入图片描述
4、此时在源表新增2条新数据,用于测试增量更新
在这里插入图片描述
5、执行后,新增数据已导入
在这里插入图片描述
6、增量更新日志已插入
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/70533.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

位运算算法篇:进入位运算的世界

位运算算法篇:进入位运算的世界 本篇文章是我们位运算算法篇的第一章,那么在我们是算法世界中,有那么多重要以及有趣的算法,比如深度优先搜索算法以及BFS以及动态规划算法等等,那么我们位运算在这些算法面前相比&#…

redis高级数据结构HyperLogLog

文章目录 背景常见API注意事项实现原理1、哈希函数2、前导零统计3、存储与计数4、基数估算 pf 的内存占用为什么是 12k?总结 背景 在开始这一节之前,我们先思考一个常见的业务问题:如果你负责开发维护一个大型的网站,有一天老板找…

<tauri><rust><GUI>基于rust和tauri,在已有的前端框架上手动集成tauri示例

前言 本文是基于rust和tauri,由于tauri是前、后端结合的GUI框架,既可以直接生成包含前端代码的文件,也可以在已有的前端项目上集成tauri框架,将前端页面化为桌面GUI。 环境配置 系统:windows 10 平台:visu…

mysql 学习11 事务,事务简介,事务操作,事务四大特性,并发事务问题,事务隔离级别

一 事务简介, 数据库准备: create table account(id int auto_increment primary key comment 主键ID,name varchar(128) not null comment 姓名,backaccountnumber char(18) unique comment 银行账号,money float comment 余额 )comment 银行账号表;…

重塑生产制造企业项目管理新范式:项目模板在Tita中的卓越实践

在竞争激烈的生产制造领域,每一个项目的成功执行都是企业稳健前行的重要基石。然而,面对复杂多变的生产流程、严格的交货期限以及不断变化的客户需求,如何确保项目高效、有序地进行,成为了众多企业面临的共同挑战。此时&#xff0…

AI知识库和全文检索的区别

1、AI知识库的作用 AI知识库是基于人工智能技术构建的智能系统,能够理解、推理和生成信息。它的核心作用包括: 1.1 语义理解 自然语言处理(NLP):AI知识库能够理解用户查询的语义,而不仅仅是关键词匹配。 …

1-1二分查找

二分查找 1 基础版1.1 算法描述1.2 算法流程图1.3 算法实现1.3.1 Java实现 2 改动版2.1 算法描述2.2 算法流程图2.3 算法实现2.3.1 Java实现 2.4 改进点分析2.4.1 区间定义差异2.4.2 核心改进原理2.4.3 数学等价性证明 3 平衡版3.1 算法描述3.2 算法流程图3.3 算法实现3.3.1 Ja…

Elasticsearch去分析目标服务器的日志,需要在目标服务器上面安装Elasticsearch 软件吗

Elasticsearch 本身并不直接收集目标服务器的日志,它主要用于存储、搜索和分析数据。要收集目标服务器的日志,通常会借助其他工具,并且一般不需要在目标服务器上安装 Elasticsearch 软件,常见的日志收集方案: Filebeat…

Ajax-介绍

概念: Asynchronous JavaScript And XML,异步的JavaScript和XML. 作用: 数据交换:通过Aiax可以给服务器发送请求,并获取服务器响应的数据 异步交互: 可以在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页的技术, 如:搜索联想、…

论软件架构风格论文

摘要: 本人于2023年1月参与广东省某公司委托我司开发的“虚拟电厂”项目,主要负责系统整体架构设计和中间件选型。该项目为新型电力存储、电力调配、能源交易提供一套整体的软件系统。本文以虚拟电厂项目为例,主要讨论架构风格在本项目中的具体应用,主要包括如下,底层架构…

基于可信数据空间的企业数据要素与流通体系建设(附ppt 下载)

近期,可信数据空间会议召开。大数据系统软件国家工程研究中心总工程师王晨发表了题为《基于可信数据空间的企业数据要素与流通体系建设》主旨演讲。 WeChat Subscription Account【智慧城市指北】,可搜索相关关键字“20250107”,可获取具体获…

idea整合deepseek实现AI辅助编程

1.File->Settings 2.安装插件codegpt 3.注册deepseek开发者账号,DeepSeek开放平台 4.按下图指示创建API KEY 5.回到idea配置api信息,File->Settings->Tools->CodeGPT->Providers->Custom OpenAI API key填写deepseek的api key Chat…

CentOS 7配置samba服务设置文件共享

CentOS 7配置samba服务设置文件共享 一、生成另一个Linux系统,名为Linux-client,作为测试系统。 [rootliunx-client ~]# hostnamectl set-hostname Liunx-client二、如果没有则安装Samba服务,如果已经安装则省略此步。 yum install samba…

Composo:企业级AI应用的质量守门员

在当今快速发展的科技世界中,人工智能(AI)的应用已渗透到各行各业。然而,随着AI技术的普及,如何确保其可靠性和一致性成为了企业面临的一大挑战。Composo作为一家致力于为企业提供精准AI评估服务的初创公司,通过无代码和API双模式,帮助企业监测大型语言模型(LLM)驱动的…

##__VA_ARGS__有什么作用

##__VA_ARGS__ 是 C/C 中宏定义(Macro)的一种特殊用法,主要用于可变参数宏(Variadic Macros)的场景,解决当可变参数为空时可能导致的语法错误问题。以下是详细解释: 核心作用 消除空参数时的多余…

增加工作台菜单页面,AI问答应用支持上下文设置,数据库表索引优化,zyplayer-doc 2.4.8 发布啦!

zyplayer-doc是一款适合企业和个人使用的WIKI知识库管理工具,支持在线编辑富文本、Markdown、表格、Office文档、API接口、思维导图、Drawio以及任意的文本文件,专为私有化部署而设计,最大程度上保证企业或个人的数据安全,支持以内…

线性dp-拍照

问题描述 小椒是个摄影爱好者。恰逢班级合照,他受邀帮忙拍照(站成一排)。这本是一件简单的事,但由于啾啾是个完美主义者,他希望他拍的照片必须符合美学,即存在一个身高较大值,使得较大值无论是…

C++开发(软件开发)常见面试题

目录 1、C里指针和数组的区别 2、C中空指针请使用nullptr不要使用NULL 3、http/https区别和头部结构? 4、有了mac地址为什么还要ip地址?ip地址的作用 5、有了路由器为什么还要交换机? 6、面向对象三大特性 7、友元函数 8、大端小端 …

智能理解 PPT 内容,快速生成讲解视频

当我们想根据一版 PPT 制作出相对应的解锁视频时,从撰写解锁词,录制音频到剪辑视频,每一个环节都需要投入大量的时间和精力,本方案将依托于阿里云函数计算 FC 和百炼模型服务,实现从 PPT 到视频的全自动转换&#xff0…

Qt —— 加载百度离线地图、及简单绘图(附源码)

效果 说明 软件代码已下载了某区域的离线瓦片地图,通过百度离线api进行调用的地图效果。 源码 void PointMapTEST