最近有个业务数据变更的需求,要将1个已生成的500w记录写回到另一个表里面。

这里的需求比较简单,可以通过pt-archiver来做,也通过kettle之类工具来做。kettle的话比较重,可支持的数据整型功能也更强大。


我这里是用kettle来搞的(复习下kettle,弄个demo,指不定后面有更复杂的业数据需求要找DBA介入)

 

配置JDBC连接的时候,建议加上字符集设定等几个参数:

defaultFetchSize      1000
useCursorFetch true
characterEncoding utf8
characterSetResults utf8
characterSetResults false


配置job的kjb文件的时候,建议使用相对路径:

写法  ${Internal.Job.Filename.Directory}/xxxx.ktr

Kettle在Linux下的使用小记_etl


kettle自定义JVM内存大小:

vim spoon.sh  找到下面,修改下

if [ -z "$PENTAHO_DI_JAVA_OPTIONS" ]; then
PENTAHO_DI_JAVA_OPTIONS="-Xms2048m -Xmx2048m"
fi



job命令行下的启动:

cat start.sh 如下:  

export JAVA_HOME=/usr/local/jdk1.8
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

cd /opt/kettle/demo
/opt/kettle/data-integration/kitchen.sh -file /opt/kettle/demo/test.kjb >> ./run.log 2>&1