Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Pentaho数据集成:错误处理_Pentaho_Kettle_Pentaho Spoon - Fatal编程技术网

Pentaho数据集成:错误处理

Pentaho数据集成:错误处理,pentaho,kettle,pentaho-spoon,Pentaho,Kettle,Pentaho Spoon,我正在用Pentaho数据集成(CE)构建一个ETL过程,我正在尝试操作我的转换和作业,以便能够对它们进行监控。具体来说,我希望能够捕获任何错误,然后将它们发送到错误报告服务,如Honeybecger或New Relic。我了解如何执行行级错误报告,但我看不到执行作业或事务失败报告的方法 下面是一个工作示例 向下路径是转换成功但有行错误的地方。在那里,我们可以过滤结果并记录它们 右边的路径表示转换同时失败(例如,DB凭据错误)。这就是我遇到的问题:我不知道如何获取要发送的错误信息 如何捕获

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

下面是一个工作示例

  • 向下路径是转换成功但有行错误的地方。在那里,我们可以过滤结果并记录它们
  • 右边的路径表示转换同时失败(例如,DB凭据错误)。这就是我遇到的问题:我不知道如何获取要发送的错误信息


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

无法捕获作业本身内部的作业级别错误详细信息。 不过,还有其他监测选择

第一种选择是对转换或作业使用数据库日志记录(请参见“作业/传输参数”对话框中的“日志”选项卡)-通过这种方式,您始终可以获得有关执行状态的最新信息,因此您可以编写一个作业,定期扫描日志记录数据库,并在需要时发送错误报告


同时,这个选项对于开发和支持来说似乎是一个相当沉重的负担,对于进一步的修改来说也不太灵活。因此,在我们公司,我们最终实现了对作业执行级别的监控——即,当您使用kitchen.bat运行作业时,无论出于何种原因,它都会失败,您都会获得厨房执行的“错误”状态,因此您可以方便地检查它,并随时使用工具执行必要的操作—.bat命令、PowerShell或(在我们的例子中)Jenkins CI

您可以在修改的Java脚本步骤中使用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

谢谢你的指点。这也是我得出的结论。