kettle开发篇-缓存机制-Day7

前言:

kettle 虽然作为较成熟稳定的数据处理工具,但也存在一些需要优化地方,如果没有深入了解kettle当出现类似产品问题的时候,可能会就束手无策了。今天就和大家聊聊kettle中缓存机制,和我们需要注意的点,缓存机制,虽然能提供kettle的效率,但就像基因编码,也会出现编码错误的情况,怎么才能在kettle编码错误的时候及时自动纠正它,做到心中有数,不然作为一款开源软件,不去深入了解的话,怕是出现问题后,会像热锅上的蚂蚁,急的团团转。相信你看了今天这篇文章后,你会对kettle有个深入的了解,会做到心中有数,掌握乾坤。

一、kettle的缓存机制

1、什么是缓存

为什么要重温下缓存的概念呢?因为我们虽然明白缓存是什么?但有时忘了我们为什么会去使用它。缓存就是数据交换的缓冲区(又称作Cache),当某一硬件要读取数据时,会首先从缓存中查找需要的数据,找到了则直接执行,找不到的话则从内存中查找。由于缓存的运行速度比内存快得多,故缓存的作用就是帮助硬件更快地运行

从上面缓存的介绍我们可以知道,缓存是个中间区类似于高速公路,因为电脑CPU是优先访问缓存,因此,缓存在性能上表现肯定是比较优秀的,因此我们该怎么用好缓存呢?

2、kettle中缓存来源

2.1 DB连接

当我们在一个转换中建立好数据连接后,需要让其他转换也能访问使用这个DB连接,此时我们需要将DB连接进行共享,如图所示DB连接共享后就会默认加粗了。 image.png

2.2表输入、连接等组件

kettle中的表输入、EXCEL输入,当转换被调用时,表输入和EXCEL输入这些查询数据都会保存至内存中作为缓存,传输给表输出、EXCEL输出等。同样当我们合并记录时,kettle也是将不同数据保存至缓存中,将合并的记录也保存至缓存中,此时如果我们将百万或者上亿级别的数据进行,数据的排序、分组、合并等,容易造成内存溢出。

image.png

二、kettle缓存问题处理

1、当更改kettleDB连接,或者大批量的运行批处理作业后,发现作业均在2秒内完成执行了,此时是因为缓存中有错误的数据,导致缓存不能被读取,此时需要清除缓存后才行使用。

2、前面说到通过kettle组件进行大批量的数据排序、分组、合并处理时易导致内存溢出,因此这些操作建议采用SQ进行处理,如果不行可以考虑采用存储过程过程,kettle再调用存储过程来处理后续的操作。

3、建议自动清理组件,定时清理kettle缓存,防范于未然。具体操作可以参考下面链接。

https://blog.csdn.net/qq29061315/article/details/124431449?opsrequestmisc=%257B%2522request%255Fid%2522%253A%2522167025460916800213096037%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&requestid=167025460916800213096037&bizid=0&utmmedium=distribute.pcsearchresult.none-task-blog-2~blog~firstrankecpmv1~rankv31ecpm-1-124431449-null-null.nonecase&utmterm=%E7%BC%93%E5%AD%98&spm=1018.2226.3001.4450

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

他们叫我技术总监

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值