すべてのプロダクト
Search
ドキュメントセンター

Tablestore:OTSStreamReader の実行時に発生する可能性があるエラー

最終更新日:Jun 22, 2026

このトピックでは、OTSStreamReader の実行時に発生する可能性があるエラーと、そのトラブルシューティング方法について説明します。

エラーメッセージ:「Must set date or time range millis or time range string, please check your config」

問題の説明

OTSStreamReader タスクを実行すると、次のエラーメッセージが表示されます。

com.alibaba.datax.common.exception.DataXException: [  code:OTSStreamReaderError, messageOTS Stream Reader Error] – com.alibaba.datax.plugin.reader.otsstreamreader.internal.OTSStreamReaderException: Must set date or time range millis or time range string, please check your config. – com.alibaba.datax.plugin.reader.otsstreamreader.internal.OTSStreamReaderException: Must set date or time range millis or time range string, please check your config.
        at com.alibaba.datax.plugin.reader.otsstreamreader.internal.config.OTSStreamReaderConfig.load(OTSStreamReaderConfig.java:201)
        at com.alibaba.datax.plugin.reader.otsstreamreader.internal.OTSStreamReader$Job.init(OTSStreamReader.java:30)
        at com.alibaba.datax.core.job.JobContainer.initJobReader(JobContainer.java:1085)
        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)

考えられる原因

OTSStreamReader の構成スクリプトに、増分データのタイムスタンプ範囲を指定するパラメーターが設定されていません。

解決策

次のいずれかの方法で、増分データのタイムスタンプ範囲を指定します。

  • parameter.date パラメーターを、エクスポートする増分データの日付に設定します。

  • parameter.startTimestampMillis パラメーターを増分データのタイムスタンプ範囲の開始タイムスタンプに、parameter.endTimestampMillis パラメーターを増分データのタイムスタンプ範囲の終了タイムスタンプに設定します。

増分データのタイムスタンプ範囲の設定方法の詳細については、「増分データの OSS への同期」をご参照ください。

エラーメッセージ:「The stream of data table is not enabled」

問題の説明

OTSStreamReader タスクを実行すると、次のエラーメッセージが表示されます。

[ code:OTSStreamReaderError, messageOTS Stream Reader Error] – com.alibaba.datax.plugin.reader.otsstreamreader.internal.OTSStreamReaderException: The stream of data table is not enabled. – com.alibaba.datax.plugin.reader.otsstreamreader.internal.OTSStreamReaderException: The stream of data table is not enabled.
        at com.alibaba.datax.plugin.reader.otsstreamreader.internal.core.OTSStreamReaderChecker.checkStreamEnabledAndTimeRangeOK(OTSStreamReaderChecker.java:49)
        at com.alibaba.datax.plugin.reader.otsstreamreader.internal.OTSStreamReaderMasterProxy.init(OTSStreamReaderMasterProxy.java:38)
        at com.alibaba.datax.plugin.reader.otsstreamreader.internal.OTSStreamReader$Job.init(OTSStreamReader.java:31)
        at com.alibaba.datax.core.job.JobContainer.initJobReader(JobContainer.java:1085)
        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:321)
        at com.alibaba.datax.core.Engine.main(Engine.java:354)

考えられる原因

OTSStreamReader の parameter.table パラメーターで指定されたデータテーブルのストリーム機能が無効になっています。

解決策

次のいずれかの方法で、OTSStreamReader の parameter.table パラメーターで指定されたデータテーブルのストリーム機能を有効にします。

Tablestore コンソールの使用

  1. テーブル管理 ページに移動します。

    1. Tablestore コンソール にログインします。

    2. ページの上部で、リソースグループとリージョンを選択します。

    3. 概要 ページで、インスタンス名をクリックします。

    4. インスタンスの詳細 タブの テーブルリスト エリアで、データテーブルの名前をクリックします。

  2. テーブル管理 ページで、トンネル タブをクリックします。次に、Streamの情報 の右側にある 有効 をクリックします。

  3. Stream機能を有効 ダイアログボックスで、必要に応じてログの有効期限を変更し、有効 をクリックします。

Tablestore SDK の使用

次の Tablestore SDK を使用して UpdateTable API を呼び出し、データテーブルの構成を変更できます。

エラーメッセージ:「As expiration time is xx, so the start timestamp must greater than xx」

