使用Presto parser解析SQL

Presto的语法解析器是使用ANTLR生成的

PrestoDB的parser g4语法文件

https://github.com/prestodb/presto/blob/master/presto-parser/src/main/antlr4/com/facebook/presto/sql/parser/SqlBase.g4

PrestoSQL(Trino)的parser g4语法文件

https://github.com/trinodb/trino/blob/master/core/trino-grammar/src/main/antlr4/io/trino/grammar/sql/SqlBase.g4

如果想在java代码中使用Presto的parser进行语法解析的话,可以引用下面的依赖

PrestoDB(Facebook版本)

<dependency>
    <groupId>com.facebook.presto</groupId>
    <artifactId>presto-parser</artifactId>
    <version>0.285.1</version>
</dependency>

PrestoSQL(社区版本,350及其以下版本叫prestosql,以上改名为Trino)

<dependency>
    <groupId>io.prestosql</groupId>
    <artifactId>presto-parser</artifactId>
    <version>330</version>
</dependency>

Trino(社区版本,版本从351开始)

<dependency>
    <groupId>io.trino</groupId>
    <artifactId>trino-parser</artifactId>
    <version>351</version>
</dependency>

presto parser的使用

可以参考:《Hive、Spark、Presto SQL 输入输出表解析》

posted @ 2016-03-16 20:48  tonglin0325  阅读(415)  评论(0编辑  收藏  举报