Pentaho数据集成:错误处理

时间:2016-04-19 23:32:25

标签: pentaho kettle pentaho-spoon

我正在使用Pentaho数据集成(CE)构建一个ETL过程,我正在尝试操作我的转换和作业,以便能够对它们进行监控。具体来说,我希望能够捕获任何错误,然后将它们发送到Honeybadger或New Relic等错误报告服务。我了解如何执行行级错误报告,但我没有找到工作或交易失败报告的方法。

这是一个示例作业。

  • down 路径是转换成功但有行错误的地方。我们可以只过滤结果并记录它们。
  • 右侧路径是转换失败的情况(例如,数据库凭据错误)。这是我遇到麻烦的地方:我无法弄清楚如何获取要发送的错误信息。

Example job
如何捕获要记录的转换失败?

2 个答案:

答案 0 :(得分:3)

您无法在作业本身内捕获作业级错误详细信息。 但是,还有其他监控选项。

第一个选项是使用数据库日志记录进行转换或作业(请参阅作业/转换参数对话框中的" Log"选项卡) - 这样您始终可以获得有关执行状态的最新信息例如,您可以编写一份定期扫描日志记录数据库的作业,并在任何需要的地方发送错误报告。

与此同时,这个选项对于开发和支持而言似乎相当重要,并且对于进一步修改而言不够灵活。因此,在我们公司,我们最终对工作执行级别进行了监控 - 即当您使用kitchen.bat运行工作时,由于任何原因您出现了错误并且#34;厨房的执行状态,因此您可以轻松地检查它并使用您喜欢的工具 - .bat命令,PowerShell或(在我们的案例中)Jenkins CI执行必要的操作。

答案 1 :(得分:0)

您可以在Modified Java Script步骤中使用writeToLog(" e"," Message")函数。

文档:

// Writes a string to the defined Kettle Log.
//
// Usage:
// writeToLog(var);
// 1: String - The Message which should be written to
// the Kettle Debug Log
//
// writeToLog(var,var);
// 1: String - The Type of the Log
// d - Debug
// l - Detailed
// e - Error
// m - Minimal
// r - RowLevel
//
// 2: String - The Message which should be written to
// the Kettle Log