【发布时间】:2019-09-28 19:01:24
【问题描述】:
我使用Kettle 编写了 ETL 流程。它执行从操作数据源(Windows 上的 MS SQL)到数据仓库(Ubuntu 上的 MySQL)的数据传输。
我想安排 Kettle 作业(其他)以每天执行以填充维度表和事实表,以使我的数据成为实际并准备好进行分析和报告。
如何安排执行 Kettle 作业?
【问题讨论】:
我使用Kettle 编写了 ETL 流程。它执行从操作数据源(Windows 上的 MS SQL)到数据仓库(Ubuntu 上的 MySQL)的数据传输。
我想安排 Kettle 作业(其他)以每天执行以填充维度表和事实表,以使我的数据成为实际并准备好进行分析和报告。
如何安排执行 Kettle 作业?
【问题讨论】:
在你的kettle安装目录中有几个批处理文件,其中spoon.bat、pan.bat和kitchen.bat。 Spoon 是您已经知道的 UI,pan 是从命令行运行转换(.ktr 文件)的命令行工具,kitchen 是运行kettle 作业的命令行工具(.kjb 文件) .
对于一个简单的计划,创建一个调用 kitchen.bat 或 pan.bat 的批处理文件(取决于您是要运行转换还是作业)。然后使用 Windows 任务计划程序以您想要的任何计划运行您的批处理文件。
例如,这将运行一个kettle作业,使用基本日志并将日志内容附加到日志文件中
kitchen.bat /file:"c:\etl\my_first_job.kjb" /level:Basic > c:\etl\logs\logging_for_my_first_job.log
这当然适用于 Windows。如果您在 linux 上运行kettle,您可以使用 cron 和kettle 安装目录(pan.sh 或kitchen.sh)中的相应 .sh 文件。
由于kettle将共享数据库连接存储在用户配置文件中,请确保运行计划任务的用户在其配置文件中具有这些连接,否则您的转换将失败。
【讨论】:
pentaho 中的调度是由 carte server 完成的。 http://wiki.pentaho.com/display/EAI/Carte+User+Documentation
使用您的启动步骤参数调度和 carte 服务器,您将能够在需要时调度此kettle 作业。
【讨论】: