Topik ini menjelaskan error yang mungkin terjadi saat Tablestore Reader berjalan dan cara memecahkan masalah tersebut.
Pesan error: "Input size of values not equal size of primary key. input size: xx, primary key size: xx"
-
Deskripsi masalah
Anda menerima pesan error "Input size of values not equal size of primary key. input size: xx, primary key size: xx" saat menjalankan pekerjaan 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) -
Kemungkinan penyebab
Jumlah kolom kunci primer yang ditentukan dalam skrip Tablestore Reader tidak sesuai dengan jumlah kolom kunci primer pada tabel data Tablestore.
-
Solusi
Periksa skema tabel data Tablestore untuk mengetahui jumlah kolom kunci primernya, lalu sesuaikan nilai tersebut dalam skrip Tablestore Reader.
Sebagai contoh, jika tabel data Tablestore memiliki dua kolom kunci primer dan Anda ingin menyinkronkan seluruh datanya, cuplikan kode berikut menunjukkan cara menentukan jumlah kolom kunci primer dalam skrip Tablestore Reader:
"range": { "begin": [ { "type": "INF_MIN" }, { "type": "INF_MIN" } ], "end": [ { "type": "INF_MAX" }, { "type": "INF_MAX" } ] }
Pesan error: "Input type of 'range-split' not match partition key. Item of 'range-split' type:xx, Partition type:xx"
-
Deskripsi masalah
Anda menerima pesan error "Input type of 'range-split' not match partition key. Item of 'range-split' type:xx, Partition type:xx" saat menjalankan pekerjaan 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) -
Kemungkinan penyebab
Titik pemisahan (split point) dikonfigurasi secara salah dalam skrip Tablestore Reader. Cuplikan kode berikut menunjukkan konfigurasi titik pemisahan yang salah:
"split": [ { "type": "INF_MIN" }, { "type": "INF_MAX" } ] -
Solusi
-
Hapus konfigurasi titik pemisahan dari skrip Tablestore Reader.
-
Konfigurasikan ulang titik pemisahan tersebut. Untuk informasi lebih lanjut, lihat Konfigurasi titik pemisahan saat menggunakan Tablestore Reader untuk menyinkronkan data penuh.
-
Pesan error: "Invalid 'column', Can not parse Object to 'OTSColumn', item of list is not a map"
-
Deskripsi masalah
Anda menerima pesan error "Invalid 'column', Can not parse Object to 'OTSColumn', item of list is not a map" saat menjalankan pekerjaan 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) -
Kemungkinan penyebab
Parameter column ditentukan secara salah dalam skrip Tablestore Reader. Cuplikan kode berikut menunjukkan penentuan parameter column yang salah:
"column": [ "id", "name", "age" ] -
Solusi
Pastikan parameter column ditentukan dengan benar dalam skrip Tablestore Reader. Cuplikan kode berikut menunjukkan cara menentukan parameter column yang benar:
"column": [ { "name": "id" }, { "name": "name" }, { "name": "age" } ]