标题@TOC
程序impala创建kudu表失败
业务新加人群包失败,查看后台日志发现——应用连接impala创建kudu表失败(代码无改动,突然出现),提示
2023-08-17 13:56:09.002 INFO 14408 — [ XNIO-1 task-1] c.c.s.acrm.controller.TestImpalaConnect : 创建人群包结果表语句:CREATE TABLE cx_group_yueshanghaizijian_2023(id string, cus_id string, group_id string, value string, level_id string, ctime timestamp, utime timestamp, PRIMARY KEY(id)) PARTITION BY HASH PARTITIONS 5 STORED AS KUDU
2023-08-17 13:56:09.065 WARN 14408 — [ XNIO-1 task-1] com.alibaba.druid.pool.DruidDataSource : removeAbandoned is true, not use in production.
2023-08-17 13:56:14.324 INFO 14408 — [ XNIO-1 task-1] com.alibaba.druid.pool.DruidDataSource : {dataSource-1} inited
2023-08-17 13:56:14.361 ERROR 14408 — [ XNIO-1 task-1] c.alibaba.druid.filter.stat.StatFilter : merge sql error, dbType mysql, druid-1.2.5, sql : CREATE TABLE cx_group_yueshanghaizijian_2023(id string, cus_id string, group_id string, value string, level_id string, ctime timestamp, utime timestamp, PRIMARY KEY(id)) PARTITION BY HASH PARTITIONS 5 STORED AS KUDU
com.alibaba.druid.sql.parser.ParserException: syntax error, error in :'HASH PARTITIONS 5 STORED AS KUDU ', expect (, actual null, pos 198, line 1, column 189, token IDENTIFIER PARTITIONS
at com.alibaba.druid.sql.parser.SQLParser.printError(SQLParser.java:576)
at com.alibaba.druid.sql.parser.SQLParser.accept(SQLParser.java:584)
at com.alibaba.druid.sql.dialect.mysql.parser.MySqlCreateTableParser.parsePartitionBy(MySqlCreateTableParser.java:1094)
at com.alibaba.druid.sql.dialect.mysql.parser.MySqlCreateTableParser.parseCreateTable(MySqlCreateTableParser.java:807)
at com.alibaba.druid.sql.dialect.mysql.parser.MySqlStatementParser.parseCreate(MySqlStatementParser.java:309)
at com.alibaba.druid.sql.parser.SQLStatementParser.parseStatementList(SQLStatementParser.java:249)
at com.alibaba.druid.sql.parser.SQLStatementParser.parseStatementList(SQLStatementParser.java:113)
at com.alibaba.druid.sql.visitor.ParameterizedOutputVisitorUtils.parameterize(ParameterizedOutputVisitorUtils.java:153)
at com.alibaba.druid.sql.visitor.ParameterizedOutputVisitorUtils.parameterize(ParameterizedOutputVisitorUtils.java:126)
at com.alibaba.druid.filter.stat.StatFilter.mergeSql(StatFilter.java:156)
at com.alibaba.druid.filter.stat.StatFilter.createSqlStat(StatFilter.java:657)
at com.alibaba.druid.filter.stat.StatFilter.internalBeforeStatementExecute(StatFilter.java:412)
at com.alibaba.druid.filter.stat.StatFilter.statementExecuteBefore(StatFilter.java:360)
查看这里:应用是通过mysql形式去连接impala的,druid去检验sql发现语法不通过,故报错。奇怪的是,代码一直没动过,调整如下
去掉druid监控中对sql语法检查,有些语法druid识别不了,就会报错 。
由于公司封装了一些多数据源starter包,此处无法通过配置文件配置,在代码里面进行设置。
如果是普通的即可通过配置文件进行设置: