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在上面的链接里头。

求大神帮忙看下问题出在哪里???
...全文
16091 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
  • 打赏
  • 举报
回复
怎么解决的,告诉一下我呢
1、ETL(Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程),对于企业或行业应用来说,我们经常会遇到各种数据的处理,转换,迁移,所以掌握一个ETL工具的使用,必不可少。Kettle作为ETL工具是非常强大和方便的。Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定。Kettle中文名称叫水壶,该项目的主程序员MATT希望把各种数据放到一个壶里,然后以一种指定的格式流出。Kettle这个ETL工具集,它允许你管理来自不同数据库的数据,通过提供一个图形化的用户环境来描述你想做什么,而不是你想怎么做。Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。2、Clickhouse 是俄罗斯的“百度”Yandex公司在2016年开源的,一款针对大数据实时分析的高性能分布式数据库,与之对应的有hadoop生态hive,Vertica和百度出品的palo。这是战斗民族继nginx后,又开源的一款“核武器”。Hadoop 生态体系解决了大数据界的大部分问题,当然其也存在缺点。Hadoop 体系的最大短板在于数据处理时效性。基于 Hadoop 生态的数据处理场景大部分对时效要求不高,按照传统的做法一般是 T + 1 的数据时效。即 Trade + 1,数据产出在交易日 + 1 天。ClickHouse 的产生就是为了解决大数据量处理的时效性。独立于Hadoop生态圈。3、Superset 是一款由 Airbnb 开源的“现代化的企业级 BI(商业智能) Web 应用程序”,其通过创建和分享 dashboard,为数据分析提供了轻量级的数据查询和可视化方案。 Superset 的前端主要用到了 React 和 NVD3/D3,而后端则基于 Python 的 Flask 框架和 Pandas、SQLAlchemy 等依赖库,主要提供了这几方面的功能:01、集成数据查询功能,支持多种数据库,包括 MySQL、PostgresSQL、Oracle、SQL Server、SQLite、SparkSQL 等,并深度支持 Druid。02、通过 NVD3/D3 预定义了多种可视化图,满足大部分的数据展示功能。如果还有其他需求,也可以自开发更多的图类型,或者嵌入其他的 JavaScript 图库(如 HighCharts、ECharts)。03、提供细粒度安全模型,可以在功能层面和数据层面进行访问控制。支持多种鉴权方式(如数据库、OpenID、LDAP、OAuth、REMOTE_USER 等)。 基于Kettle+Clickhouse+Superset构建亿级大数据实时分析平台课程将联合这三大开源工具,实现一个强大的实时分析平台。该系统以热门的互联网电商实际业务应用场景为案例讲解,对电商数据的常见实战指标处理使用kettle等工具进行了详尽讲解,具体指标包括:流量分析、新增用户分析、活跃用户分析订单分析、团购分析。能承载海量数据的实时分析,数据分析涵盖全端(PC、移动、小程序)应用。项目代码也是具有很高的商业价值的,大家可以根据自己的业务进行修改,便可以使用。本课程包含的技术:开发工具为:IDEAKettleClickhouseSupersetBinlogCanalKafkaHbaseHadoopZookeeperFlinkSpringBootSpringCouldPythonAnconaMySQL等 课程亮点:1.与企业对接、真实工业界产品2.强大的ETL工具Kettle全流程讲解实现3.ClickHouse高性能列式存储数据库4.Superset现代化的企业级BI可视化5.数据库实时同步解决方案6.集成Flink实时数据转换解决方案7.主流微服务SpringBoot后端系统8.互联网大数据企业热门技术栈9.支持海量数据的实时分析10.支持全端实时数据分析11.全程代码实操,提供全部代码和资料12.提供答疑和提供企业技术方案咨询 

7,388

社区成员

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

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