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。
相关推荐
Kettle 4.3 是一款强大的ETL(提取、转换、加载)工具,也被称为Pentaho Data Integration(PDI)。这个版本的Kettle依赖于一系列的Java档案(JAR)文件来运行其核心功能和扩展特性。这些JAR文件扮演着至关重要的...
在"Kettle4.3(官方版本).zip"的“distrib”目录下,用户将找到Kettle的安装文件,包括Spoon、Kitchen、Pan等可执行文件,以及相关的文档和配置文件。安装和配置Kettle通常涉及解压这些文件,设置环境变量,并根据...
Kettle 4.4.2源码分析 Kettle 是一款功能强大且流行的数据 Integrator 工具,它提供了多种数据处理和Integration 功能。本文档将对 Kettle 4.4.2 的源码进行分析,从源码获取和编译到修改 Kettle 界面和启动测试等...
总之,Kettle 4.3作为一款强大的数据整合工具,以其灵活的配置、丰富的功能和开源特性,深受数据工程师和分析师的喜爱。无论是在企业级的数据集成项目,还是个人的数据处理需求,都能发挥出显著的价值。通过学习和...
Kettle4.1 是该工具的一个版本,其源码分析有助于深入理解其内部工作原理,便于自定义开发或优化。 在开始源码分析之前,首先需要获取和编译 Kettle4.1 的源码。这可以通过 SVN 从官方仓库中下载,网址为 svn://...
《Kettle 4.2 源码分析与用户操作手册》 Kettle,全称为“Pentaho Data Integration”,是一款强大的数据集成工具,源于开放源码社区,由Java语言编写,具有跨平台特性,可在Windows、Linux和Unix等操作系统上稳定...
Spoon是构建ETL Jobs和Transformations的工具。Spoon可以以拖拽的方式图形化设计,能够通过spoon调用专用的数据集成引擎或者集群。
Kettle体系结构与源码分析,详细剖析Kettle的架构与源码,对Kettle的二次开发起关键指导作用
《Kettle 4.4.2源码分析》 Kettle,全称为Pentaho Data Integration,是一款强大的ETL(Extract, Transform, Load)工具,主要用于数据抽取、转换和加载。Kettle以其灵活的插件架构和丰富的数据处理功能,在大数据...
Kettle 3.2 源码分析 Kettle 是一个开源的数据集成工具,它提供了一种灵活的方式来处理和转换数据。Kettle 3.2 是该工具的其中一个版本,本文档将对 Kettle 3.2 的源码进行分析,了解其内部的工作机理和实现细节。 ...
源码分析将帮助我们深入理解其工作原理和架构。 Kettle的核心组件包括: 1. **Spoon**:这是一个图形化的开发工具,用户可以通过拖拽方式创建数据流和转换。Spoon提供了丰富的数据源连接、转换步骤和目标步骤,...
【课程大纲】01.etl使用简介_...共3页.pptx10.KETTLE之自定义Step、Job插件制作 共10页.pptx13.KETTLE之数据同步方案 共9页.pptx14.KETTLE之分区、集群以及原理 共20页.pptx15.KETTLE之源码分析与二次开发 共14页.pptx
【Kettle源码分析】 Kettle,也称为Pentaho Data Integration (PDI),是一个开源的提取、转换、加载(ETL)工具,用于在各种数据源之间移动数据。Kettle4.2的源码分析主要涉及其核心概念、源代码结构以及关键模块。...
在"Kettle源码(Web版)"中,我们可以深入理解Kettle的工作原理和实现机制。源码分析有助于开发者定制自己的ETL解决方案,增强功能,或者针对特定项目进行优化。以下是一些主要的知识点: 1. **ETL流程设计**:...
【Kettle源码环境搭建与插件调试教程】 Kettle,又称为Pentaho Data Integration (PDI),是一个开源的数据集成工具,它提供了图形化的数据转换和ETL(Extract, Transform, Load)功能。要对Kettle进行源码级的开发和...
标题 "springboot整合kettle项目源码" 描述了一个基于Spring Boot框架的集成Kettle(Pentaho Data Integration,简称KDI)的工程实例。Kettle是一款强大的ETL(提取、转换、加载)工具,它允许开发者通过编写Java...
1. **源码结构分析** Kettle的源码结构分为多个模块,包括核心库、引擎、插件、UI等部分。`pentaho-kettle-8.1.0.4`这个版本包含了这些主要模块,通过源码我们可以看到各个组件如何协同工作,理解数据流的处理过程...
【Kettle7.1源码编译环境搭建详解】 Kettle7.1是一个强大的开源ETL(Extract, Transform, Load)工具,它以其丰富的功能和直观的图形化界面深受开发者喜爱。Kettle允许用户通过其桌面应用程序进行ETL流程的设计与...
### Kettle源码部署知识点详解 #### 一、Kettle简介与价值 Kettle是一款知名的开源ETL(Extract-Transform-Load)工具,以其强大的功能和直观易用的图形界面著称。它允许用户轻松地从多种数据源抽取数据,进行必要...
《Kettle(PDI)4.3源码编译与补充jar详解》 Kettle(PDI,也称为Spoon)是一款强大的数据集成工具,它允许用户通过图形化界面进行ETL(Extract, Transform, Load)操作。在4.3版本中,开发者可能会遇到在以Java ...