kettle中获取执行步骤信息
如下图所示,获取到的信息打印后和kettle日志打印出来的内容是一致的,
上述打印其实很简单,如下代码所示,其实就是从trans中获取执行步骤,从执行步骤中获取信息。
//等待完成
trans.waitUntilFinished();
if (trans.getErrors() > 0) {
System.out.println("交换出错.");
return;
}
List<StepMetaDataCombi> steps = trans.getSteps();
for (StepMetaDataCombi step : steps) {
long i = 0; //输入数据量
long o = 0; //输出数据量
long r = 0; //读取的数据数量
long w = 0; //写入的数据量
long u = 0; //更新的数据量
long e = 0; //错误的数据量
long inputSize = 0; //rowset输入量
long outputSize = 0;//rowset输出量
StepInterface si = step.step;
i += si.getLinesInput();
o += si.getLinesOutput();
r += si.getLinesRead();
w += si.getLinesWritten();
u += si.getLinesUpdated();
e += si.getErrors();
inputSize += si.rowsetInputSize();
outputSize += si.rowsetOutputSize();
String outputInfo = String.format(step.stepname+"(I=%d,O=%d,R=%d,W=%d,U=%d,E=%d,is=%d,os=%d)",i,o,r,w,u,e,inputSize,outputSize);
System.out.println(outputInfo);
}
上面是简单的,如果这个执行步骤是自己写的,继承了kettle的执行步骤,然后里面有一些交换信息,此时,就可以通过Trans.getSteps这个方法获取到执行步骤,
甚至通过StepMetaDataCombi.stepname获取到设置的step的名字,根据不同的步骤做不同的处理方案。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?