Hi, Shammon, This FLIP is very interesting. Thanks for driving it! Just out of curiosity, Could it be used in the Flink JDBC connector[1] after doing the appropriate implementation there?
Best regards, Jing [1] https://nightlies.apache.org/flink/flink-docs-master/docs/connectors/table/jdbc/ On Fri, Mar 3, 2023 at 8:56 AM Shammon FY <zjur...@gmail.com> wrote: > Hi, > > Thanks jinsong. I think implementing JDBC for batch mode first sounds good. > This will simplify the implementation and we can also remove the row kind > first. We can claim this in the FLIP and docs, I will update the FLIP. > > Best, > Shammon > > > On Fri, Mar 3, 2023 at 2:36 PM Jingsong Li <jingsongl...@gmail.com> wrote: > > > Hi, Shammon, > > > > I took a look at JDBC `ResultSet` and `Statement`. They are > > complicated and have many interfaces. Some of the interfaces may not > > be very suitable for streaming. > > > > I think maybe we can just implement JDBC for batch/olap only. It is > > hard to have an integration for JDBC and streaming... > > > > Do you need to use JDBC in streaming mode? Or do we just implement > > JDBC for batch only first? > > > > Best, > > Jingsong > > > > > > On Thu, Mar 2, 2023 at 6:22 PM Shammon FY <zjur...@gmail.com> wrote: > > > > > > Hi > > > > > > Thanks for the feedback from Jingsong and Benchao. > > > > > > For @Jingsong > > > > If the user does not cast into a FlinkResultSet, will there be > > > serious consequences here (RowKind is ignored)? > > > > > > I agree with you that it's indeed a big deal if users ignore the row > kind > > > when they must know it. One idea that comes to my mind is we can add an > > > option such as `table.result.changelog-mode`, users can set it through > > > connection properties or set dynamic parameters. The option value can > be > > > `insert-only`, `upset` or `all` and the default value is `insert-only`. > > > > > > If the result does not conform to the changelog mode, the jdbc driver > > > throws an exception. What do you think? > > > > > > > > > For @Benchao > > > > Besides `java.sql.Driver`, have you considered also adding support > for > > > `javax.sql.DataSource` interface? > > > > > > I missed the `javax.sql.DataSource` and I have added it to the FLIP, > > thanks > > > Benchao > > > > > > > > > Best, > > > Shammon > > > > > > On Wed, Mar 1, 2023 at 7:57 PM Benchao Li <libenc...@apache.org> > wrote: > > > > > > > +1 for the FLIP, thanks Shammon for driving this. > > > > > > > > JDBC is quite useful in OLAP scenarios, supporting JDBC would enable > > Flink > > > > to be used with existing tools, such as Tableau. > > > > > > > > Regarding the JDBC interfaces listed in the FLIP, I think they looks > > good > > > > already. Besides `java.sql.Driver`, have you considered also adding > > support > > > > for `javax.sql.DataSource` interface? > > > > > > > > Jingsong Li <jingsongl...@gmail.com> 于2023年3月1日周三 17:53写道: > > > > > > > > > Thanks Shammon for driving. > > > > > > > > > > Big +1 for this. > > > > > > > > > > I heard that many users want to use FlinkGateway + JDBC to do some > > > > > queries, but at present, only Hive JDBC can be used. It is Hive > > > > > dialect by default, and the experience is also different from > > > > > FlinkSQL. We need to have our own JDBC. > > > > > > > > > > I took a look at your `Public Interface` part, only > > > > > `FlinkResultSet.getRowKind` is a true new interface, others are > just > > > > > implementations. > > > > > > > > > > If the user does not cast into a FlinkResultSet, will there be > > serious > > > > > consequences here (RowKind is ignored)? > > > > > > > > > > Best, > > > > > Jingsong > > > > > > > > > > On Wed, Mar 1, 2023 at 4:59 PM Shammon FY <zjur...@gmail.com> > wrote: > > > > > > > > > > > > Hi devs, > > > > > > > > > > > > I'd like to start a discussion about FLIP-293: Introduce Flink > Jdbc > > > > > Driver > > > > > > For Sql Gateway[1]. > > > > > > > > > > > > FLIP-275[2] supports remote sql client based on gateway, users > can > > > > > interact > > > > > > with gateway by flink console. However, for users who create > > session > > > > > > clusters with Flink, they'd like to use Jdbc Driver to interact > > with > > > > the > > > > > > gateway in their applications, such as olap queries.. > > > > > > > > > > > > I have discussed this proposal with @shengkaifang and > @jinsonglee. > > In > > > > > this > > > > > > FLIP, we'd like to introduce Jdbc Driver for gateway. Users can > use > > > > Jdbc > > > > > > Driver to submit their queries and get results like a database in > > their > > > > > > applications. > > > > > > > > > > > > Looking forward to your feedback, thanks. > > > > > > > > > > > > > > > > > > [1] > > > > > > > > > > > > > > > > > > https://cwiki.apache.org/confluence/display/FLINK/FLIP-293%3A+Introduce+Flink+Jdbc+Driver+For+Sql+Gateway > > > > > > [2] > > > > > > > > > > > > > > > > > > https://cwiki.apache.org/confluence/display/FLINK/FLIP-275%3A+Support+Remote+SQL+Client+Based+on+SQL+Gateway > > > > > > > > > > > > > > > > > > Best, > > > > > > Shammon > > > > > > > > > > > > > > > > > -- > > > > > > > > Best, > > > > Benchao Li > > > > > > >