博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Kettle 中转换(transformation)的执行过程
阅读量:7002 次
发布时间:2019-06-27

本文共 1407 字,大约阅读时间需要 4 分钟。

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();//在这里得到了transMeta5      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 platform3                 activeTransGraph.startTopology(executionConfiguration);4             }

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

 

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

 

转载地址:http://slevl.baihongyu.com/

你可能感兴趣的文章
IHS 问题分析
查看>>
企业创新系列之:青苹之末
查看>>
Windows Server 2012 R2 WSUS-10:流程概述
查看>>
Percona5.6首次提供了审计日志功能
查看>>
安装完 MySQL 后必须调整的 10 项配置
查看>>
Cobra怼比特大陆滥用算力要求改算法,吴忌寒:比特币或跌到10%下
查看>>
Windows Server 8 Beta 初体验之一:安装篇(无技术含量,安装过的人可以略过)
查看>>
05-Windows Server 2012 R2 会话远程桌面-标准部署-RD连接代理高可用性(RemoteApp)
查看>>
Silverlight Telerik控件学习:弹出窗口RadWindow
查看>>
Window.Show()和Window.ShowDialog()区别
查看>>
poj1742
查看>>
JavaScript计算两个文本框内数据的乘积(四舍五入保留两位小数)
查看>>
c++ extern c
查看>>
Asp.net :一个调试错误 Breakpoint will not currently be hit. No symbols loaded for this document....
查看>>
一个单表死锁的示例
查看>>
Oracle DBA之配置静态监听(listener registered statically)
查看>>
python web server comparison
查看>>
使用Rspec进行行为驱动测试
查看>>
C#里巧用DateTime预设一些可选的日期范围(如本年度、本季度、本月等)
查看>>
组播MAC地址
查看>>