我运行一个大型数据仓库工厂,我们有很多夜间工作,但是很多人在启动之前依赖于提取或数据加载过程。目前,我们使用“昂贵的调度系统”来制作这些系统。
有没有办法可以使用开源或免费的unix / linux工具(如cron)设置作业依赖?
转向开放式解决方案将会很棒并且为我们节省很多!
关心马特
答案 0 :(得分:2)
Cfengine可以做这样的事情。您可以将其设置为cron替换,在预定时间运行任意命令,并且可以设置“类”,以便仅在启用某些类时才执行某些操作。类可以是“这是一个Linux系统”到“它当前在5到10分钟之后”到“系统加载高于值x”到“我刚刚指定的这个任意shell命令返回true”,所以你可以设置你的类来表明你的工作依赖性。
我怀疑这会像调度系统一样强大(依赖关系必须通过配置类手动设置,并发调度需要额外的脚本或配置工作),但它是免费和开源的。
Cfengine的第2版并不是特别令人愉快(用Seth Vidal的话来说,“它的[sic]语法杀死了小猫”)。我没有使用Cfengine 3. Puppet具有与Cfengine类似的设计目标,可能更容易使用。
答案 1 :(得分:1)
答案 2 :(得分:1)
Cron本身不处理此问题。加载数据的进程可以在完成后写出状态文件吗?这将允许后续作业在执行实际工作之前检查状态文件。显然,这不是一个理想的解决方案(我怀疑有太多的失败点),但也许这对你想要完成的事情来说已经足够了。
答案 3 :(得分:1)
Schedulix是适用于Linux的开源工作负载自动化解决方案: http://www.schedulix.org