Kettle系列: Kettle并行执行Trans后的合并问题
我们在作业开发中为了处理效率, 经常需要并行执行一些trans, 等它们执行完毕后, 需要执行另外一些trans, 从流程上也就是分支+汇合.
粗看起来很简单, Kettle中对接一下这些组件就搞定了, 效果如下:
这是一个错误的设计, 如果这么简单没有必要写在博客备忘了. 它的执行效果是: 只要有一个分支执行完毕, 就会执行一次汇总分支, 上面的设计有两个分支, 汇总分支就被执行了两次, 显然不是我们预期的.
在上图基础上使用信号文件来改造一下, 设计图如下:
这个设计总体上是没有问题的, 每个分支执行完毕后都生成一个信号文件, 等所有的信号文件都生成好了, 就执行原来的汇总作业. 但在实际试跑中, 发现了汇总作业有可能还会执行多次. 解决方法也很简单, 只有主干分支才能直连汇总作业, 其他分支禁掉hop就好了.
一点小提示:
推荐信号文件存放在临时目录中,同时前缀加上作业名称, 以免多个job有重名信号文件.
比如信号文件名为: %%java.io.tmpdir%%/job_demo_branch1
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律