`
littie1987
  • 浏览: 133438 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

Kettle4.3源码分析

 
阅读更多

1:在使用kettle的表输入插件,抽取Mysql数据的时候 会报如下的一个错误

You have a
n error in your SQL syntax; check the manual that corresponds to your MySQL serv
er version for the right syntax to use near 'OPTION SQL_SELECT_LIMIT=DEFAULT' at

   这个错误的原因是mysql的驱动版本太低。。我原来用的 mysql-connector-java-5.1.7-bin.jar。后来改为

   mysql-connector-java-5.1.30-bin就正常了。

 

2:kettle的JobEntryLoader--Job启动初始化类

调用顺序:Spoon-->main-->initPlugins()-->JobEntryLoader.init()。

在这里Kettle会把所有的Job插件读取放到

private List<JobPlugin> pluginList 的一个成员变量里面。



 

 

每个节点下都有很多插件,大概一共有60多个,所以初始化完后pluginList的size应该也是60多

下面看一下JobPlugin的内部结构



 

根据以上的堆栈信息,当我们需要查找一个Job插件的时候,JobEntryLoader 提供的一些方法就非常好理解了。


                         

而且注意的是JobPlugin的type 值都是 1。findJobPluginWithId 和 findJobEntriesWithId 的内部源码是一样的。
 

3:如何创建一个作业JobMeta

一个作业叫做一个JobMeta,特别注意的是作业不是作业步骤,作业是文件菜单下新建作业的那个作业,是所有作业步骤的容器。

源码位置:Spoon--newJobFile()

调用顺序:Spoon-main-init-addMenu-addMenuListeners--ProupMenu的菜单点击事件

核心代码:

JobMeta jobMeta = new JobMeta(log);

jobMeta.addObserver(this);

jobMeta.setName(STRING_JOB + " " + nr);

如果直接将作业保存为一个文件,可以将setName改为调用setFilename(String filename);

 

4:如何创建一个转换TransMeta

源码位置:Spoon--newTransFile()

核心代码:

TransMeta transMeta = new TransMeta();

transMeta.addObserver(this);

transMeta.setName(STRING_TRANSFORMATION + " " + nr);

总体模式和创建JobMeta类似,代码调用顺序也可以参考JobMeta

 

5:资源库Repository相关源码

RepositoriesMeta input = new RepositoriesMeta(log);//注意是带s的

input.readData();//读取连接信息

那么问题是kettle去哪里读取资源库连接信息呢

看readData里面的代码里就可以知道答案

首先他会查找bin/embedded/.creator/repositories.xml文件,

如果没有就会去查找NVL(System.getProperty("CREATOR_HOME"), System.getProperty("user.home"))++ FILE_SEPARATOR + BasePropertyHandler.getProperty("userBaseDir", ".kettle"); 路径下的repositories.xml

在windows下就是我的文档目录下。

 

找到配置文件后就开始读取里面的配置了--readData里面的关键代码:



 其中repinfo.loadXml(repnode,databases) 是在databases中查找默认资源库对应的连接,将相应的DatabaseMeta赋给repinfo。

 

实例化一个资源库:构造方法public Repository(LogWriter log, RepositoryMeta repinfo, UserInfo userinfo)

repinfo可以从RepositoriesMeta里获取,userinfo就是登陆的用户信息,主要是用户名和密码。

然后调用Repository的connect方法可以测试是否可以连接到资源库。

 

6:创建一个Job步骤,JobEntryCopy

源码位置:SpoonJobDelegate--newJobEntry

需要说明的代码:

 isSpecial()-->开始和空操作两个步骤是special

如果是开始步骤,则判断面板中是否已经有改步骤,如果有,则给出错误提示。

如果是空操作,则把空标志设置为true。

  • 大小: 26.1 KB
  • 大小: 36.8 KB
  • 大小: 15 KB
  • 大小: 88.6 KB
  • 大小: 46.1 KB
分享到:
评论

相关推荐

    kettle 4.3依赖的jar

    Kettle 4.3 是一款强大的ETL(提取、转换、加载)工具,也被称为Pentaho Data Integration(PDI)。这个版本的Kettle依赖于一系列的Java档案(JAR)文件来运行其核心功能和扩展特性。这些JAR文件扮演着至关重要的...

    kettle4.3(官方版本).zip

    在"Kettle4.3(官方版本).zip"的“distrib”目录下,用户将找到Kettle的安装文件,包括Spoon、Kitchen、Pan等可执行文件,以及相关的文档和配置文件。安装和配置Kettle通常涉及解压这些文件,设置环境变量,并根据...

    Kettle 4.4.2源码分析.docx

    Kettle 4.4.2源码分析 Kettle 是一款功能强大且流行的数据 Integrator 工具,它提供了多种数据处理和Integration 功能。本文档将对 Kettle 4.4.2 的源码进行分析,从源码获取和编译到修改 Kettle 界面和启动测试等...

    kettle4.3 用于抽取数据

    总之,Kettle 4.3作为一款强大的数据整合工具,以其灵活的配置、丰富的功能和开源特性,深受数据工程师和分析师的喜爱。无论是在企业级的数据集成项目,还是个人的数据处理需求,都能发挥出显著的价值。通过学习和...

    kettle4.1源码分析

    Kettle4.1 是该工具的一个版本,其源码分析有助于深入理解其内部工作原理,便于自定义开发或优化。 在开始源码分析之前,首先需要获取和编译 Kettle4.1 的源码。这可以通过 SVN 从官方仓库中下载,网址为 svn://...

    kettle4.2源码分析+用户操作手册

    《Kettle 4.2 源码分析与用户操作手册》 Kettle,全称为“Pentaho Data Integration”,是一款强大的数据集成工具,源于开放源码社区,由Java语言编写,具有跨平台特性,可在Windows、Linux和Unix等操作系统上稳定...

    Kettle4.2源码分析

    Spoon是构建ETL Jobs和Transformations的工具。Spoon可以以拖拽的方式图形化设计,能够通过spoon调用专用的数据集成引擎或者集群。

    Kettle体系结构与源码分析

    Kettle体系结构与源码分析,详细剖析Kettle的架构与源码,对Kettle的二次开发起关键指导作用

    Kettle 4.4.2源码分析.rar

    《Kettle 4.4.2源码分析》 Kettle,全称为Pentaho Data Integration,是一款强大的ETL(Extract, Transform, Load)工具,主要用于数据抽取、转换和加载。Kettle以其灵活的插件架构和丰富的数据处理功能,在大数据...

    kettle3.2源码分析[整理].pdf

    Kettle 3.2 源码分析 Kettle 是一个开源的数据集成工具,它提供了一种灵活的方式来处理和转换数据。Kettle 3.2 是该工具的其中一个版本,本文档将对 Kettle 3.2 的源码进行分析,了解其内部的工作机理和实现细节。 ...

    kettle 9.0 源码

    源码分析将帮助我们深入理解其工作原理和架构。 Kettle的核心组件包括: 1. **Spoon**:这是一个图形化的开发工具,用户可以通过拖拽方式创建数据流和转换。Spoon提供了丰富的数据源连接、转换步骤和目标步骤,...

    大数据分析架构师-数据层交换和高性能并发处理 15.KETTLE之源码分析与二次开发 共14页.pptx

    【课程大纲】01.etl使用简介_...共3页.pptx10.KETTLE之自定义Step、Job插件制作 共10页.pptx13.KETTLE之数据同步方案 共9页.pptx14.KETTLE之分区、集群以及原理 共20页.pptx15.KETTLE之源码分析与二次开发 共14页.pptx

    Kettle源码分析

    【Kettle源码分析】 Kettle,也称为Pentaho Data Integration (PDI),是一个开源的提取、转换、加载(ETL)工具,用于在各种数据源之间移动数据。Kettle4.2的源码分析主要涉及其核心概念、源代码结构以及关键模块。...

    Kettle源码(Web版)

    在"Kettle源码(Web版)"中,我们可以深入理解Kettle的工作原理和实现机制。源码分析有助于开发者定制自己的ETL解决方案,增强功能,或者针对特定项目进行优化。以下是一些主要的知识点: 1. **ETL流程设计**:...

    kettle源码环境搭建及插件源码调试教程

    【Kettle源码环境搭建与插件调试教程】 Kettle,又称为Pentaho Data Integration (PDI),是一个开源的数据集成工具,它提供了图形化的数据转换和ETL(Extract, Transform, Load)功能。要对Kettle进行源码级的开发和...

    springboot整合kettle项目源码

    标题 "springboot整合kettle项目源码" 描述了一个基于Spring Boot框架的集成Kettle(Pentaho Data Integration,简称KDI)的工程实例。Kettle是一款强大的ETL(提取、转换、加载)工具,它允许开发者通过编写Java...

    Kettle的源码包

    1. **源码结构分析** Kettle的源码结构分为多个模块,包括核心库、引擎、插件、UI等部分。`pentaho-kettle-8.1.0.4`这个版本包含了这些主要模块,通过源码我们可以看到各个组件如何协同工作,理解数据流的处理过程...

    kettle7.1源码编译环境搭建

    【Kettle7.1源码编译环境搭建详解】 Kettle7.1是一个强大的开源ETL(Extract, Transform, Load)工具,它以其丰富的功能和直观的图形化界面深受开发者喜爱。Kettle允许用户通过其桌面应用程序进行ETL流程的设计与...

    【kettle】10分钟搞定kettle源码部署

    ### Kettle源码部署知识点详解 #### 一、Kettle简介与价值 Kettle是一款知名的开源ETL(Extract-Transform-Load)工具,以其强大的功能和直观易用的图形界面著称。它允许用户轻松地从多种数据源抽取数据,进行必要...

    Kettle (PDI) 4.3 src补充jar

    《Kettle(PDI)4.3源码编译与补充jar详解》 Kettle(PDI,也称为Spoon)是一款强大的数据集成工具,它允许用户通过图形化界面进行ETL(Extract, Transform, Load)操作。在4.3版本中,开发者可能会遇到在以Java ...

Global site tag (gtag.js) - Google Analytics