本文介绍了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
参数分别配置开始导出的时间点和结束导出的时间点。
关于增量数据范围配置的更多信息,请参见同步增量数据到OSS。
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,messageOTSStreamReaderError]-com.alibaba.datax.plugin.reader.otsstreamreader.internal.OTSStreamReaderException:Parsecolumnfail,pleasecheckyourconfig.-com.alibaba.datax.plugin.reader.otsstreamreader.internal.OTSStreamReaderException:Parsecolumnfail,pleasecheckyourconfig. atcom.alibaba.datax.plugin.reader.otsstreamreader.internal.config.OTSStreamReaderConfig.parseConfigForSingleVersionAndUpdateOnlyMode(OTSStreamReaderConfig.java:178) atcom.alibaba.datax.plugin.reader.otsstreamreader.internal.config.OTSStreamReaderConfig.load(OTSStreamReaderConfig.java:267) atcom.alibaba.datax.plugin.reader.otsstreamreader.internal.OTSStreamReader$Job.init(OTSStreamReader.java:30) atcom.alibaba.datax.core.job.JobContainer.initJobReader(JobContainer.java:1083) atcom.alibaba.datax.core.job.JobContainer.init(JobContainer.java:497) atcom.alibaba.datax.core.job.JobContainer.start(JobContainer.java:220) atcom.alibaba.datax.core.Engine.start(Engine.java:100) atcom.alibaba.datax.core.Engine.entry(Engine.java:318) atcom.alibaba.datax.core.Engine.main(Engine.java:351) Causedby:java.lang.IllegalArgumentException:Theitemofcolumnmustbemapobject,pleasecheckyourinput.
可能原因
OTSStreamReader中
parameter.column
配置的格式错误。解决方案
请确保parameter.column的配置正确。配置示例如下:
错误示例
"column":[ "col1", "col2" ]
正确示例
"column":[ { "name" : "col1" }, { "name" : "col2" } ]