zoukankan      html  css  js  c++  java
  • 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()方法获得。

  • 相关阅读:
    Java之JDK的下载与安装,java环境变量的配置,Editplus的下载与使用
    JAVA基础语法
    数据库设计
    数据库练习题
    连接查询,子查询,联合查询
    Java内存管理-掌握虚拟机类加载器(五)
    Java内存管理-掌握虚拟机类加载机制(四)
    Java内存管理-JVM内存模型以及JDK7和JDK8内存模型对比总结(三)
    Java内存管理-初始JVM和JVM启动流程(二)
    Java内存管理-程序运行过程(一)
  • 原文地址:https://www.cnblogs.com/hapjin/p/4630487.html
Copyright © 2011-2022 走看看