再谈kettle两种循环之--调用http分页接口循环获取数据

再谈kettle两种循环之 – 调用http分页接口循环获取数据

1.场景介绍:

由于数据量比较大,接口有返回限制,需要用到循环分页获取数据
在这里插入图片描述

2.案例适用范围:

循环job可参考,变量运用可参考,调用http分页接口循环获取数据可参考,生成连续记录可参考,MD5加密可参考

3.整个job设置如下设计:

循环方式1
在这里插入图片描述

循环方式2
在这里插入图片描述
4.JOB运行结果

调用接口返回总数据量:
在这里插入图片描述

循环方式1
在这里插入图片描述
在这里插入图片描述

循环方式2
在这里插入图片描述
在这里插入图片描述
两种循环分页获取方式结果和实际接口数据一致,代表循环分页获取接口数据的过程正确

5.JOB过程分步骤介绍

循环方式1的设计主要有4个步骤

  • Execute SQL Script组件清空表数据,目的是支持重跑
    在这里插入图片描述

主要是获取数据总量,根据设置每页数量计算循环次数(数据有多少页就循环多少次)
在这里插入图片描述

  • Evaluating JavaScript 组件主要是根据页数控制循环
    在这里插入图片描述

  • GET_HOUSE_DATA转换获取数据
    在这里插入图片描述
    表输入:这里采用数据库连接,运用sql的方式生成http接口调用信息,框出来部分是循环变量替换的关键设置
    在这里插入图片描述
    MD5加密及获取token步骤这里不细说具体可以参考之前的文章kettle使用MD5加密增量获取接口数据
    在这里插入图片描述
    接口根据request_body设置分页请求数据,然后解析入库
    在这里插入图片描述
    总结:循环方式1的设计关键在于javascript控制循环,需注意数据量太大,循环次数过多会报内存溢出的错误,经过测试大概在循环200次左右会报错,数据量不是特别建议用这种方式

循环方式2的设计主要也是4个步骤

  • Execute SQL Script组件清空表数据,目的是支持重跑和循环1设计一致
  • SET_TOTAL_NUM转换设计和循环1也一样
  • GENERATE_LOOP_ROWS转换主要是根据页数生成循环的页数和每页数量的结果列表,结果列表如下
    在这里插入图片描述
    过程设置如下:
    在这里插入图片描述
  • GET_HOUSE_DATA转换获取数据设计和循环1一样

总结:循环的设计可以解决循环1内存溢出的问题,该设计关键在于需要在job中勾选GET_HOUSE_DATA转换的两个勾以及设置参数传递(Options 下的Execute every input row和Parameters下的Copy results to parametes)

整个设计作者亲自测试过,没有问题,如大家在使用过程中发现不能成功,可以检查一下每个步骤中是否有遗漏,如内容描述有错欢迎大家指正!!!

读后有疑问请加QQ群来聊一聊 kettle那些事!作者个人qq:420773639

因资源涉及到API具体信息作者这里就不直接公布,如果有需要可以联系作者

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

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

相关文章

SQLServer2022新特性 GENERATE_SERIES函数

SQLServer2022新特性 GENERATE_SERIES函数,在给定间隔内生成一系列数字。 序列值之间的间隔和步骤由用户定义。 参考官方地址 https://learn.microsoft.com/en-us/sql/t-sql/functions/generate-series-transact-sql?viewsql-server-ver16 1、本文内容 语法参数…

国产操作系统上多种压缩和解压命令详解 _ 统信 _ 麒麟 _ 中科方德

原文链接:国产操作系统上多种压缩和解压命令详解 | 统信 | 麒麟 | 中科方德 Hello,大家好啊!今天给大家带来一篇在国产操作系统上多种压缩和解压命令详解的文章。压缩和解压缩是我们在日常工作中经常需要进行的操作,尤其是在处理大…

【AIGC】用 AI 绘画 诠释印象派!关键词、安装包分享!

前言 印象派艺术运动是19世纪60年代法国的一场艺术革命,它不仅革新了绘画技法,更重新诠释了光与色彩、自然与美。印象派艺术家,如莫奈、雷诺阿和德加,通过捕捉自然光线的瞬息变化,用色彩和笔触表达对现实世界的独特感…

Theta方法:一种时间序列分解与预测的简化方法

