首页 > 代码库 > ETL Pentaho代码学习笔记
ETL Pentaho代码学习笔记
1、通过设置KETTLE_HOME环境变量可以让.kettle不需要在user.home下
2、默认kettle_home 为User.home,如果要自定义需要设置环境变量KETTLE_HOME
3、在.kettle目录下可放置以下文件或目录:
文件名 | 说明 |
kettle.properties | 内部运行时的环境变量 |
.languageChoice | 设置运行的语言,方便进行界面语言的翻译 --内容:LocaleDefault=en_US LocaleFailover=en_U |
其它 | 也可以放置Plugins目录,增加自己的扩展插件 |
4、插件的类型:
类型 Plugin下的目录 加载XML配置文件名
Step steps kettle-steps.xml
Partitioner steps …
JobEntry jobentries …
Repository repositories …
Database databases …
Lifecycle repositories …
Rules rules …
5、插件的加载
a. 扫描目录: <kettle_home>/plugins 、<运行目录>/plugins、<kettle_home>/plugins/<第4点中类型对对应目录 >、、<运行目录>/plugins/<第4点中类型对对应目录>
说明:前两个扫描申明,后两个是扫描XML定义文件。
可以将所有定义的类路径以逗号分隔设置到KETTLE_PLUGIN_CLASSES变量中用于调试。
b.第一种方式:定义通用Xml格式结构
(1) steps/step (见kettle-steps.xml)
下 属性或元素:id, description, iconfile, tooltip, category(兼容i18n), classname, errorhelpfile
示例:
<step id="Injector">
<description>i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.Injector</description> <!--
:插件的名字显示
以i18n:开头按:分隔,第一部分是message所在的package路径,第二部分是它的message key.
-->
<classname>org.pentaho.di.trans.steps.injector.InjectorMeta</classname> <!--
:插件对应的类
-->
<category>i18n:org.pentaho.di.trans.step:BaseStep.Category.Inline</category> <!--
:插件分类的名字显示
以i18n:开头按:分隔,第一部分是message所在的package路径,第二部分是它的message key.
-->
<tooltip>i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.Injector</tooltip>
<iconfile>ui/images/INJ.png</iconfile>
</step>
(2) libraries/library (插件引用Jar,可多个)
下 属性: name (相对当前插件目录的一个路径)
(3) localized_category/category (插件的分类显示文字,可多个)
下 属性: locale(指定国家语言代码,如:en_US,zh_CN
值:对应的文字
(4) localized_description/description(插件描述文字,可多个)
下 属性: locale(指定国家语言代码,如:en_US,zh_CN
值:对应的文字
(5) localized_tooltip/tooltip(插件提示文字,可多个)
下 属性: locale(指定国家语言代码,如:en_US,zh_CN
值:对应的文字
c. 第二种方式: 扫描
<kettle_home>/plugins 、<运行目录>/plugins、<kettle_home>/plugins/<第4点中类型对对应目录>这三个目录下所有的Jar包的里面有类型对应的申明的类(这种方式就需要通过定义文件来完成)
类型 接口 对应的申明类
Step org.pentaho.di.trans.step.StepMetaInterface org.pentaho.di.core.annotations.Step
Partitioner org.pentaho.di.core.annotations.PartitionerPlugin
JobEntry org.pentaho.di.job.entry.JobEntryInterface org.pentaho.di.core.annotations.JobEntry
Repository org.pentaho.di.core.annotations.RepositoryPlugin
Database org.pentaho.di.core.plugins.DatabaseMetaPlugin
Lifecycle org.pentaho.di.core.annotations.LifecyclePlugin
ImportRule org.pentaho.di.core.annotations.ImportRulePlugin
c. 第三种,加载内置的.xml文件,如:kettle-engine.jar内根目录下.xml文件。
如:kettle-variables.xml,kettle-steps.xml,kettle-job-entries.xml
也可以通过环境变量来影响:steps(KETTLE_CORE_STEPS_FILE),JobEntry(KETTLE_CORE_JOBENTRIES_FILE)
6、性能优化提示:可以适当去除一些不需要用到的插件,这样就会加快Spoon开发工具的启动速度。
如:AgileBI等,
ETL Pentaho代码学习笔记