开发者社区> 问答> 正文

Druid 解析Hive建表语句解析报错

Druid 版本:

com.alibaba druid-spring-boot-starter 1.2.3

Hive 建表SQL

create table ads_data.sale_detail_one23 like ads_data.sale_detail_one1 STORED AS parquet

该语句在hive引擎执行是正常的

解析代码

String hivesql = SQLUtils.format("create table ads_data.sale_detail_one23 like ads_data.sale_detail_one1 STORED AS parquet", "hive");

    String s1 = hivesql.replaceAll("`", "");

    List<SQLStatement> sqlStatements = SQLUtils.parseStatements(s1, "hive"); // 在该行执行报错

报错信息

22:23:24.044 [main] WARN com.alibaba.druid.sql.SQLUtils - rowFormat error com.alibaba.druid.sql.parser.ParserException: syntax error, error in :'one1 STORED AS parquet, pos 78, line 1, column 73, token IDENTIFIER STORED at com.alibaba.druid.sql.parser.SQLParser.printError(SQLParser.java:558) at com.alibaba.druid.sql.parser.SQLStatementParser.parseStatementList(SQLStatementParser.java:602) at com.alibaba.druid.sql.parser.SQLStatementParser.parseStatementList(SQLStatementParser.java:113) at com.alibaba.druid.sql.SQLUtils.format(SQLUtils.java:341) at com.alibaba.druid.sql.SQLUtils.format(SQLUtils.java:334) at com.alibaba.druid.sql.SQLUtils.format(SQLUtils.java:322) at com.alibaba.druid.sql.SQLUtils.format(SQLUtils.java:318)

原提问者GitHub用户chaplinthink

展开
收起
山海行 2023-07-05 18:13:10 225 0
2 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    看起来是在使用 Druid 解析器解析 Hive 建表语句时出现了错误。这种错误通常是由于 Druid 解析器无法正确解析 Hive 建表语句的语法和结构,或者存在其他语法问题导致的。

    为了解决这个问题,可以考虑以下几个方面:

    检查 Hive 建表语句的语法。在编写 Hive 建表语句时,需要确保语法正确,遵循标准的 Hive 建表语法规范和语法要求。可以使用 Hive 命令行工具或者其他工具来检查 Hive 建表语句的语法和正确性。

    检查 Druid 解析器的文档。Druid 解析器支持的 SQL 语句和语法可能与 Hive 不同,需要查阅 Druid 解析器的文档,了解其支持的 SQL 语句和语法要求。可以参考 Druid 解析器的官方文档或者其他相关资料。

    尝试其他的 SQL 解析器。如果 Druid 解析器无法解析 Hive 建表语句,可以尝试其他的 SQL 解析器,例如 Apache Calcite、ANTLR、JavaCC 等。这些解析器可以更好地支持各种 SQL 语句和语法。

    手动编写建表语句。如果使用现有的 SQL 解析器无法解析 Hive 建表语句,可以考虑手动编写建表语句,对 Hive 建表语句进行重新编写和调整。可以参考 Hive 建表语句的语法规范和最佳实践,以提高代码的可读性和可维护性。

    2023-07-30 20:00:17
    赞同 展开评论 打赏
  • 问题已修复,请用新版本

    https://github.com/alibaba/druid/releases/tag/1.2.5

    原回答者GitHub用户wenshao

    2023-07-06 10:48:53
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Hive Bucketing in Apache Spark 立即下载
spark替代HIVE实现ETL作业 立即下载
2019大数据技术公开课第五季—Hive迁移到MaxCompute最佳实践 立即下载

相关镜像