ETL文件加载:今天创建的文件,还是尚未加载的文件?

时间:2016-08-26 13:26:45

标签: pentaho etl kettle pentaho-data-integration

我需要自动化一个进程,将新数据文件加载到数据库中。我的问题是以自动方式确定哪些文件是“新”的最佳方法。

从每晚同步的目录中检索文件,因此文件列表不断增长。我没有选择删除我已经检索过的文件。

新记录存储在原始数据表中,该表具有指示每个记录所源自的文件名的字段,因此我可以将当​​前目录中的所有文件名与原始数据表中已有的文件名进行比较,并仅处理那些文件名。不相同。

或者我可以使用文件名中的时间戳,并仅处理自上次运行导入过程以来创建的文件。

我倾向于使用第一种方法,因为它似乎不太容易出错,但我没有太多运气,发现这是否真的如此。通过将所有文件名与数据库中已有的文件名进行比较,以这种方式确定新文件有哪些缺陷?

1 个答案:

答案 0 :(得分:1)

文件名比较:

  • 如果你有数百万个文件,那么比较可能不是你的 寻找。
  • 您必须确保所述文件夹中的文件永远不会获取 删除。

按日期获取文件名:

  • 由于每天检索一次这些文件名可以保证 准确性。 (即使它们以毫秒差异创建)
  • 如果有很多文件,效率会很高。
  • Pentaho提供的修改日期不是创建日期。

要执行上述任一操作,您可以使用以下Pentaho步骤。

file names

配置获取文件名步骤:

  • 文件/目录:给文件夹路径包含文件。

  • 通配符(RegExp):.*\.*获取所有内容或.*\.pdf获取具体内容 格式。