James, I agree that you could use JSON but that feels a bit hacky (mis-use
of the paradigm). Instead, I'd really like to do something like David is
suggesting: support Substrait as an alternative to a SQL string.
Something like this:
https://github.com/jacques-n/arrow/commit/e22674fa882e77c2889cf95f69f6e3701db362bc

It would be great if someone wanted to pick this up. It would be a nice
enhancement to FlightSQL (and provide a structured way to express
operations).



On Thu, Mar 3, 2022 at 4:56 PM James Duong <jam...@bitquilltech.com.invalid>
wrote:

> In the same way that you could write an ODBC driver that takes in text
> that's not SQL, you could write a Flight SQL server that takes in text
> that's JSON.
> Flight SQL doesn't parse the query, so you could create commands that are
> just JSON text.
>
> Is that the only bit you need, Gavin?
>
> On Thu, Mar 3, 2022 at 4:26 PM Gavin Ray <ray.gavi...@gmail.com> wrote:
>
> > I am enthusiastic about Substrait and have followed it's progress eagerly
> > =D
> >
> > When I presented it as a tentative option, there were reservations
> because
> > of the project/spec being young and the functionality still being
> > fleshed out.
> > I think if I were having this conversation in say, 8-16 months, it would
> > have been an easy choice, no doubt.
> >
> > On a public mailing list (and I can share more details in private if
> you're
> > curious), the gist of it is this:
> >
> > Some well-defined/backed-by-mature tech solution for expressing data
> > compute operations between services would be a useful thing to have
> > (Especially if it's language-agnostic)
> >
> > The goal is for an "implementing service" to have:
> > - An introspectable schema (IE, "describe yourself to me")
> > - A query/operation execution endpoint (IE: "perform this operation on
> your
> > data")
> >
> > With FlightSQL this is possible I believe, but it requires the operation
> to
> > be expressed as a SQL string which isn't ideal.
> >
> > Working with some programmatic, structured object that has the same
> > semantics ("Logical Plan", or whatnot) as a SQL query would have, would
> be
> > a better experience
> > (Jacques is on to something here!)
> >
> > This interface between services would be somewhat the equivalent of an
> > "SDK", so it would be nice to have a strongly-typed library for
> expressing
> > and building-up query/data-compute ops.
> >
> >
> > On Thu, Mar 3, 2022 at 3:17 PM David Li <lidav...@apache.org> wrote:
> >
> > > You probably want Substrait: https://substrait.io/
> > >
> > > Which is being worked on by several people, including Arrow community
> > > members.
> > >
> > > It might be interesting to generalize Flight SQL to include support for
> > > Substrait. I'm curious what your application, if you're able to share
> > more.
> > >
> > > -David
> > >
> > > On Thu, Mar 3, 2022, at 18:05, Gavin Ray wrote:
> > > > Hiya,
> > > >
> > > > I am drafting a proposal for a way to enable services to express data
> > > > compute operations to each other.
> > > >
> > > > However I think it'll be difficult to get buy-in if the only
> > > representation
> > > > for queries is as SQL strings.
> > > >
> > > > Is there any kind of lower-level API that can be used to express
> > > operations?
> > > >
> > > > IE instead of "SELECT name FROM user"
> > > >
> > > > A structured representation like:
> > > > {
> > > >   "op": "query",
> > > >   "schema": "user",
> > > >   "project": ["name"]
> > > > }
> > > >
> > > > Or maybe this is a bad idea/doesn't make sense?
> > > >
> > > > Thank you =)
> > >
> >
>
>
> --
>
> *James Duong*
> Lead Software Developer
> Bit Quill Technologies Inc.
> Direct: +1.604.562.6082 | jam...@bitquilltech.com
> https://www.bitquilltech.com
>
> This email message is for the sole use of the intended recipient(s) and may
> contain confidential and privileged information.  Any unauthorized review,
> use, disclosure, or distribution is prohibited.  If you are not the
> intended recipient, please contact the sender by reply email and destroy
> all copies of the original message.  Thank you.
>

Reply via email to