OBLOADER 参数--column-separator如何指定\t

【 使用环境 】测试环境
【 OB or 其他组件 】ob-loader-dumper-4.2.0-RELEASE-ce
【 使用版本 】4.2.0
【问题描述】OBLOADER 参数–column-separator如何指定\t
【复现路径】bin/obloader --column-separator ‘\t’
【问题现象及影响】
Exception in thread “main” picocli.CommandLine$ParameterException: Invalid value for option ‘–column-separator’: ‘\t’ is not a single character
at picocli.CommandLine$Interpreter.tryConvert(CommandLine.java:14693)
at picocli.CommandLine$Interpreter.applyValueToSingleValuedField(CommandLine.java:14209)
at picocli.CommandLine$Interpreter.applyOption(CommandLine.java:14079)
at picocli.CommandLine$Interpreter.processStandaloneOption(CommandLine.java:13945)
at picocli.CommandLine$Interpreter.processArguments(CommandLine.java:13765)
at picocli.CommandLine$Interpreter.parse(CommandLine.java:13500)
at picocli.CommandLine$Interpreter.parse(CommandLine.java:13468)
at picocli.CommandLine$Interpreter.parse(CommandLine.java:13363)
at picocli.CommandLine.parseArgs(CommandLine.java:1552)
at com.oceanbase.tools.loaddump.cmd.Obloader.main(Obloader.java:172)
Caused by: picocli.CommandLine$TypeConversionException: ‘\t’ is not a single character
at picocli.CommandLine$BuiltIn$CharacterConverter.convert(CommandLine.java:15026)
at picocli.CommandLine$BuiltIn$CharacterConverter.convert(CommandLine.java:15023)
at picocli.CommandLine$Interpreter.tryConvert(CommandLine.java:14690)
… 9 more
【附件】

–column-separator 只支持单字符

可以使用 --column-splitter ‘\t’ --cut 方式试试。

