Description
SQL support will allow those unfamiliar with Scala/Java to use Gearpump. I propose to build SQL layer with Apache Calcite because
1. It has done the hard job of parsing, translating logical plan to physical plan and optimizing.
2. It is under active development and has a great community.
3. It's proved to be a good solution since Apache Storm, Apache Flink and Apache Samza all build their Streaming SQL with Apache Calcite
Note SQL here actually means Streaming SQL dialects supported by Calcite (check reference 1 and 2). Please checkout reference 3 for an example implementation.
The physical plan will be translated to Gearpump high level DSL.
References:
1. http://www.slideshare.net/julianhyde/streaming-sql
2. https://calcite.apache.org/docs/stream.html
3. https://github.com/milinda/samza-sql