银行数仓项目实战(三)--使用Kettle进行增量,全量抽取

2024-06-19 07:36

本文主要是介绍银行数仓项目实战(三)--使用Kettle进行增量,全量抽取,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 使用Kettle进行全量抽取
  • 使用Kettle进行增量抽取

使用Kettle进行全量抽取

一般只有项目初始化的时候会使用到全量抽取,全量抽取的效率慢,抽取的数据量大。
我们在第一次进行全量抽取的时候,要在表中新建一个字段记录抽取时间,用于后面方便进行增量抽取。
全量抽取抽取的是T+1天到昨天的23.59分的数据
首先我们需要在目标表中新建一个字段用于记录上次抽取的时间。
我们拿emp表举例

//添加字段
alter table emp72 add lastdate date;

在这里插入图片描述
在Kettle中获取系统时间,并将其插入到目标表中,完成全量抽取。
全量抽取完之后,得到的目标emp表如图所示
在这里插入图片描述

使用Kettle进行增量抽取

如何判断那一条数据是增量呢?
我们之前全量抽取的时候,设置了上一次的抽取时间为newdate,我们判断新记录可以选择一个字段判断增量,在这个表中,无疑使用hiredate(入职时间)是最佳选择。我们进行增量抽取的时候,只需要判断每一条数据中的hiredate是否大于上一次的抽取时间,如果大于说明是新数据,需要抽取。
增量抽取中,我们的目标表是旧数据,源表是新数据。我们在目标表中添加了NEWDATE这一行代表上次抽取的时间,上次抽取的时间有很多,可以用MAX(NEWDATE)选择距离我们上次抽取最近的时间。将其作为变量,与源表中入职时间作比较,如果入职时间比上次抽取的时间晚,说明是新数据,我们需要对其进行增量抽取。
在这里插入图片描述
将最近的时间设置为变量latest
在这里插入图片描述
先将这个转换跑一遍,把变量存到系统中去,再执行增量抽取。
在这里插入图片描述

新建一个转换,进行增量抽取。
首先获取上次抽取时间,即刚刚设置的latest变量如上图
注意!变量要用==${xxx}== ,== %%xxx%%==标注
双击源表(emp20)
SQL语句中筛选出hiredate>latest的数据
在这里插入图片描述

注意,选择 “从步骤中插入数据”有下拉框可以选择指向源表的步骤,如果使用此种方法,前面步骤传入的变量可以使用 ? 代替,如上图==?==代表latest变量,点击确定,其他步骤如全量抽取所示。

这篇关于银行数仓项目实战(三)--使用Kettle进行增量,全量抽取的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


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

相关文章

Spring Boot配置和使用两个数据源的实现步骤

《SpringBoot配置和使用两个数据源的实现步骤》本文详解SpringBoot配置双数据源方法,包含配置文件设置、Bean创建、事务管理器配置及@Qualifier注解使用,强调主数据源标记、代... 目录Spring Boot配置和使用两个数据源技术背景实现步骤1. 配置数据源信息2. 创建数据源Be

Java中使用 @Builder 注解的简单示例

《Java中使用@Builder注解的简单示例》@Builder简化构建但存在复杂性,需配合其他注解,导致可变性、抽象类型处理难题,链式编程非最佳实践,适合长期对象,避免与@Data混用,改用@G... 目录一、案例二、不足之处大多数同学使用 @Builder 无非就是为了链式编程,然而 @Builder

在IntelliJ IDEA中高效运行与调试Spring Boot项目的实战步骤

《在IntelliJIDEA中高效运行与调试SpringBoot项目的实战步骤》本章详解SpringBoot项目导入IntelliJIDEA的流程,教授运行与调试技巧,包括断点设置与变量查看,奠定... 目录引言:为良驹配上好鞍一、为何选择IntelliJ IDEA?二、实战:导入并运行你的第一个项目步骤1

在MySQL中实现冷热数据分离的方法及使用场景底层原理解析

《在MySQL中实现冷热数据分离的方法及使用场景底层原理解析》MySQL冷热数据分离通过分表/分区策略、数据归档和索引优化,将频繁访问的热数据与冷数据分开存储,提升查询效率并降低存储成本,适用于高并发... 目录实现冷热数据分离1. 分表策略2. 使用分区表3. 数据归档与迁移在mysql中实现冷热数据分

mybatis-plus QueryWrapper中or,and的使用及说明

《mybatis-plusQueryWrapper中or,and的使用及说明》使用MyBatisPlusQueryWrapper时,因同时添加角色权限固定条件和多字段模糊查询导致数据异常展示,排查发... 目录QueryWrapper中or,and使用列表中还要同时模糊查询多个字段经过排查这就导致只要whe

Spring Boot3.0新特性全面解析与应用实战

《SpringBoot3.0新特性全面解析与应用实战》SpringBoot3.0作为Spring生态系统的一个重要里程碑,带来了众多令人兴奋的新特性和改进,本文将深入解析SpringBoot3.0的... 目录核心变化概览Java版本要求提升迁移至Jakarta EE重要新特性详解1. Native Ima

Spring Boot 与微服务入门实战详细总结

《SpringBoot与微服务入门实战详细总结》本文讲解SpringBoot框架的核心特性如快速构建、自动配置、零XML与微服务架构的定义、演进及优缺点,涵盖开发环境准备和HelloWorld实战... 目录一、Spring Boot 核心概述二、微服务架构详解1. 微服务的定义与演进2. 微服务的优缺点三

SpringBoot集成MyBatis实现SQL拦截器的实战指南

《SpringBoot集成MyBatis实现SQL拦截器的实战指南》这篇文章主要为大家详细介绍了SpringBoot集成MyBatis实现SQL拦截器的相关知识,文中的示例代码讲解详细,有需要的小伙伴... 目录一、为什么需要SQL拦截器?二、MyBATis拦截器基础2.1 核心接口:Interceptor

Python使用openpyxl读取Excel的操作详解

《Python使用openpyxl读取Excel的操作详解》本文介绍了使用Python的openpyxl库进行Excel文件的创建、读写、数据操作、工作簿与工作表管理,包括创建工作簿、加载工作簿、操作... 目录1 概述1.1 图示1.2 安装第三方库2 工作簿 workbook2.1 创建:Workboo

使用Go实现文件复制的完整流程

《使用Go实现文件复制的完整流程》本案例将实现一个实用的文件操作工具:将一个文件的内容完整复制到另一个文件中,这是文件处理中的常见任务,比如配置文件备份、日志迁移、用户上传文件转存等,文中通过代码示例... 目录案例说明涉及China编程知识点示例代码代码解析示例运行练习扩展小结案例说明我们将通过标准库 os