Theta方法整合了两个基本概念:分解时间序列和利用基本预测技术来估计未来的价值。 每个数据科学爱好者都知道,时间序列是按一定时间间隔收集或记录的一系列数据点。例如,每日温度或经济指标的月值。把时间序列想象成不同成分的组合,趋势(数据…

【linux/shell】shell中使用for循环读取数据

目录 一.for循环从列表中读取数据的几种形式 二.for循环从配置文件读取数据 三.for循环用通配符读取目录 四.for循环带有数字变量 一.for循环从列表中读取数据的几种形式 #!/bin/bash listl"aa bb cc" list2aa bb ccfor i in $list3 doecho $i done 使用这种形…

取证工作:怎样解锁 LUKS2 加密磁盘?

对于 LUKS2 密码进行恢复,Elcomsoft Distributed Password Recovery (简称 EDPR) 软件可以构建高性能集群,以更快地破解密码。EDPR 软件提供零开销的可扩展性,并支持 GPU 加速,以加快恢复速度。EDPR 可帮助…

Redis-实战篇-编码解决商铺查询的缓存穿透问题(缓存空对象)

文章目录 1、缓存穿透2、常见的解决方案有两种:2.1、缓存空对象2.2、布隆过滤器 3、编码解决商铺查询的缓存穿透问题3.1、queryById3.2、RedisConstants.java 1、缓存穿透 缓存击穿是指客户端请求的数据在缓存中和数据库中都不存在,这样缓存永远不会生效…

Spring Boot中使用Feign进行HTTP请求

Spring Boot中使用Feign进行HTTP请求 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们来探讨一下如何在Spring Boot中使用Feign进行HTTP请求。 一、Fei…

【b站-湖科大教书匠】3 数据链路层-计算机网络微课堂

课程地址:【计算机网络微课堂(有字幕无背景音乐版)】 https://www.bilibili.com/video/BV1c4411d7jb/?share_sourcecopy_web&vd_sourceb1cb921b73fe3808550eaf2224d1c155 3 数据链路层 3.1 数据链路层概述 3.1.1 数据链路层在网络体系结…

2024华为数通HCIP-datacom最新题库(变题更新⑤)

请注意,华为HCIP-Datacom考试831已变题 请注意,华为HCIP-Datacom考试831已变题 请注意,华为HCIP-Datacom考试831已变题 近期打算考HCIP的朋友注意了,如果你准备去考试,还是用的之前的题库,切记暂缓。 1、…

Python的with语句与上下文管理器:深入解析与实战应用

Python的with语句与上下文管理器:深入解析与实战应用 在Python编程中,with语句是一个强大的特性,它提供了一种简洁的方式来管理资源,如文件、网络连接等。通过使用with语句,我们可以确保在代码块执行完毕后&#xff0…

Python中的enumerate函数:索引与值的完美搭档

Python中的enumerate函数:索引与值的完美搭档 在Python编程中,遍历列表、元组或其他可迭代对象时,我们经常会需要同时访问每个元素的索引和值。这时,enumerate()函数就显得尤为重要,它为我们提供了一个简洁而高效的方…

【项目管理体系】代码评审规范

1完整性检查 2一致性检查 3正确性检查 4可预测性检查 5健壮性检查 6结构性检查 7可追溯性检查 8可理解性检查 9可验证性检查 软件开发全套资料获取:(本文末个人名片直接获取) 软件产品,特别是行业解决方案软件产品不同于一般的商品…

JavaScript中常用数据类型做布尔值(Boolean)转换

一、前言 二、示例 1、String转Boolean 2、Number转Boolean 3、NaN、Null、undefined 转Boolean 4、Object转Boolean 5、Array转Boolean 6、Symbol转Boolean 三、总结 四、思考 一、前言 JavaScript中,经常需要对一些值进行boolean判断,根据判…

DDoS攻击的最新防御策略:从检测到缓解的全方位方案

在数字化浪潮的推动下,互联网已成为现代社会的血脉。然而,随着网络空间的不断膨胀,分布式拒绝服务(DDoS)攻击如同潜伏在暗处的猛兽,随时准备发动致命一击,威胁着网络的稳定与安全。面对这一严峻…

前端-echarts tooltip展示多项自定义数据

效果如图,鼠标滑动到某一个柱子的时候,出现这一项数据的多个自定义数据,外加自己的模板样式渲染。 希望能展示每一列中的多个自定义数据 代码部分 主要是在data中,value就是实际展示的主数据,其他字段名为自定义的数…

【面试系列】Swift 高频面试题及详细解答

欢迎来到我的博客,很高兴能够在这里和您见面!欢迎订阅相关专栏: ⭐️ 全网最全IT互联网公司面试宝典:收集整理全网各大IT互联网公司技术、项目、HR面试真题. ⭐️ AIGC时代的创新与未来:详细讲解AIGC的概念、核心技术、…

ArUco 相关(opencv)

主要的问题还是随着opencv的版本升级,对aruco模块的函数命名变化挺大的,因此需要正确调用opencv对应版本下的aruco相关函数,不然程序无法运行,会报各种异常 在线ArUco工具 https://chev.me/arucogen/ 保存下来的是svg格式 环境 …

Linux常见操作问题

1、登录刚创建的用户,无法操作。 注:etc/passwd文件是Linux操作系统中存储用户账户信息的文本文件,包含了系统中所有用户的基本信息,比如用户名、用户ID、用户组ID、用户家目录路径。 注:etc: 这个目录存放所有的系统…

Android关机闹钟的实现原理以及基于高通的实现

最近新到了一家公司, 做手机的rom, 刚来被分配做改造DeckClock这个部分以便熟悉整个代码环境.里面包含闹钟, 世界时钟, 定时器, 秒表四块. 我们是基于OnePlus的rom的基础上进行修改. 当我看到产品说关机闹钟相关的东西的时候, 因为之前懂一些关于RTC的东西, 就说这个是要基于RT…