現在在做財務的軟體,財務需求是想把銷售系統所有的訂單資訊抽取到,所以這里我們使用了kettle工具.
看了很多前輩們寫的kettle,都是先將'表輸入'-->'欄位選擇'-->'文本輸出',這里輸出的是CSV的文本,最后再講這個CSV文本匯入到目標庫的目標表中.

這種方式可以規避字串不匹配的情況.
我本人使用的是更簡便的方式,'表輸入'-->'欄位選擇'-->MYSQL批量加載 的方式.

這種方式的好處是抽取完資料直接就可以添加到目標表中.但是缺點是源表的編碼格式跟目標表的編碼格式不同,會導致匯入資料為亂碼的情況.下面就是我要說的如何處理這種亂碼問題.
這個問題也是從網上查了很多資料才解決的.
我是使用的linux系統啟動的定時抽取的任務,所以我這里就以linux為例做說明;
Linux中,要規避中文亂碼的情況要注意修改兩點:
一,我們要在spoon.sh組態檔添加-Dfile.encoding=GBK引數
具體位置添加如下位置.
OPT="$OPT $PENTAHO_DI_JAVA_OPTIONS
-Dfile.encoding=GBK
-Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2
-Djava.library.path=$LIBPATH -DKETTLE_HOME=$KETTLE_HOME -DKETTLE_REPOSITORY=$KETTLE_REPOSITORY -DKETTLE_USER=$KETTLE_USER -DKETTLE_PASSWORD=$KETTLE_PASSWORD -DKETTLE_PLUGIN_PACKAGES=$KETTLE_PLUGIN_PACKAGES -DKETTLE_LOG_SIZE_LIMIT=$KETTLE_LOG_SIZE_LIMIT -DKETTLE_JNDI_ROOT=$KETTLE_JNDI_ROOT"
二,這里'表輸入'要注意勾選'允許簡易轉換'

這樣的話測驗一下即可以避免抽取亂碼的問題.
第一次發帖,寫的不好大家多提意見.有問題多交流.
uj5u.com熱心網友回復:
我這是分享帖.轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/95229.html
標籤:MySQL
上一篇:求幫忙解密檔案我是小白
下一篇:SQl陳述句問題
