本文介绍了OTSStreamReader运行时可能出现的问题,请根据实际问题排查处理错误。
OTSStreamReader运行时出现“Must set date or time range millis or time range string, please check your config”错误
- 问题现象
OTSStreamReader运行时出现“Must set date or time range millis or time range string, please check your config”错误,如下图所示。
- 可能原因
OTSStreamReader配置脚本中缺少增量数据时间范围的配置。
- 解决方案
请通过以下方式配置增量数据范围。
- 通过parameter.date参数配置导出数据的日期。
- 通过parameter.startTimestampMillis和parameter.endTimestampMillis参数分别配置开始导出的时间点和结束导出的时间点。
关于增量数据范围配置的更多信息,请参见增量同步(脚本模式)。
OTSStreamReader运行时出现“The stream of data table is not enabled”错误
- 问题现象
OTSStreamReader运行时出现“The stream of data table is not enabled”错误,如下图所示。
- 可能原因
OTSStreamReader中配置的表格存储数据表(parameter.table)未开启Stream。
- 解决方案
请通过以下方式为OTSStreamReader中配置的表格存储数据表开启Stream。
- 登录表格存储控制台后,在目标数据表的表管理页面中实时消费通道页签,开启Stream。
- 通过不同SDK调用UpdateTable接口修改数据表属性。更多信息,请参见UpdateTable。
OTSStreamReader运行时出现“As expiration time is xx, so the start timestamp must greater than xx”错误
- 问题现象
OTSStreamReader运行时出现“As expiration time is xx, so the start timestamp must greater than xx”错误,如下图所示。
- 可能原因
OTSStreamReader读取的增量日志存在过期时长,startTime参数配置错误。
- 解决方案
同步脚本中配置的startTime必须大于
任务启动时间-日志过期时长+10分钟
。请登录表格存储控制台后,在目标数据表的表管理页面中基本详情页签,查看日志过期时长。
OTSStreamReader运行时出现“To avoid timing error between different machines, the end timestamp must smaller than xx”错误
- 问题现象
OTSStreamReader运行时出现“To avoid timing error between different machines, the end timestamp must smaller than xx”错误,如下图所示。
- 可能原因
endTime参数配置错误。
- 解决方案
同步脚本中配置的endTime必须小于
任务启动时间 - 5分钟
。
OTSStreamReader运行时出现“The item of column must be map object”错误
- 问题现象
OTSStreamReader运行时出现“The item of column must be map object”错误,示例如下:
[ code:OTSStreamReaderError, messageOTS Stream Reader Error] - com.alibaba.datax.plugin.reader.otsstreamreader.internal.OTSStreamReaderException: Parse column fail, please check your config. - com.alibaba.datax.plugin.reader.otsstreamreader.internal.OTSStreamReaderException: Parse column fail, please check your config. at com.alibaba.datax.plugin.reader.otsstreamreader.internal.config.OTSStreamReaderConfig.parseConfigForSingleVersionAndUpdateOnlyMode(OTSStreamReaderConfig.java:178) at com.alibaba.datax.plugin.reader.otsstreamreader.internal.config.OTSStreamReaderConfig.load(OTSStreamReaderConfig.java:267) at com.alibaba.datax.plugin.reader.otsstreamreader.internal.OTSStreamReader$Job.init(OTSStreamReader.java:30) at com.alibaba.datax.core.job.JobContainer.initJobReader(JobContainer.java:1083) at com.alibaba.datax.core.job.JobContainer.init(JobContainer.java:497) at com.alibaba.datax.core.job.JobContainer.start(JobContainer.java:220) at com.alibaba.datax.core.Engine.start(Engine.java:100) at com.alibaba.datax.core.Engine.entry(Engine.java:318) at com.alibaba.datax.core.Engine.main(Engine.java:351) Caused by: java.lang.IllegalArgumentException: The item of column must be map object, please check your input.
- 可能原因
OTSStreamReader中parameter.column配置的格式错误。
- 解决方案
请确保parameter.column的配置正确。配置示例如下:
- 错误示例
"column":[ "col1", "col2" ]
- 正确示例
"column":[ { "name" : "col1" }, { "name" : "col2" } ]
- 错误示例