首页 > 其他分享 >kettle从入门到精通 第四十九课 ETL之kettle 自定义插件01

kettle从入门到精通 第四十九课 ETL之kettle 自定义插件01

时间:2024-02-28 21:12:43浏览次数:36  
标签:插件 kettle 内部 自定义 Kettle 第四十九 ID 加载

1、kettle插件是什么

kettle本身有足够多的转换或者job步骤,但是依然不能覆盖所有的业务场景,所以Kettle 自定义插件在有些独特的业务场景可以大显身手。

Kettle的插件架构使得我们可以不用修改Kettle本身代码,通过一些独立的代码就可以扩展Kettle的功能。这些独立的代码称为插件。Kettle可动态加载并运行这些插件。

2、kettle插件类型

  1. 转换步骤插件:在Kettle转换中使用的步骤,用来处理数据行。
  2. 作业项插件:在Kettle作业中使用的作业项,用来实现某个任务。
  3. 分区方法插件:利用输入字段的值指定自己的分区规则。
  4. 数据库类型插件:用来扩展不同的数据库类型。

 

3、kettle插件架构

Kettle内部的对象与外部插件没有任何区别,因为他们使用的API都一样的,只是运行时的加载方式不同。在这一点是我觉得是值得推崇的地方,里里外外,遵循统一的原则。从Kettle 4开始,Kettle内部有一个插件注册系统,负责加载各种内部和外部的插件。

 

插件有以下两个标识属性:
  1. 插件类型:由PluginTypeInterface接口定义,例如StepPluginType、 JobEntryPluginType、PartionerPluginType与RepositoryPluginType。
  2. 插件ID: 这是一个字符串,用来唯一标识一个插件。在大多数情况下,插件只使用一个单一的字符串,如TableInput是“表输入”步骤的ID, MYSQL是MySQL数据库类型的ID。使用相同的ID可以达到将旧的插件用新的插件替代的目的。

当Kettle环境初始化以后,插件注册系统首先会加载所有的内部对象,Kettle读取下面的配置文件来加载内部对象,这些配置文件位于Kettle的.jar文件中。

  1. Kettle-steps.xml: 内部转换步骤。

  2. Kettle-job-entries.xml:内部作业项。

  3. Kettle-partition-plugins.xml:内部分区类型。

  4. Kettle-database-types.xml:内部数据库类型。

  5. Kettle-repositories.xml:内部资源库类型。

插件注册系统加载了所有的内部对象后,开始搜索可用的外部插件。通过浏览Plugins目录下各个子目录下的.jar文件来完成。它搜索特定的Kettle annotations来判断一个类是否是插件。

 

因为在内部对象加载后才加载插件,所以插件会替代相同ID的已加载的内部对象。例如,创建了插件,插件的ID是TableInput,就可以替换Kettle标准的“表输入”步骤。这个功能可以用插件替换Kettle内置的步骤。可以通过子类继承的方式,直接扩展已有步骤的某些功能。
 

 

标签:插件,kettle,内部,自定义,Kettle,第四十九,ID,加载
From: https://www.cnblogs.com/zjBoy/p/18041779

相关文章

  • kettle从入门到精通 第四十八课 ETL之kettle webspoon
    1、kettle自带的客户端spoon工具是cs架构,多人协同办公起来不是特别方便。当然spoon也可以通过文件仓库设置为database模式进行协同办公。每个人在自己电脑上安装&打开spoon客户端,然后设置相同的文件仓库地址。如下图所示。 2、Web-basedSpoon(也称为webSpoon)webSpoon是一个基......
  • FastAPI系列:自定义认证
    fromtypingimportOptional,TuplefromfastapiimportFastAPI,RequestfrompydanticimportBaseModel#通过starlette.authentication导入AuthenticationBackendfromstarlette.authenticationimportAuthenticationBackend,AuthenticationError,AuthCredentials,S......
  • k8s hpa自定义指标
    参考链接 https://blog.csdn.net/fly910905/article/details/105375822这个大佬写的挺好的。不再搬运了,仅不不懂的地方记录一下。哈哈哈模拟增加memory的脚本解释一下,因为我也第一次见到这么玩,命令也是新鲜#!/bin/bashmkdir/tmp/memorymount-ttmpfs-osize=40Mt......
  • Oracle-JPA扩展工具-原生SQL查询并返回自定义DTO
    Java-JPA原生SQL查询返回自定义DTO:importcom.tjgeo.njsosms.framework.repository.IBaseRepository;importcom.tjgeo.njsosms.risk.support.entity.Source;importorg.springframework.data.jpa.repository.Query;importjava.util.List;/***${Description}**@......
  • eclipse自定义jak版本
    安装跟目录下eclipse.ini文件-startupplugins/org.eclipse.equinox.launcher_1.4.0.v20161219-1356.jar-vmC:\ProgramFiles\Java\jdk8u392-b08\bin--launcher.libraryplugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.500.v20170531-1133-productorg.eclips......
  • SpringBoot 1x 系列之(七)自定义starter
    自定义starterstarters原理、自定义starters如何自定义starter:​ 1、这个场景需要使用到的依赖是什么?​ 2、如何编写自动配置@Configuration//指定这个类是一个配置类@ConditionalOnXXX//在指定条件成立的情况下自动配置类生效@AutoConfigureAfter//指定自动配置类的......
  • SpringMVC系列之(六)自定义类型转换器
    自定义类型转换器SpringMVC在进行请求参数绑定时,自动进行了类型转换,前端传来的参数都是字符串,而控制器中的方法在接收时,可能会用到其他数据类型(如:Date、Integer、Double等),以日期类型为例,前端传的日期格式多样,SpringMVC自动转换类型的格式(2011/11/11)支持不了这么多类型,故有的日期......
  • PC端web通过自定义协议唤起应用
    写注册表调用WindowsRegistryEditorVersion5.00[HKEY_CURRENT_USER\Software\Classes\test]@="URL:TestProtocol"[HKEY_CURRENT_USER\Software\Classes\test\shell][HKEY_CURRENT_USER\Software\Classes\test\shell\open][HKEY_CURRENT_USER\......
  • ASP.NET Core 过滤器返回自定义响应数据
    自定义返回类publicclassApiResponse{publicintCode{get;set;}publicstringMessage{get;set;}publicobjectData{get;set;}publicApiResponse(intcode,stringmessage,objectdata=null){Code=code;......
  • 在Winform界面中使用自定义控件,丰富界面的效果处理
    我们在《SqlSugar开发框架》中,Winform界面开发部分往往也用到了自定义的用户控件,对应一些特殊的界面或者常用到的一些局部界面内容,我们可以使用自定义的用户控件来提高界面的统一性,同时也增强了使用的便利性。如我们Winform界面中用到的分页控件、附件显示内容、以及一些公司、部......