`

Kettle4 Repository 操作示例 (登陆资源库,获取模型,运行)

 
阅读更多
/**
 * Kettle 4.2.0 版本测试通过
 */
package zhangxin.test;

import java.util.List;

import org.pentaho.di.core.KettleEnvironment;
import org.pentaho.di.core.exception.KettleException;
import org.pentaho.di.core.plugins.PluginRegistry;
import org.pentaho.di.core.plugins.RepositoryPluginType;
import org.pentaho.di.repository.ObjectId;
import org.pentaho.di.repository.RepositoriesMeta;
import org.pentaho.di.repository.Repository;
import org.pentaho.di.repository.RepositoryElementMetaInterface;
import org.pentaho.di.repository.RepositoryMeta;
import org.pentaho.di.repository.StringObjectId;
import org.pentaho.di.trans.Trans;
import org.pentaho.di.trans.TransMeta;

/**
 * 登陆资源库,获取模型,运行
 * 
 * @author zhangxin
 * 
 */
public class TestRepository {

	/**
	 * @param args
	 * @throws KettleException
	 */
	public static void main(String[] args) throws KettleException {
		// 运行环境初始化(设置主目录、注册必须的插件等)
		KettleEnvironment.init();
		RepositoriesMeta repositoriesMeta = new RepositoriesMeta();
		// 从文件读取登陆过的资源库信息
		repositoriesMeta.readData();
		// 选择登陆过的资源库
		RepositoryMeta repositoryMeta = repositoriesMeta.findRepository("4_2");
		// 获得资源库实例
		Repository repository = PluginRegistry.getInstance().loadClass(RepositoryPluginType.class, repositoryMeta.getId(), Repository.class);
		repository.init(repositoryMeta);
		// 连接资源库
		repository.connect("admin", "admin");
		ObjectId id = new StringObjectId("0");
		// 获取某个资源库的所有转换
		List<RepositoryElementMetaInterface> li = repository.getTransformationObjects(id, false);
		TransMeta transMeta = null;
		if (li != null) {
			for (RepositoryElementMetaInterface repe : li) {
				System.out.println("TRANSFORMATION:" + repe.getObjectId() + "name:" + repe.getName());
				TransMeta tm = repository.loadTransformation(repe.getObjectId(), null);
				if ("测试转换".equals(tm.getName())) {
					transMeta = tm;
				}
			}
		}
		// 执行指定转换
		Trans trans = new Trans(transMeta);
		trans.execute(null);
		trans.waitUntilFinished();
		if (trans.getErrors() > 0) {
			throw new RuntimeException("There were errors during transformation execution.");
		}
		repository.disconnect();
	}

}
 
分享到:
评论

相关推荐

    Kettle插件开发官方示例

    Kettle,全称为Pentaho Data Integration...总之,"Kettle插件开发官方示例"是学习和实践Kettle插件开发的重要资源,通过深入研究和模仿这些示例,开发者可以提升自己的技能,更好地利用Kettle解决复杂的数据处理问题。

    kettle集成应用之---java调用执行transformation和job

    kettle中的Repository是存储元数据的多张数据表,在资源库模式下设计的transformation和job都会被存储在这些数据表中。为配置Repository,需要先配置Database Connection(数据库连接),填写Name和Description,...

    kettle 4.2.0探索

    为了更好地管理和维护转换和作业,建议创建并使用数据库类型的资源库(Kettle Database Repository)。以下是创建过程的一个示例: 1. **新建资源库**:在Spoon中选择“新建”选项,然后选择“Kettle Database ...

    java调用Kettle引用jar包2.zip

    这个压缩包"java调用Kettle引用jar包2.zip"很可能包含了一些示例代码和必要的库文件,帮助开发者学习如何在Java项目中调用Kettle。 首先,我们需要理解Kettle的核心组件:Job和Transformation。Job是一系列步骤的...

    java调用kettle中的job与转换-源码

    如果你遇到任何问题,可以参考这个示例,或者查看Kettle官方文档和社区论坛获取更多帮助。 总之,通过Java调用Kettle的Job与转换,我们可以将数据处理逻辑与业务逻辑紧密结合,实现更加灵活和可扩展的数据集成解决...

    Java整合Kettle使用.docx

    - **加载资源库**:使用`KettleFileRepository`类连接到Kettle资源库。 ```java private KettleFileRepository fileRepositoryCon() throws KettleException { KettleFileRepository repository = new ...

    新建数据库资源库

    ### 新建数据库资源库知识点详解 #### 一、Kettle简介 Kettle是一款开源的数据集成工具,主要用于数据清洗和加载(ETL),它提供了一种图形化的操作方式来进行数据处理任务的设计与执行。 #### 二、环境配置 #####...

    java程序生成kettle转换ktr文件

    Java程序生成Kettle转换(KTR)文件是一个技术性较强的话题,主要涉及到Java编程语言、Kettle(也称为Pentaho Data Integration,PDI)工具以及可能的资源文件管理。Kettle是一种开源的数据集成工具,它允许用户通过...

    Java代码调用kettle任务.pdf

    总的来说,Java调用Kettle任务的关键在于正确配置Kettle环境,加载资源库和作业/转换元数据,以及正确执行和管理转换或作业的生命周期。这个过程允许你在Java应用中灵活地集成Kettle的ETL能力,实现数据处理的自动化...

    ETL工具kettle学习总结.doc

    - Kettle的整体结构包括多个组件,如Repository(资源库)、Spoon(图形化设计工具)、Pan/Pentaho Data Extractor(用于数据抽取)、Kitchen(用于启动转换和作业)、Carte(服务器端的执行引擎)等。 ##### 2. ...

    Kettle-命令行使用.pdf

    - **7**: 无法从资源库或 XML 中加载转换。 - **8**: 加载步骤或插件错误。 - **9**: 命令行用法错误。 通过 Kitchen 和 Pan,用户可以方便地在命令行环境中执行和管理 Kettle 数据集成任务,实现数据处理流程的...

    Pentaho Kettle Solutions

    #### 第4章:示例ETL解决方案——Sakila - **Sakila案例介绍**:介绍了一个名为Sakila的示例数据库,用作演示ETL过程的实际案例。 - **先决条件与基本技能**:列出进行本章示例前需要掌握的基本条件和技能。 - **...

    pdi-sdk-plugins-8.0.0.0-R.zip

    《PDI SDK Plugins详解:构建Kettle扩展的实践指南...通过学习和实践这些示例,开发者不仅可以提升自己的技能,还能为PDI社区贡献自己的力量,开发出更多实用且高效的插件,丰富PDI的功能库,推动数据集成领域的发展。

Global site tag (gtag.js) - Google Analytics