我的第一个直觉反应是Luigi不适合这类事情,但我想要#34;管道"功能和一切都让我回到Luigi / Airflow。我无法使用Airflow,因为它是Windows环境。
我的用例:
所以目前我的“source”文件夹中有20台左右的机器可以生成XML数据。随着时间的推移,某些进程会将这些文件连续放入每台计算机上的文件夹中(其日志数据)。在任何一天,这些机器可以在文件夹中有0个文件,或者它可以有100k +文件(每台机器)。最终有人会删除所有文件。
此过程的一部分是在所有这些计算机上观察所有这些目录,如果它们是新的,则将文件复制到存档文件夹。
我当前的进程每5分钟列出一台机器上的所有文件,抓取文件列表并在源上循环检查文件是否在目的地可用。如果它在目的地不存在则复制,如果存在则跳过。
Luigi似乎只想和#34; a" (单数)文件在其输出和/或目标中。问题是,我可以有1个新文件,或者显示几千个文件。
整个过程都会发生同样的问题。我的管道的下一步是将文件及其元数据信息(大小,文件名,目录位置)添加到db记录中。此时,另一个进程读取所有元数据记录行,并将它们放入XML日志数据的内容提取表中。
路易吉是否适合这样的事情? Luigi似乎想要处理一件事,做一些工作,然后将这些信息发送到另一个文件。
答案 0 :(得分:0)
我可以告诉你,我的工作流程每天使用10K日志文件,没有任何故障。这里的主要好处是我为每个文件创建了一个任务。