在 Pentaho 水壶中,如何检查文件名是不是存在?
Posted
技术标签:
【中文标题】在 Pentaho 水壶中,如何检查文件名是不是存在?【英文标题】:In Pentaho kettle, how to check the filename is exists or not?在 Pentaho 水壶中,如何检查文件名是否存在? 【发布时间】:2012-12-07 15:20:45 【问题描述】:我是 pentaho 水壶的新手...
目前,我有一个包含许多 .txt 文件的文件夹。
比如说:20121012.txt, 20121014.txt.....
每次我运行kettle作业时,它都会grep所有这些文件以导入数据库。
我需要在导入db之前处理检查以防止数据重复。
问题是,如何让kettle注意到已经导入的文件名?
例如:
20121012.txt
在这种情况下,我不能只在“检查文件是否存在”步骤中简单地设置特定文件“20121012.txt”。这是因为txt文件很大。如果文件名指的是一天,那么 1 年包含 365-366 天。我不能以这种方式对所有天文件进行硬编码。
因此,可能的方法是在导入数据库之前检查该进程文件的文件名是否存在。
这是我的问题,我该怎么做?我需要使用哪些步骤或工作流程? 谁能提供可以做到这一点的详细步骤?
我期待收到您的来信,如果您需要更多信息,请告诉我。
感谢大家的帮助!
【问题讨论】:
【参考方案1】:您可以通过将已处理的文件列表存储在数据库中的表格等位置来实现此目的。在另一个步骤中加载表,然后通过合并连接来自这些步骤的流,并仅通过文件加载步骤中不在另一个流中的那些文件。
确保稍后使用任何新处理的文件更新您已处理的表。
【讨论】:
【参考方案2】:您可以使用“获取文件名”步骤。在此步骤中:设置存储文件的文件夹,然后设置通配符(例如“.*”,如果您想要文件夹中的所有文件)。
如果您的数据库存储了已导入的文件名,您可以使用“数据库查找”检查您的文件名是否已在数据库中,然后过滤流,以仅传递未在数据库。
【讨论】:
以上是关于在 Pentaho 水壶中,如何检查文件名是不是存在?的主要内容,如果未能解决你的问题,请参考以下文章