Because in my use case the parallelism was not based on a range on keys/numbers but on a range of dates, so I needed a custom Parameter Provider. For what regards pushdown I don't know how Flink/Blink currently works..for example, let's say I have a Postgres catalog containing 2 tables (public.A and public.B). If I do the following query : SELECT public.A.x, public.B.y FROM public.A JOIN public.B on public.A.pk = public.B.fk. Will this be pushdown as a single query or will Flink fetch both tables and the perform the join? Talking with Bowen I understood that to avoid this I could define a VIEW in the db (but this is not alway possible) or in Flink (but from what I know this is very costly). In this case a parameter "scan.query.statement" without a "scan.parameter.values.provider.class" is super helpful and could improve performance a lot!
On Wed, Apr 22, 2020 at 11:06 AM Jingsong Li <jingsongl...@gmail.com> wrote: > Hi, > > You are right about the lower and upper, it is a must to parallelize the > fetch of the data. > And filter pushdown is used to filter more data at JDBC server. > > Yes, we can provide "scan.query.statement" and > "scan.parameter.values.provider.class" for jdbc connector. But maybe we > need be careful about this too flexible API. > > Can you provide more about your case? Why can not been solved by lower and > upper with filter pushdown? > > Best, > Jingsong Lee > > On Wed, Apr 22, 2020 at 4:45 PM Flavio Pompermaier <pomperma...@okkam.it> > wrote: > >> Maybe I am wrong but support pushdown for JDBC is one thing (that is >> probably useful) while parameters providers are required if you want to >> parallelize the fetch of the data. >> You are not mandated to use NumericBetweenParametersProvider, you can use >> the ParametersProvider you prefer, depending on the statement you have. >> Or do you have in mind something else? >> >> On Wed, Apr 22, 2020 at 10:33 AM Jingsong Li <jingsongl...@gmail.com> >> wrote: >> >>> Hi, >>> >>> Now in JDBCTableSource.getInputFormat, It's written explicitly: WHERE >>> XXX BETWEEN ? AND ?. So we must use `NumericBetweenParametersProvider`. >>> I don't think this is a good and long-term solution. >>> I think we should support filter push-down for JDBCTableSource, so in >>> this way, we can write the filters that we want, what do you think? >>> >>> Best, >>> Jingsong Lee >>> >>> >>> On Tue, Apr 21, 2020 at 10:00 PM Flavio Pompermaier < >>> pomperma...@okkam.it> wrote: >>> >>>> Hi all, >>>> we have a use case where we have a prepared statement that we >>>> parameterize using a custom parameters provider (similar to what happens in >>>> testJDBCInputFormatWithParallelismAndNumericColumnSplitting[1]). >>>> How can we handle this using the JDBC table API? >>>> What should we do to handle such a use case? Is there anyone willing to >>>> mentor us in its implementation? >>>> >>>> Another question: why flink-jdbc has not been renamed to >>>> flink-connector-jdbc? >>>> >>>> Thanks in advance, >>>> Flavio >>>> >>>> [1] >>>> https://github.com/apache/flink/blob/master/flink-connectors/flink-jdbc/src/test/java/org/apache/flink/api/java/io/jdbc/JDBCInputFormatTest.java >>>> >>> >>> >>> -- >>> Best, Jingsong Lee >>> >> >> > > -- > Best, Jingsong Lee >