点击箭头处“蓝色字”,关注我们哦!!
Flink SQL中使用Calcite作为sql语法解析、校验、优化工具,本篇是实操篇,介绍一下calcite做sql语法解析使用方式。
sql经过calcite解析之后,得到一棵抽象语法树,也就是我们说的AST,这棵语法树是由不同的节点组成,节点称之为SqlNode,根据不同类型的dml、ddl得到不同的类型的SqlNode,例如select语句转换为SqlSelect,delete语句转换为SqlDelete,join语句转换为SqlJoin。
使用方式:
SqlParser.Config config = SqlParser.configBuilder()
.setLex(Lex.MYSQL) //使用mysql 语法
.build();
//SqlParser 语法解析器
SqlParser sqlParser = SqlParser
.create("select id,name,age FROM stu where age<20", config);
SqlNode sqlNode = null;
try {
sqlNode = sqlPa