Kettle 中转换(transformation)的执行过程

简介:

1,Spoon.java的main方法是整个Kettle运行的入口。当打开Kettle的设计器界面后,可以在其中设计作业和转换。这里讨论转换的执行过程。

2,设计好一个转换后,转换保存的本地文件是 .ktr文件。从 .ktr文件中可以读取出该转换的元数据transMeta。

3,点击运行按钮时,触发监听器,调用Spoon.java 的runFile() ,在runFile里面调用 executeFile()。在executeFile()里面获得了transMeta数据。

复制代码
1  public void executeFile(boolean local, boolean remote, boolean cluster, boolean preview, boolean debug,
2       Date replayDate, boolean safe) {
3 
4     TransMeta transMeta = getActiveTransformation();//在这里得到了transMeta
5      if (transMeta != null)
6       executeTransformation(transMeta, local, remote, cluster, preview, debug, replayDate, safe,
7           transExecutionConfiguration.getLogLevel());
复制代码

4,再调用executeTransformation(),在该方法里 new Thread,并在线程的run方法里面执行该转换

 delegates.trans.executeTransformation(transMeta, local, remote, cluster, preview, debug, replayDate,
                  safe, logLevel);

5,最终在 org.pentaho.di.ui.spoon.delegates.SpoonTransformationDelegate.java 的方法executeTransformation(TransMeta, boolean, boolean, boolean, boolean, boolean, Date, boolean, LogLevel)中配置好转换的参数,以及执行转换的模式,启动并执行转换。

1  else if( executionConfiguration.isExecutingStorm()){
2                 //execute transformation in storm platform
3                 activeTransGraph.startTopology(executionConfiguration);
4             }

这里整合了Storm,可以让转换执行在Storm上。

 

总结:transMeta数据是构建转换的元数据,只要获得了transMeta,就可以在其它地方重新构建转换。而transMeta最初是在Spoon.java 的 executeFile() 里面通过 getActiveTransformation()方法获得。


本文转自hapjin博客园博客,原文链接:http://www.cnblogs.com/hapjin/,如需转载请自行联系原作者

 

相关文章
|
数据采集 数据库
Kettle之错误处理(Error Handling)里面的坑
Kettle之错误处理(Error Handling)里面的坑
|
调度
kettle开发篇-写日志
kettle开发篇-写日志
1109 0
|
存储 缓存 安全
oss跨域资源共享(CORS Configuration)
oss跨域资源共享(CORS Configuration)
1590 4
|
JavaScript 前端开发 Java
kettle开发篇-作业
kettle开发篇-作业
265 0
|
IDE Java API
Kettle如何进行二次开发?
【10月更文挑战第24天】Kettle如何进行二次开发?
790 0
|
Java
ETL工具 Kettle 中 kettle循环传递变量_(最简单的方法)
本文详细介绍了如何在Kettle工具中使用循环传递变量,通过示例展示了如何将movies表数据按月插入到ods_movies表,涉及新建转换、获取变量、作业配置和执行,呈现了一个嵌套作业结构.
1743 3
|
8月前
|
Java 数据库
【YashanDB知识库】kettle同步大表提示java内存溢出
在数据导入导出场景中,使用Kettle进行大表数据同步时出现“ERROR:could not create the java virtual machine!”问题,原因为Java内存溢出。解决方法包括:1) 编辑Spoon.bat增大JVM堆内存至2GB;2) 优化Kettle转换流程,如调整批量大小、精简步骤;3) 合理设置并行线程数(PARALLELISM参数)。此问题影响所有版本,需根据实际需求调整相关参数以避免内存不足。
kettle开发篇-记录关联(笛卡尔积)
kettle开发篇-记录关联(笛卡尔积)
550 0
|
安全 前端开发 PHP
Upload-labs 通关解析(上)
Upload-labs 靶场通关解析(上)