Makefile &引用;制造;类似于任务的调度序列

Makefile &引用;制造;类似于任务的调度序列,makefile,batch-processing,Makefile,Batch Processing,我工作的公司有很多“复杂”的基于文件的批处理过程,文件序列如下: 存档 获取文件B 将文件A中的字段连接到文件B以生成文件C 在文件C上运行一些启发式操作以生成文件D 将文件D上载到服务器X 基于文件D和a生成报告并将其发送给用户。name@example.com 每个步骤可能需要很多小时才能运行(文件可能包含数十亿行数据)。while东西与GNU Makefiles粘在一起,包括以下部分: 归档的 运行分析$^>$@ Makefiles对于建模步骤之间的依赖关系非常有用,并且允许重复某个步

我工作的公司有很多“复杂”的基于文件的批处理过程,文件序列如下:

  • 存档
  • 获取文件B
  • 将文件A中的字段连接到文件B以生成文件C
  • 在文件C上运行一些启发式操作以生成文件D
  • 将文件D上载到服务器X
  • 基于文件D和a生成报告并将其发送给用户。name@example.com
每个步骤可能需要很多小时才能运行(文件可能包含数十亿行数据)。while东西与GNU Makefiles粘在一起,包括以下部分:

归档的 运行分析$^>$@

Makefiles对于建模步骤之间的依赖关系非常有用,并且允许重复某个步骤之后的所有内容(如果某个步骤出现问题,或者启发式方法发生了更改等等)

使用makefile对我来说总是不好的,因为它们是用于构建软件,而不是运行批处理过程。此外,Makefiles不提供任何形式的测试框架

我的问题是,如何协调大序列和这样的大操作?

Makefile可以用于 但是,他们并不局限于这项活动

.
其中

您是否使用了基于Makefile的构建、测试和安装序列?

这里有一些偏僻的用法

stackoverflow上的其他引用

  • 以及
Makefile可用于。
但是,他们并不局限于这项活动

.
其中

您是否使用了基于Makefile的构建、测试和安装序列?

这里有一些偏僻的用法

stackoverflow上的其他引用

  • 以及

    • 文件中的数据是否超出了文件结构?如果文件中的数据确实结构良好,也许是时候开始考虑新的数据源了

      不过,我感觉用数据库中结构良好的数据替换文件A和B不是一种选择。这个怎么样:

    • 将结构化数据从文件A加载到一系列关系数据库表中,并将文件B回迁到一系列关系数据库表中
    • 执行表中的联接以在另一个表(甚至内存)中创建数据
    • 运行所需的试探法
    • 根据结果数据创建输出文件D
    • 根据结果和初始数据生成报告
    • 步骤1+4仍然很慢,但我敢打赌,通过使用更高效的数据结构进行实际处理,您可以加快整个过程


      使用数据库的乐趣在于,在编写连接/处理例程时,您可以使用更多的编程选项(选择您喜欢的语言)。您不需要完全依赖生成文件。

      文件中的数据是否超出了文件结构?如果文件中的数据确实结构良好,也许是时候开始考虑新的数据源了

      不过,我感觉用数据库中结构良好的数据替换文件A和B不是一种选择。这个怎么样:

    • 将结构化数据从文件A加载到一系列关系数据库表中,并将文件B回迁到一系列关系数据库表中
    • 执行表中的联接以在另一个表(甚至内存)中创建数据
    • 运行所需的试探法
    • 根据结果数据创建输出文件D
    • 根据结果和初始数据生成报告
    • 步骤1+4仍然很慢,但我敢打赌,通过使用更高效的数据结构进行实际处理,您可以加快整个过程


      使用数据库的乐趣在于,在编写连接/处理例程时,您可以使用更多的编程选项(选择您喜欢的语言)。您不需要完全依赖make文件。

      makefile实际上非常适合这类事情,并且使用非常广泛。它们可以用于涉及依赖项跟踪的任何事情(我听说过一个专家系统作为makefile实现的轶事)。Gnu make可以并行执行多个作业

      对于makefiles,您不应该太激动,因为替代方法是企业调度工具,如Control-M。这些工具包括:

      • 要复杂得多

      • 非常昂贵

      • 相当不透明,比makefile更难测试

      • 政治上很难在本地机器上进行设置,以便您可以测试它们

      坚持使用makefile,除非你有很好的理由不这么做。如果您有具有数百或数千个异构系统的大型安装,那么企业系统管理工具可能是一个胜利。除非您是在那个规模上操作,否则有很好的理由不使用这种工具

      反对高端“企业”系统的主要论点是,推出这种类型的基础设施往往会使教主的内部密室能够在如何运行这些“企业”系统的神圣知识上扎营。这一过程在管理文献中被称为“帝国建设”。当受到挑战时,帝国缔造者可以轻易地用科学蒙蔽管理,因为这意味着他们拥有特殊的知识,没有其他人有资格用他们的“企业”系统做任何事情,因为这些系统太复杂了,普通人无法理解

      除非您熟悉该工具,否则“企业架构”官僚作风可能很难与之争辩。Makefiles是大家熟悉的普通工具。您可以平等地讨论makefile


      坚持使用makefile。它让那些混蛋保持诚实

      Makefiles实际上非常适合这种类型的东西,并且被广泛使用。它们可以用于任何涉及DEP的事情