LinkedIn Coral SQL 翻译实现原理

总体流程

以 Hive SQL 翻译成 Trino SQL 为例:

1
2
3
4
5
6
7
Hive SQL -> Calcite RelNode
解析成抽象语法树 AST(比如通过 hive 的 antlr 语法解析)
遍历节点转换为 SqlNode
SqlNode 转换为 Calcite RelNode(Coral IR)
Calcite RelNode -> Trino SQL
RelNode -> SqlNode
SqlNode -> TrinoSQL

详细流程

参考

coral github