eIT.com.cn 2022/11/24 14:52:15 阅读 74 次
采用 Kettle 处理大数据量抽取任务作者: 原文地址: 需求将 源表(Oracle):table1 目标表():table2 数据量:20,000,000 思路由于服务器内存资源有限,所以,无法使用 根据实际情况设置每次处理的数据量,比如:5,000条,然后根据总的数据条数和每次处理的数据量计算出一共分几页, 假设总数据量有:20,000,000,所以页数为: 注: 若存在小数,小数部分算一页,比如:20.3算21页 步骤根据需求的条件,首先对数据进行: 数据量:20,000,000 每页数据量:5,000 页数:4,000 源表(Oracle):table1 目标表():table2 主流程:transfer_table1_to_table2.kjb 流程说明: transfer_table1_to_table2.kjb: 主流程 build_query_page.ktr: 构造页数游标 loop_execute.kjb: 根据页数来执行数据导入操作 我们分别来看各个部分的构成: build_query_page.ktr: 构造页数游标这一步中,我们需要构造类似这样的数据结构: 其中 注: 取数我通过这个表的
具体实现如下图: loop_execute.kjb: 根据页数来执行数据导入操作在上一步中,我们构造了页数,步中,我们遍历上一步中的数,通过数找出相应的数据集进行操作, 其中set_values.ktr和execute_by_page.ktr两个转换 loop_execute.kjb具体实现如下: set_values.ktr:表示从上一步中获得的页数execute_by_page.ktr:表示根据页数进行数据导入操作其中
注: ${VAR_P_PAGE}为每次的数。 select_field为设置需要导入的列名: output_target目的是到目标表table2: 因为要遍历上一次执行的结果,那么需要在transfer_table1_to_table2.kjb的loop_execute.kjb中做如下设置: 最后,执行 总结通过上述,我们可以很好的内存不足的情况下,大数据量在不同的之导入工作。 FAQ
(Idle connection timeout if we keep kettle idle for 8hours). 办法: 总结以上是为你收集整理的全部内容,希望文章能够帮你解决所遇到的程序开发问题。 |
• MySQL的索引与事务 (2022/12/6 7:56:56)
• 【MySQL】MVCC原理分析 + 源码解读 -- 必须说透 (2022/12/6 7:56:55)
• CDH大数据平台 29Cloudera Manager Console之superset之MySQL元数据配置(markdown新版三) (2022/11/29 12:05:25)
• mysql 锁机制与原理详解 (2022/11/28 16:05:02)
• [MSSQL]汉字转拼音函数实现语句 (2022/11/26 6:11:29)
• 采用 Kettle 分页处理大数据量抽取任务 (2022/11/24 14:52:15)
• Oracle Flashback 和 RMAN 示例 (2022/11/24 14:52:15)
• MySQL 的安装和配置 (2022/11/24 14:52:15)
• NFT是什么?一篇文章搞懂NFT的概念 (2022/11/23 18:08:16)
• [MySQL]复杂查询(进阶) (2022/11/23 9:22:28)
电脑入门资料 | XSD | 其它IT认证 | Cisco 交换基础 | 游戏开发 | 木马病毒 | HCatalog | 电脑CPU | VC.Net | 大数据分析 | Grav | Angular 2 | 中间件 | 局域网共享 | QlikView | TestRail | 软件水平考试 | DJANGO | iBATIS | Word
合作媒体与友情链接 |
生活常识小贴士 | 软件开发教程 | 智慧城市生活网 | 息县通生活服务[移动版] | 息县商圈[移动版] | 美食菜谱 |
健康养生 | 法律知识 | 科技频道 | 电影影讯 | 留学考研学习 | 星座生肖|解梦说梦 |
关于我们 | 联系我们 | 合作媒体 | 使用条款 | 隐私权声明 | 版权声明 |
Copyright © 2023 eIT.com.cn. All Rights Reserved. | 豫ICP备2022012332号 |