首页 > 解决方案 > 如何检查 Kettle ETL 中是否存在 excel 表?

问题描述

我正在循环一个目录并加载所有工作表名称类似于“数据”的 Excel 文件。

如果没有名为“数据”的工作表,我希望转换中止或抛出错误。我尝试使用“switch-case”,如果工作表名称不等于“Data”,则将默认步骤设置为“Abort”,但这不起作用。工作流程将同时走向“中止”和“数据”方向。

那么我如何实现这一目标?就像在 Kettle 中做 if else 一样?在 SSIS 中,我可以设法使用变量来确定工作方向,但似乎我无法在 Kettle 中使用变量。

标签: etlkettle

解决方案


我想出了一个解决办法。
使用简单评估来检查变量值。
在作业中设置此变量值:

  • 从 Microsoft Excel 输入中获取工作表名称
  • 在作业结束时使用 [Set Variable] 输出这个变量,给它一个虚拟变量值
  • 在父转换时检查这个变量,如果等于特定值,则继续工作流程,否则中止

推荐阅读