I've started work on an adapter for Apache Cassandra.
There's still a fair bit of work to do, but you can successfully issue a fairly broad class of queries with filtering, sorting, and projections pushed down to Cassandra in many cases.
Progress can be tracked on GitHub. Below is a brief list of things which still need to be done. I'm hoping this can be useful to others, so it would be good to get a sense of what would be considered complete for future release.
- New tests for test suite (and update calcite-test-dataset to support Cassandra)
- Allow for partial application of filter predicates (since Cassandra's query language is so limited, this will avoid the case where only trivial predicates can be pushed down)
- Allow for partial sorting (for the same reason as above)
- Proper quoting of identifiers
- Fix projections to avoid projecting unnecessary columns in some circumstances
- Proper cost modelling
- Exploit native aggregation
- Correct literal formatting (e.g. dates, timestamps, etc.)