mrfengtiger opened a new issue, #17285:
URL: https://github.com/apache/doris/issues/17285

   ### Search before asking
   
   - [X] I had searched in the 
[issues](https://github.com/apache/doris/issues?q=is%3Aissue) and found no 
similar issues.
   
   
   ### Version
   
   doris-1.2.1-rc01
   
   ### What's Wrong?
   
   表现: 当源表字段包含关键字(如: `group`,`whitelist`), SYNC JOB会报错并暂停任务
   
   分析: 查看fe.log, 可以查看到
   2023-03-01 06:57:22,062 WARN (mysql-nio-pool-80|2154) 
[ConnectProcessor.handleQueryException():353] Process one query failed because.
   org.apache.doris.common.AnalysisException: errCode = 2, detailMessage = 
Syntax error in line 2:
   ...ame,code,method,url,scope,whitelist,valid,author,creat...
                                ^
   Encountered: WHITELIST
   Expected: WHITELIST is keyword, maybe `WHITELIST`
   
           at 
org.apache.doris.qe.ConnectProcessor.parse(ConnectProcessor.java:387) 
~[doris-fe.jar:1.0-SNAPSHOT]
           at 
org.apache.doris.qe.ConnectProcessor.handleQuery(ConnectProcessor.java:277) 
~[doris-fe.jar:1.0-SNAPSHOT]
           at 
org.apache.doris.qe.ConnectProcessor.dispatch(ConnectProcessor.java:463) 
~[doris-fe.jar:1.0-SNAPSHOT]
           at 
org.apache.doris.qe.ConnectProcessor.processOnce(ConnectProcessor.java:690) 
~[doris-fe.jar:1.0-SNAPSHOT]
           at 
org.apache.doris.mysql.nio.ReadListener.lambda$handleEvent$0(ReadListener.java:52)
 ~[doris-fe.jar:1.0-SNAPSHOT]
           at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 
~[?:1.8.0_342]
           at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 
~[?:1.8.0_342]
           at java.lang.Thread.run(Thread.java:750) ~[?:1.8.0_342]
   Caused by: org.apache.doris.common.AnalysisException: errCode = 2, 
detailMessage = Syntax error
           at 
org.apache.doris.analysis.SqlParser.unrecovered_syntax_error(SqlParser.java:2365)
 ~[doris-fe.jar:1.0-SNAPSHOT]
           at java_cup.runtime.lr_parser.parse(lr_parser.java:616) 
~[jflex-1.4.3.jar:?]
           at 
org.apache.doris.common.util.SqlParserUtils.getMultiStmts(SqlParserUtils.java:60)
 ~[doris-fe.jar:1.0-SNAPSHOT]
           at 
org.apache.doris.qe.ConnectProcessor.parse(ConnectProcessor.java:378) 
~[doris-fe.jar:1.0-SNAPSHOT]
   
   
查看同步任务源码(org.apache.doris.load.sync.canal.CanalSyncChannel.beginTxn()),其中并没有对字段添加"`",在后面的检查中未能通过
   
   
   ### What You Expected?
   
   建议canal sync job时对任务目标字段进行处理,防止后面检查不通过导致同步失败
   
   ### How to Reproduce?
   
   mysql:
   CREATE TABLE `api` (
     `id` int NOT NULL AUTO_INCREMENT,
     `name` varchar(20) NOT NULL,
     `whitelist` tinyint(1) NOT NULL,
     PRIMARY KEY (`id`)
   ) ENGINE=InnoDB AUTO_INCREMENT=1;
   
   doris:
       CREATE TABLE `api` (
           `id` bigint(20) NOT NULL,
            `name` varchar(20) NOT NULL,
            `whitelist` tinyint(1) NOT NULL,
       ) ENGINE=OLAP
       UNIQUE KEY(`id`)
       DISTRIBUTED BY HASH(`id`) BUCKETS 2
       PROPERTIES ( "replication_num" = "1" )
   
   sync job:
   CREATE SYNC `test_sync`(
           FROM `test_mysql`.`api` INTO `api`(`id`,`name`,`whitelist`)
       ) FROM BINLOG (
       "type" = "canal",
       "canal.server.ip" = "127.0.0.1",
       "canal.server.port" = "11111",
       "canal.destination" = "example", 
       "canal.username" = "canal",
       "canal.password" = "xxx"
       );
   
   源表添加数据,目标表数据不变化. 
   SHOW SYNC JOB 发现任务已经暂停, 日志显示异常信息
   
   
   ### Anything Else?
   
   DDL和DML时, 当使用`{关键字}`是可以正确执行, 但同步任务时未处理字段名.
   
   也可能是我使用方式不对,望解答
   
   ### Are you willing to submit PR?
   
   - [ ] Yes I am willing to submit a PR!
   
   ### Code of Conduct
   
   - [X] I agree to follow this project's [Code of 
Conduct](https://www.apache.org/foundation/policies/conduct)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to