我正在计划ETL作业,该作业从mysql获取数据,进行转换,然后将其转储回mysql。大多数工作不到一分钟,但是有些工作需要几分钟才能完成。
一些作业具有依赖关系,例如作业A可能会重新创建一个表作为作业B的输入,因此作业B依赖于A。还存在相对复杂的依赖关系,例如职位C取决于职位A,职位D取决于职位B,最后职位E取决于职位C和职位D。
这些工作的最佳时间表是什么?
我想避免在同一张桌子上同时读写。不确定我还应该避免...
目前,我将它们的执行持续时间乘以安全裕量乘以它们之间的距离。这很好,特别是当我要安排的工作少于10个时。现在,它开始变得越来越拥挤,同时运行多个作业,而且极少数情况是一个作业没有完成下一个依赖作业,而挂起了其余依赖作业。
我一直在考虑将它们分开,以使依赖的作业不会一个接一个地运行。有确定的方法吗?