全部產品
Search
文件中心

Tablestore:OTSStreamReader常見問題

更新時間:Nov 21, 2024

本文介紹了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”錯誤,如下圖所示。

fig_setdate

可能原因

OTSStreamReader配置指令碼中缺少增量資料時間範圍的配置。

解決方案

請通過以下方式配置增量資料範圍。

  • 通過parameter.date參數設定匯出資料的日期。

  • 通過parameter.startTimestampMillisparameter.endTimestampMillis參數分別配置開始匯出的時間點和結束匯出的時間點。

關於增量資料範圍配置的更多資訊,請參見同步增量資料到OSS

OTSStreamReader運行時出現“The stream of data table is not enabled”錯誤

問題現象

OTSStreamReader運行時出現“The stream of data table is not enabled”錯誤,如下圖所示。fig_datatablestream

可能原因

OTSStreamReader中配置的Table Store資料表(parameter.table)未開啟Stream。

解決方案

請通過以下方式為OTSStreamReader中配置的Table Store資料表開啟Stream。

通過Table Store控制台進行操作

  1. 進入表管理頁面。

    1. 登入Table Store控制台

    2. 在頁面頂部選擇資源群組和地區。

    3. 概覽頁面的執行個體列表中,單擊執行個體名稱。

    4. 執行個體詳情頁簽的資料表列表地區,單擊資料表名稱。

  2. 表管理頁面的即時消費通道頁簽中,單擊Stream資訊右側的開啟

    fig_streamopen

  3. 開啟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”錯誤,如下圖所示。

fig_greaterthan

可能原因

OTSStreamReader讀取的增量日誌存在到期時間長度,startTime參數配置錯誤。

解決方案

同步指令碼中配置的startTime必須大於任務啟動時間-日誌到期時間長度+10分鐘

您可以通過如下步驟查看日誌到期時間長度。

  1. 進入表管理頁面。

    1. 登入Table Store控制台

    2. 在頁面頂部選擇資源群組和地區。

    3. 概覽頁面的執行個體列表中,單擊執行個體名稱。

    4. 執行個體詳情頁簽的資料表列表地區,單擊資料表名稱。

  2. 表管理頁面的基本詳情頁簽中,查看日誌到期時間長度。

    image

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”錯誤,如下圖所示。fig_smallerthan

可能原因

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"
    
      }
    ]