All Products
Search
Document Center

Tablestore:Errors that may occur when OTSStream Reader is running

Last Updated:Dec 20, 2024

This topic describes errors that may occur when OTSStream Reader is running and how to troubleshoot the errors.

Error message: "Must set date or time range millis or time range string, please check your config"

Problem description

The "Must set date or time range millis or time range string, please check your config" error message appears when OTSStream Reader is running. The following figure shows the error message.

fig_setdate

Possible cause

The parameters that specify the timestamp range of incremental data are not configured in the configuration script of OTSStream Reader.

Solutions

Specify the timestamp range of incremental data by using one of the following methods:

  • Set the parameter.date parameter to the date of the incremental data that you want to export.

  • Set the parameter.startTimestampMillis parameter to the start timestamp of the timestamp range of incremental data and the parameter.endTimestampMillis parameter to the end timestamp of the timestamp range of incremental data.

For more information about how to configure the timestamp range of incremental data, see Synchronize incremental data to OSS.

Error Message: "The stream of data table is not enabled"

Problem description

The "The stream of data table is not enabled" error message appears when OTSStream Reader is running. The following figure shows the error message.fig_datatablestream

Possible cause

The Stream feature is disabled for the data table that is specified by the parameter.table parameter in OTSStream Reader.

Solutions

Enable the Stream feature for the data table that is specified by the parameter.table parameter in OTSStream Reader by using one of the following methods:

Use the Tablestore console

  1. Go to the Manage Table page.

    1. Log on to the Tablestore console.

    2. In the upper part of the page, select a resource group and a region.

    3. On the Overview page, click the name of the instance.

    4. On the Tables tab of the Instance Details tab, click the name of the table that you want to manage.

  2. On the Tunnels tab of the Manage Table page, click Enable next to Stream Information.

    fig_streamopen

  3. In the Enable Stream dialog box, configure the Log Expiration Time parameter and click Enable.

Use Tablestore SDKs

You can call the UpdateTable operation to modify the configurations of a data table by using the following Tablestore SDKs:

Error Message: "As expiration time is xx, so the start timestamp must greater than xx"

Problem description

The "As expiration time is xx, so the start timestamp must greater than xx" error message appears when OTSStream Reader is running. The following figure shows the error message.

fig_greaterthan

Possible cause

The startTime parameter that specifies the start timestamp of the timestamp range of incremental logs is not correctly configured based on the log expiration time.

Solutions

Set the startTime parameter in the synchronization script to a value that is greater than the value that is obtained by using the following formula: Synchronization task start time - Log expiration time + 10 minutes.

You can perform the following steps to view the log expiration time:

  1. Go to the Manage Table page.

    1. Log on to the Tablestore console.

    2. In the upper part of the page, select a resource group and a region.

    3. On the Overview page, click the name of the instance.

    4. On the Tables tab of the Instance Details tab, click the name of the table that you want to manage.

  2. On the Basic Information tab of the Manage Table page, view the log expiration time.

    image

Error message: "To avoid timing error between different machines, the end timestamp must smaller than xx"

Problem description

The "To avoid timing error between different machines, the end timestamp must smaller than xx" error message appears when OTSStream Reader is running. The following figure shows the error message.fig_smallerthan

Possible cause

The value of the endTime parameter is invalid.

Solutions

Set the endTime parameter in the synchronization script to a value that is smaller than the value that is obtained by using the following formula: Synchronization task start time - 5 minutes.

Error message: "The item of column must be map object"

Problem description

The "The item of column must be map object" error message appears when OTSStream Reader is running. The following sample code provides an example of the error message.

[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.

Possible cause

The format of the parameter.column parameter is invalid.

Solutions

Make sure that the parameter.column parameter is in the correct format The following sample code provides examples of the format:

  • Invalid format

    "column":[
      "col1",
      "col2"
    ]
  • Valid format

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