Este tema describe los errores que pueden presentarse al ejecutar Tablestore Reader y cómo solucionarlos.
Mensaje de error: "Input size of values not equal size of primary key. input size: xx, primary key size: xx"
-
Descripción del problema
Recibe el mensaje de error "Input size of values not equal size of primary key. input size: xx, primary key size: xx" al ejecutar un trabajo de Tablestore Reader.
com.alibaba.datax.common.exception.DataXException: com.alibaba.datax.plugin.reader.otsreader.OtsReaderError@76f4b65 - IllegalArgumentException[ErrorMessage:Input size of values not equal size of primary key. input size:2, primary key size:1 .] - java.lang.IllegalArgumentException: Input size of values not equal size of primary key. input size:2, primary key size:1 . at com.alibaba.datax.plugin.reader.otsreader.utils.ParamChecker.checkInputPrimaryKeyAndGet(ParamChecker.java:119) at com.alibaba.datax.plugin.reader.otsreader.utils.ParamChecker.checkRangeAndGet(ParamChecker.java:151) at com.alibaba.datax.plugin.reader.otsreader.OtsReaderMasterProxy.init(OtsReaderMasterProxy.java:86) at com.alibaba.datax.plugin.reader.otsreader.OtsReader$Job.init(OtsReader.java:34) 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(DataXException.java:41) at com.alibaba.datax.plugin.reader.otsreader.OtsReader$Job.init(OtsReader.java:47) 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) -
Causa posible
El número de columnas de clave primaria especificado en el script de Tablestore Reader difiere del definido en la tabla de datos de Tablestore.
-
Solución
Revise el esquema de la tabla de datos de Tablestore para obtener el número de columnas de clave primaria. Luego, establezca este valor como la cantidad de columnas de clave primaria en el script de Tablestore Reader.
Por ejemplo, si una tabla de datos de Tablestore contiene dos columnas de clave primaria y desea sincronizar todos los datos, a continuación se muestra cómo especificar la cantidad de columnas de clave primaria en el script de Tablestore Reader:
"range": { "begin": [ { "type": "INF_MIN" }, { "type": "INF_MIN" } ], "end": [ { "type": "INF_MAX" }, { "type": "INF_MAX" } ] }
Mensaje de error: "Input type of 'range-split' not match partition key. Item of 'range-split' type:xx, Partition type:xx"
-
Descripción del problema
Recibe el mensaje de error "Input type of 'range-split' not match partition key. Item of 'range-split' type:xx, Partition type:xx" al ejecutar un trabajo de Tablestore Reader.
com.alibaba.datax.common.exception.DataXException: com.alibaba.datax.plugin.reader.otsreader.OtsReaderError@22f31dec - IllegalArgumentException[ErrorMessage:Input type of 'range-split' not match partition key. Item of 'range-split' type:null, Partition type:STRING] - java.lang.IllegalArgumentException: Input type of 'range-split' not match partition key. Item of 'range-split' type:null, Partition type:STRING at com.alibaba.datax.plugin.reader.otsreader.utils.ParamChecker.checkInputSplitPoints(ParamChecker.java:231) at com.alibaba.datax.plugin.reader.otsreader.OtsReaderMasterProxy.init(OtsReaderMasterProxy.java:92) at com.alibaba.datax.plugin.reader.otsreader.OtsReader$Job.init(OtsReader.java:34) 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(DataXException.java:41) at com.alibaba.datax.plugin.reader.otsreader.OtsReader$Job.init(OtsReader.java:47) 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) -
Causa posible
El punto de división se configuró incorrectamente en el script de Tablestore Reader. A continuación se muestra esta configuración errónea:
"split": [ { "type": "INF_MIN" }, { "type": "INF_MAX" } ] -
Solución
Elimine la configuración del punto de división del script de Tablestore Reader.
Configure nuevamente el punto de división. Para obtener más información, consulte Configure split points when I use Tablestore Reader to synchronize full data.
Mensaje de error: "Invalid 'column', Can not parse Object to 'OTSColumn', item of list is not a map"
-
Descripción del problema
Recibe el mensaje de error "Invalid 'column', Can not parse Object to 'OTSColumn', item of list is not a map" al ejecutar un trabajo de Tablestore Reader.
com.alibaba.datax.common.exception.DataXException: com.alibaba.datax.plugin.reader.otsreader.OtsReaderError@64bce832 – IllegalArgumentException[ErrorMessage:Invalid 'column', Can not parse Object to 'OTSColumn', item of list is not a map.] – java.lang.IllegalArgumentException: Invalid 'column', Can not parse Object to 'OTSColumn', item of list is not a map. at com.alibaba.datax.plugin.reader.otsreader.utils.ReaderModelParser.parseOTSColumnList(ReaderModelParser.java:104) at com.alibaba.datax.plugin.reader.otsreader.OtsReaderMasterProxy.init(OtsReaderMasterProxy.java:80) at com.alibaba.datax.plugin.reader.otsreader.OtsReader$Job.init(OtsReader.java:34) 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(DataXException.java:41) at com.alibaba.datax.plugin.reader.otsreader.OtsReader$Job.init(OtsReader.java:47) 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) -
Causa posible
El parámetro de columna se especificó incorrectamente en el script de Tablestore Reader. A continuación se muestra esta especificación errónea:
"column": [ "id", "name", "age" ] -
Solución
Asegúrese de que el parámetro de columna esté especificado correctamente en el script de Tablestore Reader. A continuación se muestra cómo configurar dicho parámetro:
"column": [ { "name": "id" }, { "name": "name" }, { "name": "age" } ]