pentaho源码
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();
}
}
}
㈡ kettle源码在idea上部署运行时出错
如果java_home设置了,下面可以不用设置,如果提示JVM不能正常启动
Could not find themain class. Program will exit!
可以设置环境变量:pentaho_java_home,例如:C:\Program Files\Java\jdk1.7.0_79,其实就是你的java安装目录,1.6以上即可。windows下
如果启动还报错“could not create the Java virtual machine”,不是java虚拟机出了问题,修改一下spoon.bat里内存配置
if "%PENTAHO_DI_JAVA_OPTIONS%"=="" setPENTAHO_DI_JAVA_OPTIONS="-Xms2058m" "-Xmx1024m""-XX:MaxPermSize=256m"
改为
if "%PENTAHO_DI_JAVA_OPTIONS%"=="" setPENTAHO_DI_JAVA_OPTIONS="-Xms512m" "-Xmx512m" "-XX:MaxPermSize=256m"
㈢ pentaho需要在linux系统中开发吗
下载源码Pentaho BI Server打包后的文件存于这里,其中包括(本文使用的是3.9.0版本):biserver-ce-3.9.0-stable.zip,bi-platform-3.9.0-stable-sources.zip,biserver-ce-3.9.0-stable-javadoc.zip。 将biserver-ce-3.9.0-stable.zip解压之后...
㈣ 如何让Pentaho Aggregation Designer整合hive的数据源
最近需要进行利用pentaho聚合设计器实现hive数据仓库中表的聚合,但是目前的pentaho aggregation designer不支持hive的连接类型,想问下有没有牛人研究过pentaho aggregation designer的源码或是有别的方法直接将hive-jdbc加进去就可以使用
㈤ 我看到你关于kettle不释放内存的回答,想要一下你改完后org.pentaho.di.core.logging.LoggingRegistr源码
你留个邮箱或者qq吧 网络hi怎么发文件我还不怎么清楚
㈥ Pentaho BI可以和ECharts或者D3结合使用吗有使用的例子吗
pentaho可以安装一个cde的插件,你说的ECharts我没用过,但cde我觉得应该和你要的差不多,你可以试试这个
㈦ 如何使用kettle源码更改spoon的东西
1.2. 编译源码
将项目加载到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
二.源码分析
2.1. 修改kettle界面
修改初始化界面
打开package org.pentaho.di.ui.spoon的Spoon.Java,找到main函数,该main函数为Spoon工具的入口,找到如下语句
Splash splash = new Splash(display);
该语句为spoon初始化显示的界面,跳到定义Splash.java,下面函数
canvas.addPaintListener(new PaintListener() {
publicvoid paintControl(PaintEvent e) {
String versionText = BaseMessages.getString(PKG, "SplashDialog.Version") + " " + Const.VERSION; //$NON-NLS-1$ //$NON-NLS-2$
StringBuilder sb = new StringBuilder();
String line = null;
try {
BufferedReader reader = new BufferedReader(newInputStreamReader(Splash.class.getClassLoader().getResourceAsStream("org/pentaho/di/ui/core/dialog/license/license.txt")));//$NON-NLS-1$
while((line = reader.readLine()) != null) {
sb.append(line + System.getProperty("line.separator")); //$NON-NLS-1$
}
} catch (Exception ex) {
sb.append(""); //$NON-NLS-1$
Log.warn(BaseMessages.getString(PKG, "SplashDialog.LicenseTextNotFound")); //$NON-NLS-1$
}
String licenseText = sb.toString();
e.gc.drawImage(kettle_image, 0, 0);
// If this is a Milestone or RC release, warn the user
if (Const.RELEASE.equals(Const.ReleaseType.MILESTONE)) {
versionText = BaseMessages.getString(PKG, "SplashDialog.DeveloperRelease") + " - " + versionText; //$NON-NLS-1$ //$NON-NLS-2$
drawVersionWarning(e);
} elseif (Const.RELEASE.equals(Const.ReleaseType.RELEASE_CANDIDATE)) {
versionText = BaseMessages.getString(PKG, "SplashDialog.ReleaseCandidate") + " - " + versionText; //$NON-NLS-1$//$NON-NLS-2$
}
elseif (Const.RELEASE.equals(Const.ReleaseType.PREVIEW)) {
versionText = BaseMessages.getString(PKG, "SplashDialog.PreviewRelease") + " - " + versionText; //$NON-NLS-1$//$NON-NLS-2$
}
elseif (Const.RELEASE.equals(Const.ReleaseType.GA)) {
versionText = BaseMessages.getString(PKG, "SplashDialog.GA") + " - " + versionText; //$NON-NLS-1$//$NON-NLS-2$
}
Font verFont = new Font(e.display, "Helvetica", 11, SWT.BOLD); //$NON-NLS-1$
e.gc.setFont(verFont);
e.gc.drawText(versionText, 290, 205, true);
// try using the desired font size for the license text
int fontSize = 8;
Font licFont = new Font(e.display, "Helvetica", fontSize, SWT.NORMAL); //$NON-NLS-1$
e.gc.setFont(licFont);
// if the text will not fit the allowed space
while (!willLicenseTextFit(licenseText, e.gc)) {
fontSize--;
licFont = new Font(e.display, "Helvetica", fontSize, SWT.NORMAL); //$NON-NLS-1$
e.gc.setFont(licFont);
}
e.gc.drawText(licenseText, 290, 290, true);
}
});
1. 修改背景图片
找到ui/image/下面的kettle_splash.png,替换该图片
2. 修改版本信息
找到e.gc.drawText(versionText, 290, 205, true); 改为e.gc.drawText("海康威视数据交换平台V1.0", 290, 205, true);
3. 修改下面的描述性文字
找到e.gc.drawText(licenseText, 290, 290, true);改为e.gc.drawText("作者:海康", 290, 290, true);
4. 预览效果
㈧ 怎么安装pentaho
手把手教你安装配置
pentaho
分类:
java
2011-04-15 17:32 515
人阅读
评论
(0)
收藏
举报
目录
Pentaho
的手动配置
........................................................................................................................ 1
01.
在你开始前
.
...................................................................................................................................... 1
02.
下载
J2EE Deployment Distribution ............................................................................................ 1
04.
配置
Solutions
................................................................................................................................ 2
05.
构建应用
archives .......................................................................................................................... 3
06.
配置应用
Archives
.
......................................................................................................................... 5
Enabling SSL in Tomcat55 & JBoss
.
............................................................................................... 5
JBoss 4.0.4
......................................................................................................................................... 6
改变服务器端口
.............................................................................................................................. 7
Tomcat 5.0
.......................................................................................................................................... 8
Tomcat 5.5
........................................................................................................................................ 11
Pentaho
的手动配置
This page last changed on Jan 28, 2007 by
bhagan.
为了配置
Pentaho BI
平台,
首先你必须有一个
J2EE
兼容的
archive
文件
,
其包含了平台的所有文件和资源。如果你使用
JBoss
或
Tomcat
作为你的应
用服务器,这个指南会帮助你构建
archive
。如果你正使用一个不同的应用服
务器,你需要编写你自己的
Ant
任务来构建你需要的
archive
,并添加特定
于你的应用服务器的配置文件。
如果你愿意的话,我们很高兴将你的应用程序服务器的
Ant
任务放进我们的
包中。参与
Pentaho
的细节信息请
参考
http://www.pentaho.org/contributions
。
Pentaho
有一个预配置的
JBoss
应用服务器,其中已经为你配置好了
一切。如果想尽快省力的配置运行,我们推荐使用预配置安装包。这个
指南为那些想在自己的环境中设置平台的人提供了一种选择。
01.
在你开始前
This page last changed on Jan 30, 2007 by
bhagan.
你也需要确保你已经有:
这个指南需要
已经安装了
Java SDK
或
JRE
。
Pentaho BI
平台在
Java SDK 1.4
上构建和测试过,
Java SDK 1.4
的各种平台上的版本
可在此处下载
http://java.sun.com/j2ee/1.4/download.html#sdk
。
确保环境变量
JAVA_HOME
指向
JDK
被安装的目录。
这个下载也需要
安装了
Apache Ant
,开放源码的基于
Java
的构建
工具。你将需要
Ant
的
1.6.2
版本或更高。你可从
http://ant.apache.org/
下载
Ant
。
确保
Ant
的
bin
目录在你的系统
path
上。
02.
下载
J2EE Deployment Distribution
This page last changed on Jan 30, 2007 by
bhagan.
J2EE
Deployment
Distribution
是一个包,允许你为某种应用程序服务
器构造多种不同的
web
应用
archives
和
/
或企业应用
archives
。
到目前
为止,我们有构建以下
archives (
通过
Ant targets)
的脚本:
Tomcat 5.x .war
文件
JBoss 4.0.4 .war
文件
JBoss 4.0.4 .ear
文件
可在
downloads page
上找到这个包,其名为
pentahoj2ee_deployments
。
如果你想将之配置到一个没有列出的应用程序服务器时,
这也是一个好的起点。
你需要的所有
Pentaho
文件均存在于这个包中,你所需要做的就是编写你自
己的
Ant target
,并添加你的环境必需的配置文件。
我们主要的应用服务器测试环境是
JBoss 4.0.4
。
Pentaho
社区和开发组欢迎
各种反馈
–
不管是面临的问题,还是仅仅想让我们知道你成功配置了环境
–
关于
在其它应用程序服务器上的配置。
请使用
http://forums.pentaho.org
上的论坛
共享你的经历。
03.
配置
Sample
数据
This page last changed on Jan 30, 2007 by
bhagan.
这
很
简
单
。
下
载
和
解
压
你
在
Sourceforge
找
到
的
pentaho_data-<version>.zip
文件。
在资源树的根目录上,你会看见启动和关闭脚本。为启动数据库服务器,
运行
start-hypersonic (.bat
用于
Windows
,
.sh
用于
*nix)
脚本。为停
止数据库服务器,运行
stop-hypersonic
(.bat
用于
Windows
,
.sh
用于
*nix)
脚本。
建议的目录结构
如下:
/pentaho
/appserver
/pentaho-data
/pentaho-solutions
04.
配置
Solutions
㈨ 求Kettle 源代码 下载地址及 Kettle java api教程...
http://kettle.pentaho.com/下载地址!想要什么自己选
http://wiki.pentaho.com/display/EAI/Getting+Started基础教程
http://wiki.pentaho.com/display/EAI/Pentaho+Data+Integration+Steps详细教程
㈩ kettle源码搭建运行时出现错误
将安装包pdi-ce-5.4.0.1-130\data-integration\ui目录下的所有文件拷贝到源码包pentaho-kettle-5.4.0.1-R\ui目录下,即可解决~~