之前在網上看到了一個關于用Kettle的一套流程完成對整個資料庫遷移的帖子http://ainidehsj.iteye.com/blog/1735434
但是按照里面的步驟在創建表結構的時候還是出現了問題。
Kettel日志報錯如下:

這是入庫表結構的Java代碼:
public boolean processRow(StepMetaInterface smi, StepDataInterface sdi) throws KettleException
{
// First, get a row from the default input hop
//
Object[] r = getRow();
org.pentaho.di.core.database.DatabaseMeta dbmeta = null;
java.util.List list = getTrans().getRepository().readDatabases();//3.x中獲取資源庫的所有資料庫連接資訊用getDatabases();
if(list != null && !list.isEmpty())
{
for(int i=0;i<list.size();i++)
{
dbmeta = (org.pentaho.di.core.database.DatabaseMeta)list.get(i);
System.out.println("+++++++++++++++");
System.out.println(dbmeta);
//下面是目標庫的資料庫連接,大家可根據需要修改
if("ORAC10G-TEST".equalsIgnoreCase(dbmeta.getName()))
{
break;
}
}
}
if(dbmeta!=null)
{
org.pentaho.di.core.database.Database db=new org.pentaho.di.core.database.Database(dbmeta);
try
{
db.connect();
String tablename = getVariable("TABLENAME");
logBasic("開始創建表:" + tablename);
if(tablename!=null && tablename.trim().length()>0)
{
String sql = db.getDDL(tablename, data.inputRowMeta);//${TABLENAME}
db.execStatement(sql.replace(";", ""));
logBasic(sql);
}
}
catch(Exception e)
{
logError("創建表出現例外",e);
}finally{
db.disconnect();
}
}
return false;
}
這個流程的job和trans在上面的鏈接里頭。
求大神幫忙看下問題出在哪里???
uj5u.com熱心網友回復:
怎么解決的,告訴一下我呢uj5u.com熱心網友回復:
為啥要用kettle?現在很多技術可以替換。資料遷移的話,可以export,import。實時的話,oracle可以高級復制,mysql可以binloguj5u.com熱心網友回復:
請問解決方法是?uj5u.com熱心網友回復:
跪求樓主分享解決方法uj5u.com熱心網友回復:
把解決辦法發出來啊!太不地道了。。。uj5u.com熱心網友回復:
哎,,最近也是這個問題,愁死uj5u.com熱心網友回復:
源表資料為空時會出這問題uj5u.com熱心網友回復:
我也是創建表結構出錯 請問大神怎么解決的uj5u.com熱心網友回復:
這個問題你解決了嗎?應該都是獲取不到表的元資料Object[] r = getRow();
// org.pentaho.di.core.database.DatabaseMeta dbmeta = null;
org.pentaho.di.core.database.DatabaseMeta dbmeta = getTransMeta().findDatabase("mysql_test");
java.util.List list = getTrans().getRepository().readDatabases();
if(list != null && !list.isEmpty())
{
for(int i=0;i<list.size();i++)
{
dbmeta = (org.pentaho.di.core.database.DatabaseMeta)list.get(i);
if("mysql-jeesite".equalsIgnoreCase(dbmeta.getName()))
{
break;
}
}
}
uj5u.com熱心網友回復:
建立個資源庫就能執行成功了,我也不知道為什么本地跑就拋例外轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/110888.html
標籤:數據倉庫
下一篇:表單里面的表格顯示問題
