内容简介:====================www.ayjs.net 杨洋 wpfui.com ayui ay aaronyang=======请不要转载谢谢了。=========在作业里,有很多功能
====================www.ayjs.net 杨洋 wpfui.com ayui ay aaronyang=======请不要转载谢谢了。=========
35 作业->FTP上传/下载
在作业里,有很多功能
FTP上传
然后设置文件
文件传输里还有很多
FTP下载
FTP删除
FTPS的上传,其他几个自己看
36 全局变量
在用户的.kettle文件夹下有个kettle.properties
记事本打开,编写全局变量
然后保存,重启spoon
拖一个获取变量
然后写日志,测试结果,可以拿到全局变量了
测试数据库连接
很神奇的是,密码那里,我输入的是 ${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,”的文章
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。