etl - 如何检查 Kettle ETL 中是否存在 excel 表?
问题描述
我正在循环一个目录并加载所有工作表名称类似于“数据”的 Excel 文件。
如果没有名为“数据”的工作表,我希望转换中止或抛出错误。我尝试使用“switch-case”,如果工作表名称不等于“Data”,则将默认步骤设置为“Abort”,但这不起作用。工作流程将同时走向“中止”和“数据”方向。
那么我如何实现这一目标?就像在 Kettle 中做 if else 一样?在 SSIS 中,我可以设法使用变量来确定工作方向,但似乎我无法在 Kettle 中使用变量。
解决方案
我想出了一个解决办法。
使用简单评估来检查变量值。
在作业中设置此变量值:
- 从 Microsoft Excel 输入中获取工作表名称
- 在作业结束时使用 [Set Variable] 输出这个变量,给它一个虚拟变量值
- 在父转换时检查这个变量,如果等于特定值,则继续工作流程,否则中止
推荐阅读
- c++ - C++ 语法差异:2D 和 1D 数组(指针算术)
- python - Django 数据库没有从站点表单中检索下拉字段的值?
- azure - 将 asp.net 核心项目发布到 Azure 免费帐户后运行时出错
- asp.net - 单击提交按钮后获取完整数据
- java - java如何调用另一个类中的函数修改的变量?
- sql - 保留组中的第一条记录并在 SQL 中使用 Null/0 填充其余部分?
- pandas - AI Platform Notebooks:MemoryError:无法为阵列分配 1.16 GiB - GCP 中有 100 个磁盘空间
- mongodb - Mongodb中的“未知顶级运算符:$ OR”错误
- python - 比较 2 个数据框并根据比较添加一个新列
- python - cuML vs sklearn:随机森林分类器的不同精度