首页 > 代码库 > 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代码学习笔记