写给自己的Kettle笔记9

栏目: 数据库 · 发布时间: 5年前

内容简介:====================www.ayjs.net       杨洋    wpfui.com        ayui      ay  aaronyang=======请不要转载谢谢了。=========在作业里,有很多功能

====================www.ayjs.net       杨洋    wpfui.com        ayui      ay  aaronyang=======请不要转载谢谢了。=========

35 作业->FTP上传/下载

在作业里,有很多功能

FTP上传

写给自己的Kettle笔记9

然后设置文件

写给自己的Kettle笔记9

文件传输里还有很多

写给自己的Kettle笔记9

FTP下载

写给自己的Kettle笔记9

FTP删除

写给自己的Kettle笔记9

FTPS的上传,其他几个自己看

写给自己的Kettle笔记9

36 全局变量

在用户的.kettle文件夹下有个kettle.properties

写给自己的Kettle笔记9

记事本打开,编写全局变量

写给自己的Kettle笔记9

然后保存,重启spoon

拖一个获取变量

写给自己的Kettle笔记9

然后写日志,测试结果,可以拿到全局变量了

写给自己的Kettle笔记9

测试数据库连接

写给自己的Kettle笔记9

很神奇的是,密码那里,我输入的是 ${DBPWD} 竟然也可以

37 自己看下日志方面的,集群,大数据方面的应用吧,到此ay写差不多了,不想研究了。

====================www.ayjs.net       杨洋    wpfui.com        ayui      ay  aaronyang=======请不要转载谢谢了。=========

1.尽量使用数据库连接池

2. 尽量提高批处理的commit size

3. 尽量使用缓存,缓存尽量大一些(主要是文本文件和数据流)

4. Kettle 是 Java 做的,尽量用大一点的内存参数启动Kettle.

5. 可以使用 sql 来做的一些操作尽量用sql

6. Group , merge , stream lookup ,split field 这些操作都是比较慢的,想办

法避免他们.,能用sql 就用sql

7. 插入大量数据的时候尽量把索引删掉

8. 尽量避免使用update , delete 操作,尤其是update , 如果可以把update

变成先delete , 后insert .

9. 能使用truncate table 的时候,就不要使用delete all row 这种类似sql

10. 合理的分区

11. 如果删除操作是基于某一个分区的,就不要使用delete row 这种方式(不

管是delete sql 还是delete 步骤),直接把分区drop 掉,再重新创建

12. 尽量缩小输入的数据集的大小(增量更新也是为了这个目的)

13. 尽量使用数据库原生的方式装载文本文件(Oracle 的sqlloader , mysql 的

bulk loader 步骤)

14. 尽量不要用kettle 的calculate 计算步骤,能用数据库本身的sql 就用sql ,不

能用sql 就尽量想办法用procedure , 实在不行才是calculate 步骤

执行效率和复杂度 :

 删除和更新都是一项比较耗费时间的操作,它们都需

要不断的在数据库中查询记录,执行删除操作或更新

操作,而且都是一条一条的执行,执行效率低下也是

可以预见的,尽量可能的缩小原数据集大小。减少传

输的数据集大小,降低ETL的复杂程度

 时间戳方法的一些优点和缺点:

 优点: 实现方式简单,很容易就跨数据库实现了,运

行起来也容易设计

 缺点: 浪费大量的储存空间,时间戳字段除ETL过程

之外都不被使用,如果是定时运行的,某一次运行失

败了,就有可能造成数据有部分丢失

kettle没有事务

双击一个转换中可以设置"杂项"中选中“使用唯一连接”,表示

该转换和数据库是一个session,有多个分支的话,执行失败数

据就会回滚

遇到“只有一个输入记录期待设置变量并且至少已经收到2个变

量.”的问题:这个问题是我在表输入的时候给sq一次l传入了多

个值(相当于多条记录的id值),然后在更新完表之后又设置了

“设置变量”,这时候由于一次查出多条记录,“设置变量”里

不知道到底去取这些记录的哪条里的信息,所以会报这个错。

② 在写kettle脚本的时候遇到最多的问题就是类型转换问题,如:

"java.sql.Timestamp cannot be cast to java.lang.Long“

,这是日期字段不为空没问题,但是有值就会报这个转换问题;

或者Unexpected conversion error while converting value

[N_YSFJFJ Integer(9)] to an Integerjava.math.BigDecimal

cannot be cast to java.lang.Long

这类问题都是在要“更新/插入”之前使用了多个”表输入“来

传值,貌似在传值的时候都将字段对应的值默认转为integer类

型的,所以要解决这类转换问题,要么在“更新/插入”的前一

个步骤添加js控件来强制转换所有可能出现问题的字段,要么在

”表输入“中的sql语句中使用case when 或者convert

推荐您阅读更多有关于“kettle,etl,”的文章


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Java算法

Java算法

塞奇威克 / 赵文进 / 清华大学出版社 / 2004-06-01 / 59.0

《Java算法》用Java语言全面实现了当今最重要的计算机算法,并用大量图表和数学公式对算法进行了详尽的描述和分析。全书共分3卷,本书是其中的第1卷(第1至第4部分)。内容包括基本概念(第1部分)、数据结构(第2部分)、排序算法(第3部分)和查找算法(第4部分)。本书概念清楚,内容翔实,新颖,由浅入深地描述了算法。本书可作为高等院校计算机相关专业本科生和研究生的教材和补充读物,也可作为Java爱好一起来看看 《Java算法》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码