Impala 是否重用 hive SQL 解析器?
我正在尝试编写自定义 Java 代码来检查应用程序中查询的正确性。我正在寻找一个可以使用 sql 查询的 api,并让我知道它对于 impala 在语法上是否正确。
如何从自定义 Java 代码访问解析器以检查查询兼容性?
不,Impala 不会重用 Hive 解析器。 此外,Impala 不会公开用于检查查询语法是否正确的 Java API。 最简单的事情可能是通过 JDBC 提交一个 explain query 并检查结果。
如果你没有正在运行的 Impala 集群,理论上你应该能够像 Impala 在 parser 单元测试 中那样实例化扫描仪和解析器,但我可以想象它可能很难像 Impala 那样工作构建/测试环境相当复杂。请注意,这不是受支持的 API。
通过java api解析impala查询,可以参考以下项目impala_parser