kettle資料庫配置
① Kettle配置數據源時載入外部properties配置文件
kettle很方便的一個點,就是從你有一個想法到落實到行動,可以很快很方便.這點也是使用kettle過程中有趣的點之一.
在設置變數中配置文件的路徑:
如果使用 最簡單的方式 ,那就是文件的路徑在此處直接指定.而 常用的方式 是通過kettle的命名參數在執行腳本的時候通過變數的方式傳遞給job,然後在屬性文件名處引用該文件路徑變數即可.如下圖
https://blog.csdn.net/andyzhaojianhui/article/details/50344247
java調用kettle資料庫類型資源庫中的ktr
此問題在1個月前或許已經接觸,單是一直木有怎麼用到,就被耽擱至今;問題的解決要來源於網路,其實我還想說問題的解決更多的是要靠我們自己的思想,不過多的言情,我們接下來直接進入主題吧!
環境:kettle-spoon 4.2.0,oracle11g,myeclipse6.5,sqlserver2008
前提:在kettle圖形界面spoon裡面已經做好了一個ktr轉換模型,此時我的ktr信息如下圖:
Step1:在myeclipse創建project,導入kettle集成所需要的包
Step2:重點解析與code源碼
//定義ktr名字
private static String transName = "test1";
//初始化kettle環境
KettleEnvironment.init();
//創建資源庫對象,此時的對象還是一個空對象
KettleDatabaseRepository repository = new KettleDatabaseRepository();
//創建資源庫資料庫對象,類似我們在spoon裡面創建資源庫
DatabaseMeta dataMeta =
new DatabaseMeta("enfo_bi","Oracle","Native","ip","sid","port","username","password");
//資源庫元對象,名稱參數,id參數,描述等可以隨便定義
KettleDatabaseRepositoryMeta kettleDatabaseMeta =
new KettleDatabaseRepositoryMeta("enfo_bi", "enfo_bi", "king description",dataMeta);
//給資源庫賦值
repository.init(kettleDatabaseMeta);
//連接資源庫
repository.connect("admin","admin");
//根據變數查找到模型所在的目錄對象
RepositoryDirectoryInterface directory = repository.findDirectory("/enfo_worker/wxj");
//創建ktr元對象
TransMeta transformationMeta = ((Repository) repository).loadTransformation(transName, directory, null, true, null ) ;
//創建ktr
Trans trans = new Trans(transformationMeta);
//執行ktr
trans.execute(null);
//等待執行完畢
trans.waitUntilFinished();
上面的兩個步驟才可以確定是資源庫中的那個路徑下的ktr和我們用命令執行一樣的-dir ,-tran -job
附上源碼:
package kettle;
import org.pentaho.di.core.KettleEnvironment;
import org.pentaho.di.core.database.DatabaseMeta;
import org.pentaho.di.core.exception.KettleException;
import org.pentaho.di.repository.Repository;
import org.pentaho.di.repository.RepositoryDirectoryInterface;
import org.pentaho.di.repository.kdr.KettleDatabaseRepository;
import org.pentaho.di.repository.kdr.KettleDatabaseRepositoryMeta;
import org.pentaho.di.trans.Trans;
import org.pentaho.di.trans.TransMeta;
/**
* <p>Title: java調用kettle4.2資料庫型資料庫中的轉換</p>
* <p>Description: </p>
* <p>Copyright: Copyright () 2012</p>
*/
public class ExecuteDataBaseRepTran {
private static String transName = "test1";
public static void main(String[] args) {
try {
//初始化kettle環境
KettleEnvironment.init();
//創建資源庫對象,此時的對象還是一個空對象
KettleDatabaseRepository repository = new KettleDatabaseRepository();
//創建資源庫資料庫對象,類似我們在spoon裡面創建資源庫
DatabaseMeta dataMeta =
new DatabaseMeta("enfo_bi","Oracle","Native","ip","sid","port","username","password");
//資源庫元對象,名稱參數,id參數,描述等可以隨便定義
KettleDatabaseRepositoryMeta kettleDatabaseMeta =
new KettleDatabaseRepositoryMeta("enfo_bi", "enfo_bi", "king description",dataMeta);
//給資源庫賦值
repository.init(kettleDatabaseMeta);
//連接資源庫
repository.connect("admin","admin");
//根據變數查找到模型所在的目錄對象,此步驟很重要。
RepositoryDirectoryInterface directory = repository.findDirectory("/enfo_worker/wxj");
//創建ktr元對象
TransMeta transformationMeta = ((Repository) repository).loadTransformation(transName, directory, null, true, null ) ;
//創建ktr
Trans trans = new Trans(transformationMeta);
//執行ktr
trans.execute(null);
//等待執行完畢
trans.waitUntilFinished();
if(trans.getErrors()>0)
{
System.err.println("Transformation run Failure!");
}
else
{
System.out.println("Transformation run successfully!");
}
} catch (KettleException e) {
e.printStackTrace();
}
}
}
③ windows怎麼安裝kettle的jdk配置
【好評贈送】Kettle軟體包6.1-8(1).2,免費下載
鏈接:https://pan..com/s/1qSJoR5D1Ih9ZtfYEfncQKg
kettle 是純 java 開發,開源的 ETL工具,用於資料庫間的數據遷移 。可以在 linux、windows、unix 中運行。有圖形界面,也有命令腳本還可以二次開發。
④ 如何在kettle作業中設置參數
1、首先,我們先打開KETTLE,進入軟體的主界面後,我們可以先創建一個作業或者轉換,然後雙擊空白處。
2、我們即可呼出作業或者轉換屬性窗口,我們在選項卡中國選擇「命名參數」,用戶填寫您所需要設置的命名參數以及默認值,支持添加描述。
3、這里,我們以表輸入功能作為例子,我們打開資料庫連接,然後可以使用對應的參數,我們設置主機名稱、資料庫名稱等一系列參數,然後輸入密碼,若用戶的密碼需要使用參數,勾選密碼下的Use Result Streaming Cursor選項。
4、然後,用戶即可配置的作業中可以使用相應的參數,住的注意的是參數名稱要與設置的參數名稱一致,還需要·點選替換SQL語句里的變數。
5、用戶按照下圖所示進行輸入相應參數,點擊啟動按鈕即可配置完成。
⑤ 如何用Kettle鏈接Kingbase資料庫
方法/步驟
安裝包下載後解壓,運行setup.bat批處理文件,彈出黑框,自動載入安裝程序。
⑥ kettle教程是什麼
kettle 是純 java 開發,開源的 ETL工具,用於資料庫間的數據遷移 。可以在 Linux、windows、unix 中運行。有圖形界面,也有命令腳本還可以二次開發。
kettle 的官網是https://community.hitachivantara.com/docs/DOC-1009855,github地址是https://github.com/pentaho/pentaho-kettle。
安裝。
這邊以 windows 下的配置為例,linux 下配置類似。
jdk 安裝及配置環境變數。
由於 kettle 是基於 java 的,因此需要安裝 java 環境,並配置 JAVA_HOME 環境變數。
建議安裝 JDK1.8 及以上,7.0以後版本的 kettle 不支持低版本 JDK。
下載 kettle。
從 官網 下載 kettle ,解壓到本地即可。
下載相應的資料庫驅動。
由於 kettle 需要連接資料庫,因此需要下載對應的資料庫驅動。
例如 MySQL 資料庫需要下載 mysql-connector-java.jar,oracle 資料庫需要下載 ojdbc.jar。下載完成後,將 jar 放入 kettle 解壓後路徑的 lib 文件夾中即可。
注意:本文基於 pdi-ce-7.0.0.0-25 版本進行介紹,低版本可能有區別。
啟動。
雙擊 Spoon.bat 就能啟動 kettle 。
轉換。
轉換包括一個或多個步驟,步驟之間通過跳(hop)來連接。跳定義了一個單向通道,允許數據從一個步驟流向另一個步驟。在Kettle中,數據的單位是行,數據流就是數據行從一個步驟到另一個步驟的移動。
1、打開 kettle,點擊 文件->新建->轉換。
2、在左邊 DB 連接處點擊新建。
3、根據提示配置資料庫,配置完成後可以點擊測試進行驗證,這邊以 MySQL 為例。
4、在左側找到表輸入(核心對象->輸入->表輸入),拖到右方。
5、雙擊右側表輸入,進行配置,選擇數據源,並輸入 SQL。可以點擊預覽進行預覽數據。
6、在左側找到插入/更新(核心對象->輸出->插入/更新),拖到右方。
7、按住 Shift 鍵,把表輸入和插入/更新用線連接起來。
8、雙擊插入/更新進行配置。
9、點擊運行,就可以運行這一個轉換。
10、運行結束後,我們可以在下方看到運行結果,其中有日誌,數據預覽等,我們可以看到一共讀取了多少條數據,插入更新了多少數據等等。
這樣就完成了一個最簡單的轉換,從一個表取數據,插入更新到另一個表。
作業。
如果想要定時運行這個轉換,那麼就要用到作業。
1、新建一個作業。
2、從左側依次拖動 START 、轉換、成功到右側,並用線連接起來。
3、雙擊 START,可以配置作業的運行間隔,這邊配置了每小時運行一次。
4、雙擊轉換,選擇之前新建的那個轉換。
5、點擊運行,就能運行這次作業,點擊停止就能停止。在下方執行結果,可以看到運行的日誌。
這樣就完成了一個最簡單的作業,每隔1小時,將源表的數據遷移到目標表。
總結:kettle 是一個非常強大的 ETL 工具,通過圖形化界面的配置,可以實現數據遷移,並不用開發代碼。
通過它的作業,kettle 能自動地運行轉換。
⑦ Kettle的MySQL資料庫如何創建學生類表
1、我們打開mysql命令行編輯器。
2、我們輸入密碼,連接資料庫。
3、我們先查看一下所有資料庫,是否有我們想要操作的。(當然你也可以自己創建一個資料庫)。
4、我們輸入使用資料庫。我們創建學生類表,表裡面輸入數據列。createtable表名。
5、我們showtables,就可以查看我們在資料庫中創建的學生類表了。
⑧ kettle怎麼把數據源配置成全局數據源
資源庫
默認資料庫連接為全局共有
非資源庫
a) 將資料庫連接進行共享,view-database connections-share
b) 設置為全局變數,在kettle.properties文件中,將資料庫連接各屬性配置為變數
⑨ 為什麼kettle可以接入多種數據源
kettle可以接入多種數據源原因:由於kettle是純java編輯,所以kettle連接mysql庫的時候需要mysql的java連接包,網路下載一個mysql的java連接驅動。
kettle使用文件資源庫不需要用戶名和密碼,如果沒有資源庫可以點擊右上角的"+"新建資源庫。為建立資料庫的資源庫,本例選擇使用文件資源庫,選擇確定後會要求選擇文件資源庫的路徑,並給文件資源庫設置一個ID和名稱。
kettle無代碼拖拽式構建數據管道:
kettle可Pentaho採用拖拽組件、連線、配置的方式來構建數據管道,透過超過200個不同的組件,用戶可以在不編寫一句代碼就能輕松完成對數據源讀取。
對數據進行關聯、過濾、格式轉換、計算、統計、建模、挖掘、輸出到不同的數據目標。極大程度地降低開發技術門檻和有效減低開發和維護成本。
⑩ kettle怎麼把數據源配置成全局數據源
資源庫
默認資料庫連接為全局共有
非資源庫
a) 將資料庫連接進行共享,view-database connections-share
b) 設置為全局變數,在kettle.properties文件中,將資料庫連接各屬性配置為變數