㈠ kettle抽取linux下csv文件到Windows下資料庫
linux 下,可以使用cli程序把csv文件導入到資料庫。具體代碼如下:
java">$ORACLE_HOME/bin/sqlplus-Susername/password@instanceName>/dev/null2>&1<<!!
#對sqlplus作一些設置,使之只輸出我們需要的文本
setechooff
setpagesize0
setverifyoff
setfeedbackoff
settermoutoff
setlinesize3000
settrimspoolon
#查詢輸出到臨時文件
spool/tmp/some_tmp.csv
#select語句
selectcolumn1||','||column2||','||column3....
fromsome_tablewherecondition
spooloff
#這里可以添加多個查詢,且每個查詢可輸出到不同的文件,如下面注釋
#spool/tmp/some_tmp.csv
#selectcolumn1||','||column2||','||column3....
#fromsome_tablewherecondition
#spooloff
setmarkupHTMLoff
quit
!!
#計算記錄總行數,如果是0則不發郵件
NUM=`cat/tmp/some_tmp.csv|wc-l`
if[$NUM-gt0]
then
#先寫excel的每列的title
echo'Title_Of_Column1,Title_Of_Column2,....Title_Of_ColumnN'>/tmp/attachement.csv
#數據正文
cat/tmp/some_tmp.csv>>/tmp/attachement.csv
#發郵件
(
echo"From:[email protected]"
echo"To:[email protected]"
echo"MIME-Version:1.0"
echo"Content-Type:multipart/mixed;"
echo'boundary="A_Boundary_Name_You_Can_Change_It"'
echo"Subject:Subject"
echo""
echo""
#附件分隔符,上面的boundary前面加--
echo"--A_Boundary_Name_You_Can_Change_It"
echo'Content-Transfer-Encoding:x-uuencode'
echo'Content-Type:text/csv;'
echo'name="attachement.csv"'
echo'Content-Disposition:attachment;'
echo'filename="attachement.csv"'
echo""
uuencode/tmp/attachement.csvattachement.csv
echo"--A_Boundary_Name_You_Can_Change_It"
#附件結束
)|mailx-t
fi
#刪除臨時文件
rm-f/tmp/*.csv
exit0
㈡ linux下怎樣安裝使用kettle
安裝JDK環境:根據自己的linux系統選擇相應的版本,比如我的centos7是x64的,所以我選擇jdk-8u74-linux-x64.tar.gz下載
下載下來以後,我們將其移到我們創建的一個目錄中,存放tar包的目錄為/usr/local/src/jdk,然後解壓:
tar -zxf /usr/local/src/jdk/jdk-7u65-linux-x64.tar.gz
編輯 vi /etc/profile 文件
在文件後面添加:
export JAVA_HOME=/usr/local/src/jdk/jdk1.8.0_74
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:$CLASSPATH:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
執行 . /etc/profile
配置成功後,關閉終端,重新進入,輸入java –version 如果出現版本號什麼的,就證明jdk安裝成功
1. 將data-integration文件夾直接拷貝到/usr/local/kettle文件夾下面
cd /usr/local/kettle/data-integration 進入該目錄
為所有.sh文件賦予執行許可權
chmod +x *.sh
然後在終端鍵入./kitchen.sh 如果出現幫助信息,說明kettle安裝成功
./kitchen.sh -----運行job
./span.sh -----運行轉換
1. 在kettle下建立data 文件夾,用來存放轉換和job文件
建立ktllog 文件夾,用來存放日誌文件
建立ktlsh 文件夾,用來存放腳本文件
1. 在ktlsh文件夾中新建執行job的文件,
新建文件命令: touch xxx.sh
並賦予文件執行許可權
chmod +x xxx.sh
編輯xxx.sh文件
Vi xxx.sh
輸入 :
#!/bin/sh
source /etc/profile 配置環境變數(使用crontab時候,由於crontab不識別系統的環境變數,所以需要我們這邊再配置一遍)
ROOT_TOPDIR=/usr/local/kettle
Export ROOT_TOPDIR --設置kettle目錄
$ROOT_TOPDIR/data-integration/kitchen.sh –file=需要執行的job的文件(絕對路徑)
保存!
可在ktlsh目錄下直接執行./xxx.sh 文件運行
1. 配置crontab 定期執行作業或者轉換
基本格式 :
*****command
分時日月周命令
第1列表示分鍾1~59 每分鍾用*或者 */1表示 第2列表示小時1~23(0表示0點) 第3列表示日期1~31 第4列表示月份1~12 第5列標識號星期0~6(0表示星期天) 第6列要運行的命令
在crontab中配置自動每天12點30分執行xxx.sh文件
編輯crontab : crontab –e
增加一行
30 12 * * * /usr/loca/kettle/ktlsh/xxx.sh
如果要輸出日誌可
30 12 * * * /usr/loca/kettle/ktlsh/xxx.sh >> /usr/local/kettle/ktllog/log01
如果ktllog下面不存在log01文件會自動創建
配置完後重啟crontab服務:
Service crond restart
查看crontab服務
Service crond status
查看crontab中的內容
Crontab –1
㈢ Kettle在linux環境的部署和使用
上一章講了對Kettle的大致理解,各個組件的含義用處,以及Spoon的使用。這章就開始講下Kettle在linux環境下的安裝部署,和其中遇到的一些坑。
[root@test local]# chmod +x ./data-integration/*.sh
[root@test local]# yum install webkitgtk
上傳你的ktr文件,然後運行pan.sh腳本即可
./data-integration/pan.sh -file=./xxx/test.ktr -level=Detailed
下面具體說明pan.sh的各個命令
首次接觸學習的並不深入,如有錯誤請指出!
㈣ kettle怎麼在Linux上面開發
編譯源碼
將項目載入到eclipse
將kettle項目拷貝到eclipse的workspace目錄下,在eclipse中新建java project,項目名稱和你拷貝過來的kettle文件夾名稱一致
項目導入到eclipse中會出現一個錯誤,如下圖,將這個文件的源碼全部注釋掉
編譯
打開build.xml, 在右邊的。Outline 點擊kettle->run as ->ant build
第一次編譯的時候需要從網上下載幾個文件,放在C:\Documents and Settings\Administrator\.subfloor,網路不好的話下載會比較慢,也可以直接文件放在C:\Documents and Settings\Administrator\下。編譯完成後將bin目錄下的.bat文件拷貝到Kettle目錄下點擊Spoon.bat運行,運行成功代表編譯已近通過
用源碼運行Spoon
Kettle源碼工程本身可能是在linux64位機器上調試的,swt配置是linux64的庫,所有在運行源碼前需要修改成win32的swt,步驟如下:工程à屬性àJava Build Pathàlibrariesàadd jars
然後將linux64的SWT庫刪除
最後打開src-uiàorg.pentaho.di.ui.spoonàSpoon.java, Run As àjava application