记录SpringBoot连接impala创建表失败

标题@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包,此处无法通过配置文件配置,在代码里面进行设置。

如果是普通的即可通过配置文件进行设置:
druid配置

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Impala是一个开源的分布式SQL查询引擎,用于在Apache Hadoop上进行快速交互式查询。在Impala中,可以使用CREATE TABLE语句创建临时表。 创建临时表的语法如下: ``` CREATE [EXTERNAL] [TEMPORARY] TABLE [IF NOT EXISTS] table_name [(col_name data_type [COMMENT col_comment], ...)] [COMMENT table_comment] [PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)] [CLUSTERED BY (col_name, col_name, ...) [SORTED BY (col_name [ASC|DESC], ...)] INTO num_buckets BUCKETS] [SKEWED BY (col_name, col_name, ...) ON ((col_value, col_value, ...), (col_value, col_value, ...), ...) [STORED AS DIRECTORIES]] [ROW FORMAT row_format] [STORED AS file_format] [LOCATION hdfs_path] [TBLPROPERTIES (property_name=property_value, ...)] [AS select_statement] ``` 其中,关键字的含义如下: - EXTERNAL:指定创建的表是外部表,数据存储在外部路径上。 - TEMPORARY:指定创建的表是临时表,只在当前会话中存在,会话结束后自动删除。 - IF NOT EXISTS:如果表已经存在,则不会重新创建。 - table_name:指定要创建的表的名称。 - col_name data_type:指定表的列名和数据类型。 - COMMENT:为列或表添加注释。 - PARTITIONED BY:指定按照某些列进行分区。 - CLUSTERED BY:指定按照某些列进行聚集。 - SORTED BY:指定按照某些列进行排序。 - INTO num_buckets BUCKETS:指定聚集表的桶数。 - SKEWED BY:指定按照某些列进行倾斜。 - STORED AS:指定表的存储格式。 - LOCATION:指定表的存储路径。 - TBLPROPERTIES:指定表的属性。 - AS select_statement:指定使用查询结果作为表的数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值