You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@calcite.apache.org by Andy Grove <an...@gmail.com> on 2020/02/03 22:45:19 UTC

Suitability of Avatica for Apache Arrow Flight JDBC Driver

Hi,

I have started building a JDBC driver for Apache Arrow Flight [1] and it
has been suggested that I use Avatica instead of building from scratch.
However, I'm not sure if Avatica is really designed for this use case since
I would not require the Avatica wire protocol or server process. The Flight
JDBC driver needs to use the Flight protocol [2] to interact with servers
implementing that protocol.

I could definitely see value in extending Avatica base classes to get
things like all the ResultSet type conversion logic and DatabaseMetaData
functionality since that is tedious to implement but it wasn't clear from
the documentation if that was possible. I also have a slight concern
(possibly unfounded) about basing the driver on the Avatica type system
rather than the Arrow type system in case there are concepts that don't map
cleanly.

I'd appreciate any advice on the best path here.

Thanks,

Andy.

[1] https://github.com/apache/arrow/pull/6343
[2] https://arrow.apache.org/blog/2019/10/13/introducing-arrow-flight/

Re: Suitability of Avatica for Apache Arrow Flight JDBC Driver

Posted by Jacques Nadeau <ja...@apache.org>.
Hey Andy,

I totally forgot that Avatica added all that extra stuff. I didn't
originally have it back in the day :)

Drill and Dremio both use Avatica without using the protocol/server/etc.

On Mon, Feb 3, 2020 at 2:45 PM Andy Grove <an...@gmail.com> wrote:

> Hi,
>
> I have started building a JDBC driver for Apache Arrow Flight [1] and it
> has been suggested that I use Avatica instead of building from scratch.
> However, I'm not sure if Avatica is really designed for this use case since
> I would not require the Avatica wire protocol or server process. The Flight
> JDBC driver needs to use the Flight protocol [2] to interact with servers
> implementing that protocol.
>
> I could definitely see value in extending Avatica base classes to get
> things like all the ResultSet type conversion logic and DatabaseMetaData
> functionality since that is tedious to implement but it wasn't clear from
> the documentation if that was possible. I also have a slight concern
> (possibly unfounded) about basing the driver on the Avatica type system
> rather than the Arrow type system in case there are concepts that don't map
> cleanly.
>
> I'd appreciate any advice on the best path here.
>
> Thanks,
>
> Andy.
>
> [1] https://github.com/apache/arrow/pull/6343
> [2] https://arrow.apache.org/blog/2019/10/13/introducing-arrow-flight/
>