忽略Kettle中的日期解析错误

时间:2017-06-01 17:03:23

标签: pentaho kettle

使用水壶运行转换时出现以下错误:

2017/06/01 17:57:46 - Table PAX_TKT_UPDATES.0 - ERROR (version 7.0.0.0-25, build 1 from 2016-11-05 15.35.36 by buildguy) : Because of an error, this step can't continue:
2017/06/01 17:57:46 - Table PAX_TKT_UPDATES.0 - ERROR (version 7.0.0.0-25, build 1 from 2016-11-05 15.35.36 by buildguy) : org.pentaho.di.core.exception.KettleValueException: 
2017/06/01 17:57:46 - Table PAX_TKT_UPDATES.0 - CREATION_DATE String : couldn't convert string [20170326 01:10] to a date using format [yyyyMMdd HH:mm] on offset location 14
2017/06/01 17:57:46 - Table PAX_TKT_UPDATES.0 - 20170326 01:10
2017/06/01 17:57:46 - Table PAX_TKT_UPDATES.0 - 
2017/06/01 17:57:46 - Table PAX_TKT_UPDATES.0 -     at org.pentaho.di.core.row.value.ValueMetaBase.convertStringToDate(ValueMetaBase.java:791)
2017/06/01 17:57:46 - Table PAX_TKT_UPDATES.0 -     at org.pentaho.di.core.row.value.ValueMetaBase.getDate(ValueMetaBase.java:2047)
2017/06/01 17:57:46 - Table PAX_TKT_UPDATES.0 -     at org.pentaho.di.core.row.value.ValueMetaBase.convertData(ValueMetaBase.java:3672)
2017/06/01 17:57:46 - Table PAX_TKT_UPDATES.0 -     at org.pentaho.di.core.row.value.ValueMetaBase.convertBinaryStringToNativeType(ValueMetaBase.java:1371)
2017/06/01 17:57:46 - Table PAX_TKT_UPDATES.0 -     at org.pentaho.di.core.row.value.ValueMetaBase.getString(ValueMetaBase.java:1555)
2017/06/01 17:57:46 - Table PAX_TKT_UPDATES.0 -     at org.pentaho.di.core.row.RowMeta.getString(RowMeta.java:319)
2017/06/01 17:57:46 - Table PAX_TKT_UPDATES.0 -     at org.pentaho.di.core.row.RowMeta.getString(RowMeta.java:827)
2017/06/01 17:57:46 - Table PAX_TKT_UPDATES.0 -     at org.pentaho.di.trans.steps.tableoutput.TableOutput.writeToTable(TableOutput.java:372)
2017/06/01 17:57:46 - Table PAX_TKT_UPDATES.0 -     at org.pentaho.di.trans.steps.tableoutput.TableOutput.processRow(TableOutput.java:125)
2017/06/01 17:57:46 - Table PAX_TKT_UPDATES.0 -     at org.pentaho.di.trans.step.RunThread.run(RunThread.java:62)
2017/06/01 17:57:46 - Table PAX_TKT_UPDATES.0 -     at java.lang.Thread.run(Thread.java:745)
2017/06/01 17:57:46 - Table PAX_TKT_UPDATES.0 - Caused by: java.text.ParseException: 20170326 01:10
2017/06/01 17:57:46 - Table PAX_TKT_UPDATES.0 -     at org.pentaho.di.core.row.value.ValueMetaBase.convertStringToDate(ValueMetaBase.java:782)
2017/06/01 17:57:46 - Table PAX_TKT_UPDATES.0 -     ... 10 more

问题:

  1. 日期20170326 01:10对格式yyyyMMdd看起来绝对有效。为什么解析错误
  2. 我已选择忽略表格输出步骤中的插入错误,并忽略插入错误(例如列约束错误)。但它似乎没有忽略数据转换错误并停止转换。如何忽略数据转换错误?

1 个答案:

答案 0 :(得分:3)

我猜你正在欧洲的一台电脑上运行这种转变。

3月26日是3月的最后一个星期日,1点时区改为夏令时。因此,在当地时间,没有这样的时间。 00:59:59之后是02:00:00。

您在数据库中的字段可能是一个日期时间,它是当地时间,因此时区在凌晨1点更改。您可以使用以下方法之一:

  • 将数据类型更改为UTC或固定时区;
  • 转换您的数据,使时区显式化,例如,使用格式'yyyyMMdd HH:mm +0100'