SChakravorti21 opened a new issue, #2245:
URL: https://github.com/apache/arrow-adbc/issues/2245

   ### What feature or improvement would you like to see?
   
   There isn't an existing ADBC driver for Cassandra as far as I can tell, and 
it would be great to have one! I'm interested in starting this effort as I have 
experience getting Arrow data to/from Cassandra, and have a little experience 
working on an ADBC driver for a different database 
([comdb2](https://github.com/bloomberg/comdb2)). I met @zeroshade at Community 
Over Code recently, who inspired me to start the discussion around creating a 
Cassandra driver :)
   
   Some initial thoughts:
   
   - **Choice of language**
   
     - I'm personally most familiar with the Cassandra C/C++ driver as well as 
Arrow C++. However, if there's good reason to implement the driver in a 
different language, I'm open to that and happy to get up to speed.
   
     - Matt explained that it would be better to use nanoarrow rather than 
Arrow C++ as the latter is a heavy dependency and can complicate 
building/deploying drivers. Using nanoarrow sounds like a good idea to me.
   
   - **Implementation considerations**
   
     - Cassandra currently does not offer any native mechanism for 
fetching/ingesting data in Arrow format, so we would likely to have to 
implement row ↔ column transposition on the client side (in the driver).
     
     - The Cassandra Query Language (CQL) can be thought of as an extremely 
limited subset of SQL. [This StackOverflow 
answer](https://stackoverflow.com/a/19140553) is a good overview of the general 
limitations. I figure this shouldn't matter as far as implementing an ADBC 
driver is concerned, but thought it was worth mentioning in case I'm wrong.
   
     - Matt also mentioned that there is now an ADBC [driver 
framework](https://github.com/apache/arrow-adbc/blob/main/c/driver/framework). 
I don't see any reason not to use this. If we find any gaps in the framework 
while implementing the driver, I'm happy to help fill them in.
   
   - **First step(s)**
   
     - Matt mentioned that, before implementing anything, it would be good to 
stand up a Cassandra node/cluster in CI so that others can also play around 
with and contribute to the driver.
   
     - I suppose the next step would be to configure the build system to pull 
in the necessary dependencies (like the Cassandra C/C++ driver).
     
     - ... Start implementing the driver along with integration tests?
   
   I'd love to hear any other considerations for implementing this ADBC driver 
and/or recommendations on getting started!


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@arrow.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to