Cette rubrique décrit les erreurs susceptibles de se produire lors de l'exécution de Tablestore Reader et explique comment les résoudre.
Message d'erreur : « Input size of values not equal size of primary key. input size: xx, primary key size: xx »
-
Description du problème
Le message d'erreur « Input size of values not equal size of primary key. input size: xx, primary key size: xx » s'affiche lors de l'exécution d'une tâche 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) -
Cause possible
Le nombre de colonnes de clé primaire spécifié dans le script Tablestore Reader diffère de celui de la table de données Tablestore.
-
Solution
Vérifiez le schéma de la table de données Tablestore, récupérez le nombre de colonnes de clé primaire de cette table, puis définissez cette valeur comme nombre de colonnes de clé primaire dans le script Tablestore Reader.
Par exemple, si une table de données Tablestore contient deux colonnes de clé primaire et que vous souhaitez synchroniser toutes les données de la table, l'extrait de code suivant indique comment spécifier le nombre de colonnes de clé primaire dans le script Tablestore Reader :
"range": { "begin": [ { "type": "INF_MIN" }, { "type": "INF_MIN" } ], "end": [ { "type": "INF_MAX" }, { "type": "INF_MAX" } ] }
Message d'erreur : « Input type of 'range-split' not match partition key. Item of 'range-split' type:xx, Partition type:xx »
-
Description du problème
Le message d'erreur « Input type of 'range-split' not match partition key. Item of 'range-split' type:xx, Partition type:xx » s'affiche lors de l'exécution d'une tâche 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) -
Cause possible
Le point de division est incorrectement configuré dans le script Tablestore Reader. L'extrait de code suivant illustre une configuration incorrecte du point de division :
"split": [ { "type": "INF_MIN" }, { "type": "INF_MAX" } ] -
Solution
Supprimez la configuration du point de division du script Tablestore Reader.
Reconfigurez le point de division. Pour plus d'informations, consultez la section Configuration des points de division lors de l'utilisation de Tablestore Reader pour synchroniser des données complètes.
Message d'erreur : « Invalid 'column', Can not parse Object to 'OTSColumn', item of list is not a map »
-
Description du problème
Le message d'erreur « Invalid 'column', Can not parse Object to 'OTSColumn', item of list is not a map » s'affiche lors de l'exécution d'une tâche 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) -
Cause possible
Le paramètre column est incorrectement spécifié dans le script Tablestore Reader. L'extrait de code suivant illustre une spécification incorrecte du paramètre column :
"column": [ "id", "name", "age" ] -
Solution
Assurez-vous que le paramètre column est correctement spécifié dans le script Tablestore Reader. L'extrait de code suivant indique comment spécifier le paramètre column :
"column": [ { "name": "id" }, { "name": "name" }, { "name": "age" } ]