Hi santhosh, 1.Yes.
2.I'm very glad if you can contribute. Best, Jingsong On Fri, Jun 4, 2021 at 1:13 AM santhosh venkat <santhoshvenkat1...@gmail.com> wrote: > Hi, Jingsong, > > Thanks for taking time to respond to my questions. Really appreciate it. > > 1. Just to ensure we are on the same page, are you recommending us to > implement Source, SourceReader and SplitEnumberator abstractions for the > new source connector. And use either the DataStreamScanProvider or > SourceProvider types in flink-table-api-bridge to integrate the > Source(factory) implementation with ScanTableSource abstraction? Is that > what you're recommending? > > 2. Also, if we integrate the Kafkadynamicsource in Flink table with the > KafkaSourceReader and KafkaSplitEnumerator abstractions, then would it be > possible for us to contribute it back to the community? > > Thanks. > > On Wed, Jun 2, 2021 at 7:36 PM Jingsong Li <jingsongl...@gmail.com> wrote: > > > Hi santhosh, > > > > 1.I recommend you use the new source with ScanTablesource. > > > > 2.You can use `org.apache.flink.table.connector.source.SourceProvider` to > > integrate to ScanTablesource. (Introduced in 1.12) > > > > 3.You can just implement a new source, this one can be used by both Flink > > DataStream and Flink SQL. (As well as SourceFunction, it can be used by > > both Flink DataStream and Flink SQL too) > > > > Actually, the connector of the table is just a wrapper of DataStream. > They > > should not have core differences. > > > > I believe we should migrate KafkaDynamicSource to the new > > source KafkaSource in the Flink 1.14. Maybe @Qingsheng Ren is working on > > this. > > > > Best, > > Jingsong > > > > On Thu, Jun 3, 2021 at 5:19 AM santhosh venkat < > > santhoshvenkat1...@gmail.com> > > wrote: > > > > > Hi, > > > > > > Please correct me if I'm wrong anywhere. I'm just new to Flink and > trying > > > to navigate the landscape. > > > > > > Within my company, currently we're trying to develop a connector for > our > > > internal change data capture system(brooklin) for flink. We are > planning > > to > > > use Flink SQL as a primary API to build streaming applications. > > > > > > When exploring flink contracts, we noticed that there are two different > > > flavors of APIs available in Flink for Source integration. > > > > > > a) Flink Table API : The Flink ScanTableSource abstractions which are > > > currently relying upon the SourceFunction interfaces for integrating > with > > > the underlying messaging-client libraries. For instance, > > KafkaDynamicSource > > > and KinesisDynamicSource are currently using the FlinkKafkaConsumer(an > > > implementation of RichParallelSourceFunction) and KinesisConsumer(an > > > implementation of RichParallelSourceFunction) respectively to read from > > the > > > broker. > > > > > > b) FLIP-27 style connector implementations: There are connectors which > > > implement SplitEnumerator and SourceReader abstractions, where the > > > Enumerator runs with the JobMaster and the Readers runs within the > > > TaskManager processes respectively. > > > > > > Questions: > > > > > > 1. If I want to integrate a new connector and want to use Flink SQL, > then > > > what is the recommendation? Are the users supposed to implement the > > > RichParallelSourceFunction, CheckpointListener etc similar to > > > FlinkKafkaConsumer and wire into the ScanTableSource API? > > > > > > 2. Just wondering, what is the long term plan for the ScanTablesource > > APIs? > > > Are there plans for them to use and integrate with the SplitEnumerator > > and > > > SourceReader abstractions? > > > > > > 3. If I want to offer my connector implementation to both Flink > > DataStream > > > and Flink SQL APIs, then should I implement both the flavors of source > > > APIs(SplitEnumerator/SourceReader as well as SourceFunction) in flink? > > > > > > I would really appreciate it if someone can help and answer the above > > > questions. > > > > > > Thanks. > > > > > > > > > -- > > Best, Jingsong Lee > > > -- Best, Jingsong Lee