我想在一个非关系型数据仓库上创建SQL接口。虽然是非关系型的数据仓库,但以关系型方式访问数据是有意义的。
我正在研究使用ANTLR来生成表示SQL的关系代数表达式的AST。然后通过评估/遍历树来返回数据。
我以前从未实现过解析器,因此我希望能够获得如何最佳实现SQL解析器和求值器的建议。
更新:
我使用pyparsing实现了一个简单的SQL解析器。结合实现与我的数据仓库进行关系操作的Python代码,这相当简单。
正如我在评论中所说,这个项目的目的是使数据对报告引擎可用。为此,我可能需要实现ODBC驱动程序。这可能是很多工作。