–column-splitter ‘\t’ --cut 会报错,可能是用的不对,把分割符改成© 能凑合用。
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.esotericsoftware.kryo.util.UnsafeUtil (file:/home/admin/ob-loader-dumper-4.2.0-RELEASE-ce/lib/kryo-4.0.2.jar) to constructor java.nio.DirectByteBuffer(long,int,java.lang.Object)
WARNING: Please consider reporting this to the maintainers of com.esotericsoftware.kryo.util.UnsafeUtil
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
2023-05-22 10:42:09 [INFO] Query the leader location of “ican_process_instance_task20221129” finished. Remain: 0
2023-05-22 10:42:09 [INFO] Calculate leader: 10.56.1.187:2881 of table “ican_process_instance_task20221129”, part: 0. Remain: 23
2023-05-22 10:42:09 [INFO] Calculate leader: 10.56.1.187:2881 of table “ican_process_instance_task20221129”, part: 0. Remain: 20
2023-05-22 10:42:09 [INFO] Calculate leader: 10.56.1.187:2881 of table “ican_process_instance_task20221129”, part: 0. Remain: 22
2023-05-22 10:42:09 [INFO] Calculate leader: 10.56.1.187:2881 of table “ican_process_instance_task20221129”, part: 0. Remain: 19
2023-05-22 10:42:09 [INFO] Calculate leader: 10.56.1.187:2881 of table “ican_process_instance_task20221129”, part: 0. Remain: 18
2023-05-22 10:42:09 [INFO] Calculate leader: 10.56.1.187:2881 of table “ican_process_instance_task20221129”, part: 0. Remain: 15
2023-05-22 10:42:09 [INFO] Calculate leader: 10.56.1.187:2881 of table “ican_process_instance_task20221129”, part: 0. Remain: 16
2023-05-22 10:42:09 [INFO] Calculate leader: 10.56.1.187:2881 of table “ican_process_instance_task20221129”, part: 0. Remain: 14
2023-05-22 10:42:09 [INFO] Calculate leader: 10.56.1.187:2881 of table “ican_process_instance_task20221129”, part: 0. Remain: 13
2023-05-22 10:42:09 [INFO] Calculate leader: 10.56.1.187:2881 of table “ican_process_instance_task20221129”, part: 0. Remain: 12
2023-05-22 10:42:09 [INFO] Calculate leader: 10.56.1.187:2881 of table “ican_process_instance_task20221129”, part: 0. Remain: 11
2023-05-22 10:42:09 [INFO] Calculate leader: 10.56.1.187:2881 of table “ican_process_instance_task20221129”, part: 0. Remain: 10
2023-05-22 10:42:09 [INFO] Calculate leader: 10.56.1.187:2881 of table “ican_process_instance_task20221129”, part: 0. Remain: 9
2023-05-22 10:42:09 [INFO] Calculate leader: 10.56.1.187:2881 of table “ican_process_instance_task20221129”, part: 0. Remain: 7
2023-05-22 10:42:09 [INFO] Calculate leader: 10.56.1.187:2881 of table “ican_process_instance_task20221129”, part: 0. Remain: 17
2023-05-22 10:42:09 [INFO] Calculate leader: 10.56.1.187:2881 of table “ican_process_instance_task20221129”, part: 0. Remain: 4
2023-05-22 10:42:09 [INFO] Calculate leader: 10.56.1.187:2881 of table “ican_process_instance_task20221129”, part: 0. Remain: 8
2023-05-22 10:42:09 [INFO] Calculate leader: 10.56.1.187:2881 of table “ican_process_instance_task20221129”, part: 0. Remain: 5
2023-05-22 10:42:09 [INFO] Calculate leader: 10.56.1.187:2881 of table “ican_process_instance_task20221129”, part: 0. Remain: 3
2023-05-22 10:42:09 [INFO] Calculate leader: 10.56.1.187:2881 of table “ican_process_instance_task20221129”, part: 0. Remain: 6
2023-05-22 10:42:09 [INFO] Calculate leader: 10.56.1.187:2881 of table “ican_process_instance_task20221129”, part: 0. Remain: 21
2023-05-22 10:42:09 [INFO] Calculate leader: 10.56.1.187:2881 of table “ican_process_instance_task20221129”, part: 0. Remain: 1
2023-05-22 10:42:09 [INFO] Calculate leader: 10.56.1.187:2881 of table “ican_process_instance_task20221129”, part: 0. Remain: 2
2023-05-22 10:42:09 [INFO] Calculate leader: 10.56.1.187:2881 of table “ican_process_instance_task20221129”, part: 0. Remain: 0
2023-05-22 10:42:10 [INFO] Waiting to refresh observer load status …
2023-05-22 10:42:10 [INFO] Refresh observer load status success. Table: “ican_process_instance_task20221129”. Remain: 0
2023-05-22 10:42:10 [INFO] Refresh observer load status finished. Elapsed: 8.419 ms
2023-05-22 10:42:10 [INFO] Use c.l.d.LiteBlockingWaitStrategy as available cpu(s) is 8
2023-05-22 10:42:10 [INFO] Create 16 slots for ring buffer finished. [10.56.1.187:2881]
2023-05-22 10:42:10 [INFO] Start 16 database writer threads finished. [10.56.1.187:2881]
2023-05-22 10:42:10 [INFO] Start 16 record file reader threads success
2023-05-22 10:42:10 [WARN] Retry Table: “ican_process_instance_task20221129”, Partition: 0. Records: 50. Error: Column count doesn’t match value count at row 1. Retry Mode: SERIAL.
2023-05-22 10:42:10 [WARN] Retry Table: “ican_process_instance_task20221129”, Partition: 0. Records: 50. Error: Column count doesn’t match value count at row 1. Retry Mode: SERIAL.
2023-05-22 10:42:10 [WARN] Retry Table: “ican_process_instance_task20221129”, Partition: 0. Records: 50. Error: Column count doesn’t match value count at row 1. Retry Mode: SERIAL.
2023-05-22 10:42:10 [WARN] Retry Table: “ican_process_instance_task20221129”, Partition: 0. Records: 50. Error: Column count doesn’t match value count at row 1. Retry Mode: SERIAL.
2023-05-22 10:42:10 [WARN] Retry Table: “ican_process_instance_task20221129”, Partition: 0. Records: 50. Error: Column count doesn’t match value count at row 1. Retry Mode: SERIAL.
2023-05-22 10:42:10 [WARN] Retry Table: “ican_process_instance_task20221129”, Partition: 0. Records: 50. Error: Column count doesn’t match value count at row 1. Retry Mode: SERIAL.
2023-05-22 10:42:10 [WARN] Retry Table: “ican_process_instance_task20221129”, Partition: 0. Records: 50. Error: Column count doesn’t match value count at row 1. Retry Mode: SERIAL.
2023-05-22 10:42:10 [WARN] Retry Table: “ican_process_instance_task20221129”, Partition: 0. Records: 50. Error: Column count doesn’t match value count at row 1. Retry Mode: SERIAL.
2023-05-22 10:42:10 [WARN] Retry Table: “ican_process_instance_task20221129”, Partition: 0. Records: 50. Error: Column count doesn’t match value count at row 1. Retry Mode: SERIAL.
2023-05-22 10:42:10 [WARN] Retry Table: “ican_process_instance_task20221129”, Partition: 0. Records: 50. Error: Column count doesn’t match value count at row 1. Retry Mode: SERIAL.
2023-05-22 10:42:10 [WARN] Retry Table: “ican_process_instance_task20221129”, Partition: 0. Records: 50. Error: Column count doesn’t match value count at row 1. Retry Mode: SERIAL.
2023-05-22 10:42:10 [WARN] Retry Table: “ican_process_instance_task20221129”, Partition: 0. Records: 50. Error: Column count doesn’t match value count at row 1. Retry Mode: SERIAL.
2023-05-22 10:42:10 [WARN] Retry Table: “ican_process_instance_task20221129”, Partition: 0. Records: 50. Error: Column count doesn’t match value count at row 1. Retry Mode: SERIAL.
2023-05-22 10:42:10 [WARN] Retry Table: “ican_process_instance_task20221129”, Partition: 0. Records: 50. Error: Column count doesn’t match value count at row 1. Retry Mode: SERIAL.
2023-05-22 10:42:10 [WARN] Retry Table: “ican_process_instance_task20221129”, Partition: 0. Records: 50. Error: Column count doesn’t match value count at row 1. Retry Mode: SERIAL.
2023-05-22 10:42:10 [WARN] Retry Table: “ican_process_instance_task20221129”, Partition: 0. Records: 50. Error: Column count doesn’t match value count at row 1. Retry Mode: SERIAL.
2023-05-22 10:42:10 [WARN] Retry Table: “ican_process_instance_task20221129”, Partition: 0. Records: 50. Error: Column count doesn’t match value count at row 1. Retry Mode: SERIAL.
2023-05-22 10:42:10 [WARN] Retry Table: “ican_process_instance_task20221129”, Partition: 0. Records: 50. Error: Column count doesn’t match value count at row 1. Retry Mode: SERIAL.
2023-05-22 10:42:10 [WARN] Retry Table: “ican_process_instance_task20221129”, Partition: 0. Records: 50. Error: Column count doesn’t match value count at row 1. Retry Mode: SERIAL.
2023-05-22 10:42:10 [WARN] Retry Table: “ican_process_instance_task20221129”, Partition: 0. Records: 50. Error: Column count doesn’t match value count at row 1. Retry Mode: SERIAL.
2023-05-22 10:42:10 [WARN] Retry Table: “ican_process_instance_task20221129”, Partition: 0. Records: 50. Error: Column count doesn’t match value count at row 1. Retry Mode: SERIAL.
2023-05-22 10:42:10 [WARN] Retry Table: “ican_process_instance_task20221129”, Partition: 0. Records: 50. Error: Column count doesn’t match value count at row 1. Retry Mode: SERIAL.
2023-05-22 10:42:10 [WARN] Retry Table: “ican_process_instance_task20221129”, Partition: 0. Records: 50. Error: Column count doesn’t match value count at row 1. Retry Mode: SERIAL.
2023-05-22 10:42:10 [WARN] Retry Table: “ican_process_instance_task20221129”, Partition: 0. Records: 50. Error: Column count doesn’t match value count at row 1. Retry Mode: SERIAL.
2023-05-22 10:42:10 [WARN] Retry Table: “ican_process_instance_task20221129”, Partition: 0. Records: 50. Error: Column count doesn’t match value count at row 1. Retry Mode: SERIAL.
2023-05-22 10:42:10 [WARN] Retry Table: “ican_process_instance_task20221129”, Partition: 0. Records: 50. Error: Column count doesn’t match value count at row 1. Retry Mode: SERIAL.
2023-05-22 10:42:10 [WARN] Retry Table: “ican_process_instance_task20221129”, Partition: 0. Records: 50. Error: Column count doesn’t match value count at row 1. Retry Mode: SERIAL.
2023-05-22 10:42:10 [WARN] Retry Table: “ican_process_instance_task20221129”, Partition: 0. Records: 50. Error: Column count doesn’t match value count at row 1. Retry Mode: SERIAL.
2023-05-22 10:42:10 [WARN] Retry Table: “ican_process_instance_task20221129”, Partition: 0. Records: 50. Error: Column count doesn’t match value count at row 1. Retry Mode: SERIAL.
2023-05-22 10:42:10 [WARN] Retry Table: “ican_process_instance_task20221129”, Partition: 0. Records: 50. Error: Column count doesn’t match value count at row 1. Retry Mode: SERIAL.
2023-05-22 10:42:10 [ERROR] Too many errors occurred. Table: “ican_process_instance_task20221129”
2023-05-22 10:42:10 [ERROR] Too many errors occurred. Table: “ican_process_instance_task20221129”
2023-05-22 10:42:10 [ERROR] Too many errors occurred. Table: “ican_process_instance_task20221129”
2023-05-22 10:42:10 [ERROR] Too many errors occurred. Table: “ican_process_instance_task20221129”
2023-05-22 10:42:10 [ERROR] Too many errors occurred. Table: “ican_process_instance_task20221129”
2023-05-22 10:42:10 [ERROR] Too many errors occurred. Table: “ican_process_instance_task20221129”
2023-05-22 10:42:10 [ERROR] Too many errors occurred. Table: “ican_process_instance_task20221129”
2023-05-22 10:42:10 [ERROR] Too many errors occurred. Table: “ican_process_instance_task20221129”
2023-05-22 10:42:10 [ERROR] Too many errors occurred. Table: “ican_process_instance_task20221129”
2023-05-22 10:42:10 [ERROR] Too many errors occurred. Table: “ican_process_instance_task20221129”
2023-05-22 10:42:10 [ERROR] Too many errors occurred. Table: “ican_process_instance_task20221129”
2023-05-22 10:42:10 [ERROR] Too many errors occurred. Table: “ican_process_instance_task20221129”
2023-05-22 10:42:10 [ERROR] Too many errors occurred. Table: “ican_process_instance_task20221129”
2023-05-22 10:42:10 [ERROR] Too many errors occurred. Table: “ican_process_instance_task20221129”
2023-05-22 10:42:10 [ERROR] Too many errors occurred. Table: “ican_process_instance_task20221129”
2023-05-22 10:42:10 [ERROR] Error occurred when loading data into “ican”.“ican_process_instance_task20221129” java.sql.SQLException: Column count doesn’t match value count at row 1
at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.readErrorPacket(AbstractQueryProtocol.java:1694) ~[mariadb-java-client-2.7.4.jar:?]
at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.readPacket(AbstractQueryProtocol.java:1556) ~[mariadb-java-client-2.7.4.jar:?]
at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.getResult(AbstractQueryProtocol.java:1519) ~[mariadb-java-client-2.7.4.jar:?]
at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.executeQuery(AbstractQueryProtocol.java:318) ~[mariadb-java-client-2.7.4.jar:?]
at org.mariadb.jdbc.ClientSidePreparedStatement.executeInternal(ClientSidePreparedStatement.java:220) ~[mariadb-java-client-2.7.4.jar:?]
at org.mariadb.jdbc.ClientSidePreparedStatement.execute(ClientSidePreparedStatement.java:149) ~[mariadb-java-client-2.7.4.jar:?]
at org.mariadb.jdbc.ClientSidePreparedStatement.executeUpdate(ClientSidePreparedStatement.java:181) ~[mariadb-java-client-2.7.4.jar:?]
at com.oceanbase.tools.loaddump.writer.oceanbase.JdbcClientWriter$RetryCallback.executeUpdate(JdbcClientWriter.java:721) ~[ob-loader-dumper-4.2.0-RELEASE.jar:?]
at com.oceanbase.tools.loaddump.writer.oceanbase.JdbcClientWriter$RetryCallback.call(JdbcClientWriter.java:532) ~[ob-loader-dumper-4.2.0-RELEASE.jar:?]
at com.oceanbase.tools.loaddump.writer.oceanbase.JdbcClientWriter$RetryCallback.call(JdbcClientWriter.java:422) ~[ob-loader-dumper-4.2.0-RELEASE.jar:?]
at com.github.rholder.retry.AttemptTimeLimiters$NoAttemptTimeLimit.call(AttemptTimeLimiters.java:78) ~[guava-retrying-2.0.0.jar:?]
at com.github.rholder.retry.Retryer.call(Retryer.java:160) ~[guava-retrying-2.0.0.jar:?]
at com.oceanbase.tools.loaddump.writer.oceanbase.JdbcClientWriter.onEvent(JdbcClientWriter.java:304) ~[ob-loader-dumper-4.2.0-RELEASE.jar:?]
at com.oceanbase.tools.loaddump.writer.oceanbase.JdbcClientWriter.onEvent(JdbcClientWriter.java:81) ~[ob-loader-dumper-4.2.0-RELEASE.jar:?]
at com.lmax.disruptor.WorkProcessor.run(WorkProcessor.java:143) ~[disruptor-3.4.4.jar:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[?:?]
at java.lang.Thread.run(Thread.java:829) ~[?:?]

2023-05-22 10:42:10 [ERROR] Error occurred when loading data into “ican”.“ican_process_instance_task20221129” java.sql.SQLException: Column count doesn’t match value count at row 1
at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.readErrorPacket(AbstractQueryProtocol.java:1694) ~[mariadb-java-client-2.7.4.jar:?]
at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.readPacket(AbstractQueryProtocol.java:1556) ~[mariadb-java-client-2.7.4.jar:?]
at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.getResult(AbstractQueryProtocol.java:1519) ~[mariadb-java-client-2.7.4.jar:?]
at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.executeQuery(AbstractQueryProtocol.java:318) ~[mariadb-java-client-2.7.4.jar:?]
at org.mariadb.jdbc.ClientSidePreparedStatement.executeInternal(ClientSidePreparedStatement.java:220) ~[mariadb-java-client-2.7.4.jar:?]
at org.mariadb.jdbc.ClientSidePreparedStatement.execute(ClientSidePreparedStatement.java:149) ~[mariadb-java-client-2.7.4.jar:?]
at org.mariadb.jdbc.ClientSidePreparedStatement.executeUpdate(ClientSidePreparedStatement.java:181) ~[mariadb-java-client-2.7.4.jar:?]
at com.oceanbase.tools.loaddump.writer.oceanbase.JdbcClientWriter$RetryCallback.executeUpdate(JdbcClientWriter.java:721) ~[ob-loader-dumper-4.2.0-RELEASE.jar:?]
at com.oceanbase.tools.loaddump.writer.oceanbase.JdbcClientWriter$RetryCallback.call(JdbcClientWriter.java:532) ~[ob-loader-dumper-4.2.0-RELEASE.jar:?]
at com.oceanbase.tools.loaddump.writer.oceanbase.JdbcClientWriter$RetryCallback.call(JdbcClientWriter.java:422) ~[ob-loader-dumper-4.2.0-RELEASE.jar:?]
at com.github.rholder.retry.AttemptTimeLimiters$NoAttemptTimeLimit.call(AttemptTimeLimiters.java:78) ~[guava-retrying-2.0.0.jar:?]
at com.github.rholder.retry.Retryer.call(Retryer.java:160) ~[guava-retrying-2.0.0.jar:?]
at com.oceanbase.tools.loaddump.writer.oceanbase.JdbcClientWriter.onEvent(JdbcClientWriter.java:304) ~[ob-loader-dumper-4.2.0-RELEASE.jar:?]
at com.oceanbase.tools.loaddump.writer.oceanbase.JdbcClientWriter.onEvent(JdbcClientWriter.java:81) ~[ob-loader-dumper-4.2.0-RELEASE.jar:?]
at com.lmax.disruptor.WorkProcessor.run(WorkProcessor.java:143) ~[disruptor-3.4.4.jar:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[?:?]
at java.lang.Thread.run(Thread.java:829) ~[?:?]

CSV 格式 --column-separator 选项仅支持单个字符。