問題の説明

OTSStreamReader タスクを実行すると、次のエラーメッセージが表示されます。

com.alibaba.datax.common.exception.DataXException: [ code:OTSStreamReaderError, messageOTS Stream Reader Error] – com.alibaba.datax.plugin.reader.otsstreamreader.internal.OTSStreamReaderException: As expiration time is 25200000, so the start timestamp must greater than 2021-09-25T20:09Z(1632600562281) – com.alibaba.datax.plugin.reader.otsstreamreader.internal.OTSStreamReaderException: As expiration time is 25200000, so the start timestamp must greater than 2021-09-25T20:09Z(1632600562281)
        at com.alibaba.datax.plugin.reader.otsstreamreader.internal.core.OTSStreamReaderChecker.checkStreamEnabledAndTimeRangeOK(OTSStreamReaderChecker.java:60)
        at com.alibaba.datax.plugin.reader.otsstreamreader.internal.OTSStreamReaderMasterProxy.init(OTSStreamReaderMasterProxy.java:38)
        at com.alibaba.datax.plugin.reader.otsstreamreader.internal.OTSStreamReader$Job.init(OTSStreamReader.java:31)
        at com.alibaba.datax.core.job.JobContainer.initJobReader(JobContainer.java:1085)
        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:321)

考えられる原因

増分ログの開始タイムスタンプを指定する startTime パラメーターが、ログの有効期限を考慮して正しく設定されていません。

解決策

同期スクリプトの startTime パラメーターを、次の式で算出される値より大きい値を設定します: 同期タスクの開始時刻 - ログの有効期限 + 10 分

ログの有効期限を確認するには、次の手順を実行します。

  1. テーブル管理 ページに移動します。

    1. Tablestore コンソール にログインします。

    2. ページの上部で、リソースグループとリージョンを選択します。

    3. 概要 ページで、インスタンス名をクリックします。

    4. インスタンスの詳細 タブの テーブルリスト エリアで、データテーブルの名前をクリックします。

  2. テーブル管理 ページで 基本情報 タブをクリックすると、ログの有効期限を確認できます。

エラーメッセージ:「To avoid timing error between different machines, the end timestamp must smaller than xx」

問題の説明

OTSStreamReader タスクを実行すると、次のエラーメッセージが表示されます。

com.alibaba.datax.common.exception.DataXException: [ code:OTSStreamReaderError, messageOTS Stream Reader Error] – com.alibaba.datax.plugin.reader
.otsstreamreader.internal.OTSStreamReaderException: To avoid timing error between different machines, the end timestamp must smaller than 2021-09
-26T03:59Z(1632628796433) – com.alibaba.datax.plugin.reader.otsstreamreader.internal.OTSStreamReaderException: To avoid timing error between diff
erent machines, the end timestamp must smaller than 2021-09-26T03:59Z(1632628796433)
        at com.alibaba.datax.plugin.reader.otsstreamreader.internal.core.OTSStreamReaderChecker.checkStreamEnabledAndTimeRangeOK(OTSStreamReaderC
hecker.java:65)
        at com.alibaba.datax.plugin.reader.otsstreamreader.internal.OTSStreamReaderMasterProxy.init(OTSStreamReaderMasterProxy.java:38)
        at com.alibaba.datax.plugin.reader.otsstreamreader.internal.OTSStreamReader$Job.init(OTSStreamReader.java:31)
        at com.alibaba.datax.core.job.JobContainer.initJobReader(JobContainer.java:1085)
        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:321)
        at com.alibaba.datax.core.Engine.main(Engine.java:354)
        at com.alibaba.datax.common.exception.DataXException.asDataXException(DataException.java:41)

考えられる原因

endTime パラメーターの値が無効です。

解決策

同期スクリプトの endTime パラメーターを、次の式で算出される値より小さい値を設定します: 同期タスクの開始時刻 - 5 分

エラーメッセージ:「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.

考えられる原因

parameter.column パラメーターの形式が無効です。

解決策

parameter.column パラメーターが正しい形式であることを確認してください。次のサンプルコードは、形式の例を示しています。

  • 無効な形式

    "column":[
      "col1",
      "col2"
    ]
  • 有効な形式

    "column":[
      {
         "name" : "col1"
      },
      {
         "name" : "col2"
      }
    ]