1. jvm的设置 (在运行工具的时候,要扩大JAVAMAXMEM的值)
2. jdbc驱动版本 (kettle3.0.4版本里面支持的是DB2 v8版本的,即jdbc驱动用的是v8的,需要调换成与数据库版本一致的,db2jcc.jar)
3. seq的使用(src\org\pentaho\di\core\database\ DB2DatabaseMeta.java中没有写对DB2的序列的支持,自己修改了代码)
4. 临时文件的存放(无论是kitchen运行还是pan运行都会产生临时文件,修改.sh文件或者.bat文件-Djava.io.tmpdir=/u02/kettle304/lsidss/logs/)
5. unix下的设置(运行.sh文件,trans文件里面的路径用变量代替)
6. 索引(在kettle里面运行模型,或者用sql都是一样,关联两张表进行查询时一定要记得建索引)
7. not exsits 在数据量小的时候效率比not in的效率高的多,数据量大的时候一样也会很慢
8. load阶段中的一个delete阶段,删除的不是表里面本来存在的数据,而是你要导入的文件里面的数据
9. 字段选择控件,顺序至关重要,顺序必须要和库表的顺序一致,否则对应不起来
10. 切忌进行比较字符串相等时,空值并不等于空值,所以在进行比较前请先去空值
11. 特殊字符
12. 日期字段的清洗(最终以修改存储过程的方式搞定)
13. 在字段选择使用时,数据类型必须也要保持一直,number!=integer
14. 如果程序卡住不动,原因可能有四个:一、临时文件过多;二、发生死锁,这时就需要检查你的设计是否存在问题了 三、java heap space,此时就是一直在查询,看是否建立相应的索引或者其他来提高查询的效率 四、数据库的日志空间太小,日志空间已满
15. 表结构的创建和删除
16. kettle执行效率的提高,一、加大jvm的虚拟内存;二、提交行数的加大
17. 分发与复制,一般我们所使用的都是复制
18. DB2CMD客户端乱码
1.db2 get db cfg for dbname .可以查一下相应的codepage和country代码
2.然后在客户端设置
3.db2set db2codepage=**
db2set db2country=**
4.然后退出DB2CMD
5.db2 connect to dbname
6.db2 "select * from tablename",检查一下,是否能够正确显示中文。
7.如果能够正确显示中文,说明客户端配置生效。一次设置永久生效,但是必须要退出DB2CMD,然后再进入才会有效果
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/11795524/viewspace-429898/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/11795524/viewspace-429898/