Kettle分页循环抽取全量数据,三步搞定

这篇具有很好参考价值的文章主要介绍了Kettle分页循环抽取全量数据,三步搞定。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Kettle分页抽取全量数据 , 适用于大数据量初次全量抽取转换.

后续可再增加作业和转换,根据动态时间范围增量抽取转换...这篇先说全量的.  

完整流程作业图如下:  (后续会拆解梳理每步流程)Kettle分页循环抽取全量数据,三步搞定Kettle分页循环抽取全量数据,三步搞定

 

  • 主要步骤如下: 有3步

         第一步: 把需要用到的源数据DB和目标数据DB连接准备好,没啥好说的;如下图

Kettle分页循环抽取全量数据,三步搞定

        第二步: 创建(获取源数据页数)转换: 主要获取源数据表中按5000条分页的页数.

获取源表数据页数.ktr  

Kettle分页循环抽取全量数据,三步搞定

          第三步: 创建(获取变量参数循环抽数)作业: 主要把上个转换的分页参数传入,用来分页查询,然后输出到目标表中.

获取变量参数循环抽数.kjb

Kettle分页循环抽取全量数据,三步搞定

下面详细说一下每一步的配置及参数设置 

  •          第二步图文详细说明 :


第二步中 , (获取源表数据页数).ktr 。第二步图中,如图示有五个流程节点;

如下 第二步 ,第一个节点(获取门诊表页数):就是获取源表页数
 

SELECT ceil(count(1)/5000) as pages
FROM palm_clinic_payment_bill;

Kettle分页循环抽取全量数据,三步搞定

如下   第二步 ,第二个节点(参数向下传递):就是参数中转处理

Kettle分页循环抽取全量数据,三步搞定

  如下 第二步 ,第三个节点(分页行号):得到分页的数值,获取数值的行号,相当于拆解


select a.rownum from  
(SELECT 
  @rownum:= @rownum + 1 AS rownum,
m.*
FROM
  (SELECT @rownum := 0) t,`palm_clinic_payment_bill` m) a
where a.rownum <=?

Kettle分页循环抽取全量数据,三步搞定

 Kettle分页循环抽取全量数据,三步搞定

 如下 第二步 ,第四个节点(修改行号为分页名称):Kettle分页循环抽取全量数据,三步搞定

  如下 第二步 ,第五个节点(表的页数列表):

Kettle分页循环抽取全量数据,三步搞定

 至此 第二步(获取源表数据页数.ktr)上面就得到了,分页的数据列表。用于后面的分页循环抽取做入参的条件。

  •           详细第三步图文说明 :

第三步中 , (获取变量参数循环抽数).kjb。第三步图中,如下图示有两个转换;

Kettle分页循环抽取全量数据,三步搞定

 详细说一下 第三步中,第一个转换 (设置分页变量.ktr) 如下图示,有两个流程节点:

Kettle分页循环抽取全量数据,三步搞定

 Kettle分页循环抽取全量数据,三步搞定

 Kettle分页循环抽取全量数据,三步搞定

 详细说一下 第三步中,第二个转换 (获取变量加抽数.ktr) 如下图示,有两个流程节点:

Kettle分页循环抽取全量数据,三步搞定

SELECT
	P.*
FROM
	(
		SELECT
			@rowno :=@rowno + 1 AS rownum,
			O.*
		FROM
			(SELECT * FROM palm_clinic_payment_bill) O,
			(SELECT @rowno := 0) t
	) P
WHERE
	rownum BETWEEN ((${VAR_P_PAGE} - 1) * 5000 + 1)
AND (${VAR_P_PAGE} * 5000);

Kettle分页循环抽取全量数据,三步搞定

 Kettle分页循环抽取全量数据,三步搞定

 Kettle分页循环抽取全量数据,三步搞定

 这里有个小技巧: 如果你获取不到字段,字段比较多,不用一个个去填写选择. 可以把上一步的分页查询的sql中的变量,替换成数字1,表示查询第一页,可以直接运行的sql, 然后再表输出的时候可以获取全部的字段,这样不用一个个选择字段了. 把数据库字段,表字段,流字段填写对应好之后,再把上一步的sql还原即可.

运行,跑起来即可

Kettle分页循环抽取全量数据,三步搞定文章来源地址https://www.toymoban.com/news/detail-460186.html

