KETTLE如何批量的创建入库表结构

matoidwang 2015-06-23 02:48:28
之前在网上看到了一个关于用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在上面的链接里头。

求大神帮忙看下问题出在哪里???
...全文
16097 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
xb4876 2017-09-21
  • 打赏
  • 举报
回复
建立个资源库就能执行成功了,我也不知道为什么本地跑就抛异常
xb4876 2017-09-21
  • 打赏
  • 举报
回复
这个问题你解决了吗?应该都是获取不到表的元数据
		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;
				}
			}
		}
zdomo 2017-08-19
  • 打赏
  • 举报
回复
我也是创建表结构出错 请问大神怎么解决的
木子丘山 2017-05-11
  • 打赏
  • 举报
回复
源表数据为空时会出这问题
小蜜蜂love 2017-04-20
  • 打赏
  • 举报
回复
哎,,最近也是这个问题,愁死
yangpiena 2016-03-22
  • 打赏
  • 举报
回复
把解决办法发出来啊!太不地道了。。。
文修 2015-12-30
  • 打赏
  • 举报
回复
跪求楼主分享解决方法
jiaxitao 2015-12-25
  • 打赏
  • 举报
回复
请问解决方法是?
yu5358979 2015-10-25
  • 打赏
  • 举报
回复
为啥要用kettle?现在很多技术可以替换。数据迁移的话,可以export,import。实时的话,oracle可以高级复制,mysql可以binlog
zz_zhanyun 2015-10-16
  • 打赏
  • 举报
回复
怎么解决的,告诉一下我呢

7,388

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 数据仓库
社区管理员
  • 数据仓库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