我们希望在一系列文件上运行Kiba作为批处理。提供文件掩码,从FTP下载文件,然后在每个上运行ETL作业,以每个文件为基础发送成功或失败通知的最佳结构是什么?
有没有办法在Kiba内执行此操作,或者最好只是在外部处理所有非ETL内容,然后在每个文件上调用kiba?
答案 0 :(得分:1)
我最初会从最简单的事情开始,就像你说的那样,使用外部文件然后在每个文件上调用Kiba。例如。 :
Dir[pattern].each
)。确保使用帮助程序,例如:
def system!(command)
fail "Command #{command} failed" unless system(command)
end
确保在进行系统调用时检测执行失败。
对于您的ETL文件本身,您将使用一个at_exit
块来捕获失败并相应地通知(请参阅此处的示例Bugsnag和post_process
块以捕获成功并通知那种情况。
这肯定会起作用并且很简单,表示还有其他可能性,例如单个ETL文件将在pre_process
块中下载文件,然后有一个源将为每个下载文件生成一个文件名,也许是一个可以在命令行上调用kiba
的转换,或者甚至更高级的解决方案。
我会一如既往地坚持最简单的解决方案!
如果这正确回答了您的问题,请告诉我们!
答案 1 :(得分:-1)
为什么不能使用Control -M作业调度。它非常有用和高效。