Kettle8.2修复作业或者转换重命名功能

kettle版本:8.2.0.0-311

问题描述:创建一个转换或者作业,命名为A并保存到资源库中,打开A,在探索资源库面板将A重命名为B,再打开B,这时Spoon面板会出现A与B两个。实际为一个转换或者作业。

原因分析:

1、分析重命名代码的具体实现步骤,代码入口:browseController.renameContent()

分析以上代码,重命名操作只是修改了数据库和当前面板的缓存数据,并未对Spoon面板进程操作。

2、再来看看打开操作的代码,此处就是为什么会打开两个转换或者作业的原因,代码入口:browseController.openContent()

注意到红圈内代码,打开操作有一个回调函数,该回调接口名为RepositoryExplorerCallback,实际实现在Spoon.exploreRepository()方法中,我们可以看到,该接口只有一个open方法,并没有rename或者其他操作(例如:我们实际应用项目中添加了发布操作),我们再看一下open的具体实现代码(以trans为例,job类似)。

从Spoon.exploreRepository()向下走,进入loadObjectFromRepository方法,此处会获取一个TransMeta,注意此处获取TransMeta的途径是经过objectId获取的。

接着进入SpoonTransformationDelegate类的addTransGraph()方法,此处有两个缓存,spoon.delegates.tabs中存储的为TabMapEntry对象(一个对象对应一个展示面板),transformationMap存储已经打开的转换TransMeta对象,通过addTransformation方法进行判断(判断方法实际为转换名称),如果该转换不存在,在两个缓存对象中添加响应的数据,spoon.enableMenus()刷新之后,spoon面板就能展开此模型。

3、通过上面的重名操作步骤和打开操作步骤,可以分析出原因。重命名操作之后,并未对spoon.delegates.tabs和transformationMap缓存对象进行操作,当再次打开这转换的时候,又重新查询了该转换,名称为新名称,在进行addTransformation判断时候,以新名称获取缓存对象为空,所以又添加进一个转换,导致Spoon面板同时打开两个转换(实则为一个转换)。

处理方法:在RepositoryExplorerCallback中添加重命名接口,在重命名成功之后,刷新Spoon的两个缓存对象即可。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: kettle8.2开发手册是关于kettle8.2版本的开发指南。Kettle,也被称为Pentaho Data Integration,是一款开源的ETL工具,用于数据的抽取、转换和加载。而Kettle8.2是其最新版本,这个开发手册提供了详细的指导,帮助开发人员在Kettle8.2上进行数据集成和转换开发。 这本开发手册涵盖了Kettle8.2的各个方面,包括安装和配置Kettle8.2的过程,以及在不同操作系统上运行Kettle8.2所需的要求。它还介绍了Kettle8.2的基本概念和架构,让开发人员对Kettle8.2的工作原理有更深入的理解。 开发手册还提供了大量的示例代码和实用技巧,帮助开发人员快速上手,并掌握Kettle8.2的开发技能。手册中详细讲解了如何创建和管理转换任务、定义数据源和目标、进行数据转换和清洗等常见的开发操作。开发人员可以按照手册中的指导一步一步进行开发,轻松地实现数据的ETL过程。 此外,开发手册还介绍了Kettle8.2的高级功能和扩展插件的使用方法,如定时任务调度、并行处理、错误处理等。这些高级功能可以帮助开发人员更好地优化和管理数据转换任务,提高数据处理的效率和准确性。 总而言之,Kettle8.2开发手册是一本很有价值的指南,为开发人员提供了全面的Kettle8.2开发知识和技能。通过学习和掌握手册中的内容,开发人员能够更好地利用Kettle8.2进行数据集成和转换开发。 ### 回答2: kettle8.2开发手册是一本关于Kettle 8.2版本的开发指南,它提供了详细的信息和指导,帮助开发人员快速上手和深入了解Kettle的开发。 在Kettle 8.2开发手册中,首先介绍了Kettle的基本概念和架构。Kettle是一款强大的开源ETL(Extract, Transform, Load)工具,用于数据集成和转换。手册详细介绍了Kettle的组件、作业转换等基本概念,让开发人员能够全面理解Kettle的工作原理。 手册还提供了用于Kettle开发的工具和技术的详细说明。其中包括Kettle的图形界面开发工具Spoon,以及Kettle的命令行开发工具Pan和Kitchen。手册详细介绍了这些工具的使用方法和功能,帮助开发人员快速上手。 同时,手册还介绍了Kettle转换作业的开发方法和技巧。手册提供了实际的案例和示例,让开发人员能够通过实践掌握Kettle的各种技术和功能。手册还介绍了Kettle的插件机制和扩展开发,让开发人员能够根据自身需求进行个性化的开发。 此外,手册还包括了Kettle API的详细文档和使用方法。通过对API的介绍,开发人员可以深入了解Kettle的内部机制和实现,实现更高级的自定义功能。 总之,Kettle 8.2开发手册是一本全面的开发指南,对于想要学习和使用Kettle的开发人员来说是一本宝贵的参考资料。无论是初学者还是有一定经验的开发人员,都可以通过这本手册快速提升自己的Kettle开发能力。 ### 回答3: Kettle 8.2是一款开发工具,用于数据集成、数据转换和数据处理等任务。它提供了丰富的功能和强大的扩展性,可以轻松地处理各种数据源和数据格式。 Kettle 8.2的开发手册是指导开发人员如何使用这个工具进行数据集成开发的指南。手册详细介绍了Kettle 8.2的安装和配置,以及各种功能的使用方法和操作步骤。 手册中首先介绍了Kettle 8.2的基础知识,包括工具的主要组件、架构和工作流程等。然后,手册介绍了如何创建和配置数据源连接,包括数据库连接和文件连接等。 接下来,手册详细介绍了Kettle 8.2中各种数据转换操作的使用方法,包括数据抽取、转换、加载和清洗等。手册中提供了丰富的示例和实践案例,帮助开发人员理解和掌握不同的数据转换技术和策略。 此外,手册还介绍了Kettle 8.2的高级功能和扩展性,包括使用Java编写自定义插件和脚本,以及与其他工具和平台的集成等。这些功能可以帮助开发人员根据实际需求扩展和定制Kettle 8.2功能。 最后,手册还提供了一些开发技巧和最佳实践,帮助开发人员更加高效地使用Kettle 8.2进行数据集成开发。 总之,Kettle 8.2开发手册是一本详细而全面的指南,可以帮助开发人员快速上手并掌握Kettle 8.2的开发技能,从而更好地完成各种数据集成任务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值