到了这里,关于Kettle分页循环抽取全量数据,三步搞定的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 玩转云端 | AccessOne实用窍门之三步搞定门户网站防护与加速

    随着互联网的飞速发展,网站建设已成为企事业单位推广、提供服务的重要途径之一。在数字技术快速迭代的当下,如何在保障网站安全的前提下提供高效服务,是企事业单位需要着重考虑的内容。 网站安全防护是网站建设后不容忽视的一环,若不法分子通过网站漏洞进行攻

    2024年04月08日
    浏览(48)
  • Kettle变量和参数介绍系列文章3-循环的轻松实现

    本文主要讲述在Kettle开发中实现循环操作的两种简单方法,即使没有编程经验的朋友也比较容易掌握。 本系列文章的前两篇,感兴趣的朋友可以看下:1、变量的使用;2、参数的使用。 在Kettle中要实现一个正常的循环操作,一般要满足下面四个条件: 1、有一个业务执行模块

    2024年02月16日
    浏览(36)
  • 【数据预处理】基于Kettle的字符串数据清洗、Kettle的字段清洗、Kettle的使用参照表集成数据

    🚀 本文选自专栏:AI领域专栏 从基础到实践,深入了解算法、案例和最新趋势。无论你是初学者还是经验丰富的数据科学家,通过案例和项目实践,掌握核心概念和实用技能。每篇案例都包含代码实例,详细讲解供大家学习。 📌📌📌本专栏

    2024年02月03日
    浏览(54)
  • 离线数据仓库-关于增量和全量

    应用系统所产生的业务数据是数据仓库的重要数据来源,我们需要每日定时从业务数据库中抽取数据,传输到数据仓库中,之后再对数据进行分析统计。 为了方便上层指标的统计,数据的同步策略有 全量同步 和 增量同步 。 同步方式是针对对应的表而言的! 为什么要做数据

    2024年01月17日
    浏览(42)
  • ES如何查询索引的全量数据

    问题描述 查询全表数据也是日常工作中常见的一种查询场景。 在ES如果我们使用match_all查询索引的全量数据时,默认只会返回10条数据。 那么在ES如何查询索引的全量数据呢? 小实验 1、索引和数据准备 PUT book {   \\\"mappings\\\": {     \\\"properties\\\": {       \\\"name\\\": {         \\\"type\\\": \\\"te

    2023年04月10日
    浏览(39)
  • 如何选择离线数据集成方案 - 全量&增量

    1 前言 我在上一篇中介绍了实时集成与离线集成该怎么选择,接着介绍一下离线集成中的增量与全量的选择问题。 要设计方案,我们先分析一下数据产生的方式。我们把音视频流这种非结构化的数据集成从这里排除出去,因为这种音视频流一般都是专业的厂商和系统来处理。

    2024年02月02日
    浏览(48)
  • 什么是全量数据、增量数据?如何统一一套系统?

    一、什么是全量数据、增量数据? 1.全量数据 2.增量数据 二、如何统一一套系统 1.为什么需要统一一套系统来处理全量数据和增量数据? 2.如何实践? 全量数据和增量数据是在数据库系统迁移时的概念。         当前需要迁移的数据库系统的全部数据。         在数据库系

    2024年02月05日
    浏览(62)
  • 全量、增量数据在HBase迁移的多种技巧实践

    作者经历了多次基于HBase实现全量与增量数据的迁移测试,总结了在使用HBase进行数据迁移的多种实践,本文针对全量与增量数据迁移的场景不同,提供了1+2的技巧分享。 1.背景 在HBase使用过程中,使用的HBase集群经常会因为某些原因需要数据迁移。大多数情况下,可以用离线

    2024年02月06日
    浏览(44)
  • Redis主从架构、数据同步原理、全量同步、增量同步

    大家好,我是哪吒。 2023年再不会Redis,就要被淘汰了 图解Redis,谈谈Redis的持久化,RDB快照与AOF日志 Redis单线程还是多线程?IO多路复用原理 Redis集群的最大槽数为什么是16384个? Redis缓存穿透、击穿、雪崩到底是个啥?7张图告诉你 Redis分布式锁的实现方式 Redis分布式缓存、

    2024年02月07日
    浏览(64)
  • DBSyncer安装_配置postgresql和mysql_sqlserver_oracel全量增量同步---数据全量增量同步之DBSyncer001

         国内做开源的大神做的,用了一下还可以,就是不能和Phoenix这种操作hbase等数据库一起用, 这个是官网,下载安装非常简单,官网也有中文详细说明. 直接下载安装包: 然后解压到某个地方,主要要用unzip dbsyncer.zip -d /opt/module这样解压 解压后直接启动就可以了    解压以后进入

    2024年02月09日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包