Open wjones127 opened 1 year ago
I'm very interested in pursuing this as well, but I haven't looked into it enough to have a clear idea of what API we should offer.
One idea I had was a function DeltaTable.expand_substrait(read_rel: ReadRelation) -> SubstraitPlan
, where you would pass a read relation with the projection and filter, and we would give the expanded plans with all the Delta prototol details embedded and files already pruned. But perhaps there's a more straight forward way.
Thinking about this a little more, one goal might be to implement Substrait support that will allow us to write an ADBC driver for Delta Lake. That will allow us to support more engines / databases without having to do a bunch of one-off implementations. I'll try to draft a rough design of what we need for ADBC, and then use that to determine what we might need for Substrait integration. I also need to see what the state of these are in the Rust ecosystem.
I think both approaches (read relation & ADBC) are worth pursuing with their own tradeoffs and use-cases.
Description
From @roeap:
Use Case
Related Issue(s)