【问题标题】:Is Luigi suited for building a pipeline around lots of small files (100k+)Luigi 是否适合围绕大量小文件 (100k+) 构建管道
【发布时间】:2017-11-16 00:02:21
【问题描述】:

我的第一个直觉反应是 Luigi 不适合这种事情,但我想要“管道”功能,一切都让我回到 Luigi/Airflow。我不能使用 Airflow,因为它是 Windows 环境。

我的用例:

所以目前在我的“源”文件夹中,我们有大约 20 台机器可以生成 XML 数据。随着时间的推移,某些进程会不断地将这些文件放入每台机器上的文件夹中(其日志数据)。在任何一天,这些机器的文件夹中可能有 0 个文件,或者它可能有 100k+ 个文件(每台机器)。最终有人会去删除所有的文件。

此过程的一部分是监视所有这些机器上的所有这些目录,如果文件是新的,则将它们复制到存档文件夹中。

我当前的进程每 5 分钟列出每台机器上的所有文件,获取文件列表并循环检查源文件是否在目的地可用。如果目的地不存在则复制,如果存在则跳过。

Luigi 似乎只想在其输出和/或目标中使用“a”(单数)文件。问题是,我可能会显示 1 个新文件或数千个文件。

在整个过程中都会发生同样的问题。我的管道的下一步是将文件及其元数据信息(大小、文件名、目录位置)添加到数据库记录中。此时,另一个进程读取所有元数据记录行并将它们放入 XML 日志数据的内容提取表中。

路易吉甚至适合这样的事情吗? Luigi 似乎想处理一件事,做一些工作,然后将这些信息发送到另一个文件中。

【问题讨论】:

    标签: python luigi


    【解决方案1】:

    我可以告诉您,我的工作流程每天处理 10K 日志文件,没有任何故障。这里的主要优点是我为每个文件创建了一项任务。

    【讨论】:

      猜你喜欢
      • 2017-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-31
      相关资源
      最近更新 更多