本文介紹了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中配置的Table Store資料表(parameter.table
)未開啟Stream。
解決方案
請通過以下方式為OTSStreamReader中配置的Table Store資料表開啟Stream。
通過Table Store控制台進行操作
進入表管理頁面。
在頁面頂部選擇資源群組和地區。
在概覽頁面的執行個體列表中,單擊執行個體名稱。
在執行個體詳情頁簽的資料表列表地區,單擊資料表名稱。
在表管理頁面的即時消費通道頁簽中,單擊Stream資訊右側的開啟。
在開啟Stream功能對話方塊中,按需修改日誌到期時間長度,單擊開啟。
通過Table StoreSDK進行操作
通過不同SDK調用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" } ]